162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2022 Huawei Technologies Co., Ltd. All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef HIVIEW_HISYSEVENT_H
762306a36Sopenharmony_ci#define HIVIEW_HISYSEVENT_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_cienum hisysevent_type {
1062306a36Sopenharmony_ci	/* fault event */
1162306a36Sopenharmony_ci	FAULT = 1,
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	/* statistic event */
1462306a36Sopenharmony_ci	STATISTIC = 2,
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	/* security event */
1762306a36Sopenharmony_ci	SECURITY = 3,
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	/* behavior event */
2062306a36Sopenharmony_ci	BEHAVIOR = 4
2162306a36Sopenharmony_ci};
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cistruct hiview_hisysevent;
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci#ifdef CONFIG_HISYSEVENT
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_cistruct hiview_hisysevent *
2862306a36Sopenharmony_cihisysevent_create(const char *domain, const char *name, enum hisysevent_type type);
2962306a36Sopenharmony_civoid hisysevent_destroy(struct hiview_hisysevent **event);
3062306a36Sopenharmony_ciint hisysevent_put_integer(struct hiview_hisysevent *event, const char *key, long long value);
3162306a36Sopenharmony_ciint hisysevent_put_string(struct hiview_hisysevent *event, const char *key, const char *value);
3262306a36Sopenharmony_ciint hisysevent_write(struct hiview_hisysevent *event);
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci#else
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#include <linux/errno.h>
3762306a36Sopenharmony_ci#include <linux/stddef.h>
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_cistatic inline struct hiview_hisysevent *
4062306a36Sopenharmony_cihisysevent_create(const char *domain, const char *name, enum hisysevent_type type)
4162306a36Sopenharmony_ci{
4262306a36Sopenharmony_ci	return NULL;
4362306a36Sopenharmony_ci}
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cistatic inline void hisysevent_destroy(struct hiview_hisysevent **event)
4662306a36Sopenharmony_ci{}
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_cistatic inline int
4962306a36Sopenharmony_cihisysevent_put_integer(struct hiview_hisysevent *event, const char *key, long long value)
5062306a36Sopenharmony_ci{
5162306a36Sopenharmony_ci	return -EOPNOTSUPP;
5262306a36Sopenharmony_ci}
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_cistatic inline int
5562306a36Sopenharmony_cihisysevent_put_string(struct hiview_hisysevent *event, const char *key, const char *value)
5662306a36Sopenharmony_ci{
5762306a36Sopenharmony_ci	return -EOPNOTSUPP;
5862306a36Sopenharmony_ci}
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_cistatic inline int hisysevent_write(struct hiview_hisysevent *event)
6162306a36Sopenharmony_ci{
6262306a36Sopenharmony_ci	return -EOPNOTSUPP;
6362306a36Sopenharmony_ci}
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci#endif /* CONFIG_HISYSEVENT */
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci#endif /* HIVIEW_HISYSEVENT_H */
68