• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Copyright (c) 2024 Huawei Device Co., Ltd.
4  */
5 
6 #ifndef _DEC_MISC_H
7 #define _DEC_MISC_H
8 
9 #include <linux/ioctl.h>
10 #include <linux/types.h>
11 #include <stdbool.h>
12 
13 #define MAX_PATH_NUM 8
14 
15 #define DEV_DEC_MINOR 0x25
16 #define DEC_IOCTL_BASE 's'
17 #define SET_POLICY_ID 1
18 #define DEL_POLICY_ID 2
19 #define QUERY_POLICY_ID 3
20 #define CHECK_POLICY_ID 4
21 #define DESTROY_POLICY_ID 5
22 #define CONSTRAINT_POLICY_ID 6
23 #define DENY_POLICY_ID 7
24 
25 struct path_info {
26     char* path;
27     uint32_t path_len;
28     uint32_t mode;
29     bool ret_flag;
30 };
31 
32 struct dec_policy_info {
33     uint64_t tokenid;
34     struct path_info path[MAX_PATH_NUM];
35     uint32_t path_num;
36     bool persist_flag;
37 };
38 
39 #define SET_DEC_POLICY_CMD \
40     _IOWR(DEC_IOCTL_BASE, SET_POLICY_ID, struct dec_policy_info)
41 #define DEL_DEC_POLICY_CMD \
42     _IOWR(DEC_IOCTL_BASE, DEL_POLICY_ID, struct dec_policy_info)
43 #define QUERY_DEC_POLICY_CMD \
44     _IOWR(DEC_IOCTL_BASE, QUERY_POLICY_ID, struct dec_policy_info)
45 #define CHECK_DEC_POLICY_CMD \
46     _IOWR(DEC_IOCTL_BASE, CHECK_POLICY_ID, struct dec_policy_info)
47 #define CONSTRAINT_DEC_POLICY_CMD \
48     _IOW(DEC_IOCTL_BASE, CONSTRAINT_POLICY_ID, struct dec_policy_info)
49 #define DENY_DEC_POLICY_CMD \
50     _IOWR(DEC_IOCTL_BASE, DENY_POLICY_ID, struct dec_policy_info)
51 #define DESTROY_DEC_POLICY_CMD \
52     _IOW(DEC_IOCTL_BASE, DESTROY_POLICY_ID, uint64_t)
53 
54 #endif /* _DEC_MISC_H */