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 */