#ifndef _LVE_GLOBAL_PARAMS_H_ #define _LVE_GLOBAL_PARAMS_H_ #define BITMASK_SZ (sizeof(uint64_t) * 3) #define PARAM_SZ (BITMASK_SZ * BITS_PER_BYTE) enum lve_params { LVE_SYMLINK_PROTECTION = 1, LVE_HARDLINK_PROTECTION, LVE_HANDLE_SYMLINK_OWNER, LVE_HANDLE_SYMLINK_BY_TASK, LVE_HANDLE_SYMLINK_PROC, LVE_SYMLINK_OWNER_GID, LVE_SYMLINK_PROT_ALLOW_GID, LVE_HARDLINK_PROT_ALLOW_GID, LVE_GLOBAL_NONROOT, LVE_XFS_QUOTA_CAP_RES_BYPASS, LVE_PROC_CAN_SEE_OTHER_UID, LVE_PROC_SUPER_GID, LVE_PROC_DISABLE_NET, LVE_MEMSTAT_NO_CACHE, LVE_PTRACE_ENABLED, LVE_PTRACE_SELF_ENABLED, LVE_GRACE_PERIOD = 125, LVE_PARAM_MAX = PARAM_SZ /*192*/, }; typedef int (*param_cb)(uint64_t val); int lve_update_grace_period(uint64_t val); void lve_params_init(void); int lve_get_param(enum lve_params lve_param, uint64_t *val); int lve_set_param(enum lve_params, uint64_t val); int lve_set_param_callback(enum lve_params, param_cb cb); void lve_set_param_callbacks(void); static inline bool param_is_enabled(enum lve_params param) { uint64_t enabled; if (lve_get_param(param, &enabled) < 0) { pr_err("can't read param %u\n", param); return false; } return enabled != 0UL ? true : false; } #endif