1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * access_tokenid.h 4 * 5 * Copyright (C) 2022-2023 Huawei Technologies Co., Ltd. All rights reserved. 6 * 7 */ 8 9#ifndef _ACCESS_TOKEN_ID_H 10#define _ACCESS_TOKEN_ID_H 11 12#include <linux/ioctl.h> 13#include <linux/types.h> 14 15#define ACCESS_TOKEN_ID_IOCTL_BASE 'A' 16#define MAX_PERM_GROUP_NUM 64 17 18enum { 19 GET_TOKEN_ID = 1, 20 SET_TOKEN_ID, 21 GET_FTOKEN_ID, 22 SET_FTOKEN_ID, 23 ADD_PERMISSIONS, 24 REMOVE_PERMISSIONS, 25 GET_PERMISSION, 26 SET_PERMISSION, 27 ACCESS_TOKENID_MAX_NR 28}; 29 30typedef struct { 31 unsigned int token_uniqueid : 20; 32 unsigned int res : 5; 33 unsigned int render_flag : 1; 34 unsigned int dlp_flag : 1; 35 unsigned int type : 2; 36 unsigned int version : 3; 37} access_tokenid_inner; 38 39typedef struct { 40 uint32_t token; 41 uint32_t op_code; 42 bool is_granted; 43} ioctl_set_get_perm_data; 44 45typedef struct { 46 uint32_t token; 47 uint32_t perm[MAX_PERM_GROUP_NUM]; 48} ioctl_add_perm_data; 49 50struct token_perm_node { 51 ioctl_add_perm_data perm_data; 52 struct token_perm_node *left; 53 struct token_perm_node *right; 54}; 55 56#define ACCESS_TOKENID_GET_TOKENID \ 57 _IOR(ACCESS_TOKEN_ID_IOCTL_BASE, GET_TOKEN_ID, unsigned long long) 58#define ACCESS_TOKENID_SET_TOKENID \ 59 _IOW(ACCESS_TOKEN_ID_IOCTL_BASE, SET_TOKEN_ID, unsigned long long) 60#define ACCESS_TOKENID_GET_FTOKENID \ 61 _IOR(ACCESS_TOKEN_ID_IOCTL_BASE, GET_FTOKEN_ID, unsigned long long) 62#define ACCESS_TOKENID_SET_FTOKENID \ 63 _IOW(ACCESS_TOKEN_ID_IOCTL_BASE, SET_FTOKEN_ID, unsigned long long) 64#define ACCESS_TOKENID_ADD_PERMISSIONS \ 65 _IOW(ACCESS_TOKEN_ID_IOCTL_BASE, ADD_PERMISSIONS, ioctl_add_perm_data) 66#define ACCESS_TOKENID_REMOVE_PERMISSIONS \ 67 _IOW(ACCESS_TOKEN_ID_IOCTL_BASE, REMOVE_PERMISSIONS, uint32_t) 68#define ACCESS_TOKENID_GET_PERMISSION \ 69 _IOW(ACCESS_TOKEN_ID_IOCTL_BASE, GET_PERMISSION, ioctl_set_get_perm_data) 70#define ACCESS_TOKENID_SET_PERMISSION \ 71 _IOW(ACCESS_TOKEN_ID_IOCTL_BASE, SET_PERMISSION, ioctl_set_get_perm_data) 72 73#endif /* _ACCESS_TOKEN_ID_H */ 74