900 |
struct ccs_path_info entry; |
struct ccs_path_info entry; |
901 |
}; |
}; |
902 |
|
|
903 |
|
struct ccs_acl_param { |
904 |
|
struct ccs_domain_info *domain; |
905 |
|
struct ccs_condition *condition; /* This may be NULL. */ |
906 |
|
bool is_delete; |
907 |
|
char *w[5]; |
908 |
|
}; |
909 |
|
|
910 |
#define CCS_MAX_IO_READ_QUEUE 32 |
#define CCS_MAX_IO_READ_QUEUE 32 |
911 |
|
|
912 |
/* Structure for reading/writing policy via /proc interfaces. */ |
/* Structure for reading/writing policy via /proc interfaces. */ |
1049 |
__attribute__ ((format(printf, 2, 3))); |
__attribute__ ((format(printf, 2, 3))); |
1050 |
int ccs_symlink_path(const char *pathname, struct ccs_path_info *name); |
int ccs_symlink_path(const char *pathname, struct ccs_path_info *name); |
1051 |
int ccs_update_domain(struct ccs_acl_info *new_entry, const int size, |
int ccs_update_domain(struct ccs_acl_info *new_entry, const int size, |
1052 |
bool is_delete, struct ccs_domain_info *domain, |
struct ccs_acl_param *param, |
1053 |
bool (*check_duplicate) (const struct ccs_acl_info *, |
bool (*check_duplicate) (const struct ccs_acl_info *, |
1054 |
const struct ccs_acl_info *), |
const struct ccs_acl_info *), |
1055 |
bool (*merge_duplicate) (struct ccs_acl_info *, |
bool (*merge_duplicate) (struct ccs_acl_info *, |
1060 |
bool (*check_duplicate) (const struct ccs_acl_head *, |
bool (*check_duplicate) (const struct ccs_acl_head *, |
1061 |
const struct ccs_acl_head *)); |
const struct ccs_acl_head *)); |
1062 |
int ccs_write_aggregator(char *data, const bool is_delete); |
int ccs_write_aggregator(char *data, const bool is_delete); |
1063 |
int ccs_write_capability(char *data, struct ccs_domain_info *domain, |
int ccs_write_capability(char *data, struct ccs_acl_param *param); |
|
struct ccs_condition *condition, |
|
|
const bool is_delete); |
|
1064 |
int ccs_write_control(struct file *file, const char __user *buffer, |
int ccs_write_control(struct file *file, const char __user *buffer, |
1065 |
const int buffer_len); |
const int buffer_len); |
1066 |
int ccs_write_file(char *data, struct ccs_domain_info *domain, |
int ccs_write_file(char *data, struct ccs_acl_param *param); |
|
struct ccs_condition *condition, const bool is_delete); |
|
1067 |
int ccs_write_group(char *data, const bool is_delete, const u8 type); |
int ccs_write_group(char *data, const bool is_delete, const u8 type); |
1068 |
int ccs_write_ipc(char *data, struct ccs_domain_info *domain, |
int ccs_write_ipc(char *data, struct ccs_acl_param *param); |
|
struct ccs_condition *condition, const bool is_delete); |
|
1069 |
int ccs_write_log(struct ccs_request_info *r, const char *fmt, ...) |
int ccs_write_log(struct ccs_request_info *r, const char *fmt, ...) |
1070 |
__attribute__ ((format(printf, 2, 3))); |
__attribute__ ((format(printf, 2, 3))); |
1071 |
int ccs_write_memory_quota(struct ccs_io_buffer *head); |
int ccs_write_memory_quota(struct ccs_io_buffer *head); |
1072 |
int ccs_write_misc(char *data, struct ccs_domain_info *domain, |
int ccs_write_misc(char *data, struct ccs_acl_param *param); |
1073 |
struct ccs_condition *condition, const bool is_delete); |
int ccs_write_inet_network(char *data, struct ccs_acl_param *param); |
1074 |
int ccs_write_inet_network(char *data, struct ccs_domain_info *domain, |
int ccs_write_unix_network(char *data, struct ccs_acl_param *param); |
|
struct ccs_condition *condition, |
|
|
const bool is_delete); |
|
|
int ccs_write_unix_network(char *data, struct ccs_domain_info *domain, |
|
|
struct ccs_condition *condition, |
|
|
const bool is_delete); |
|
1075 |
int ccs_write_pattern(char *data, const bool is_delete); |
int ccs_write_pattern(char *data, const bool is_delete); |
1076 |
int ccs_write_reserved_port(char *data, const bool is_delete); |
int ccs_write_reserved_port(char *data, const bool is_delete); |
1077 |
int ccs_write_transition_control(char *data, const bool is_delete, |
int ccs_write_transition_control(char *data, const bool is_delete, |
1118 |
return a->hash != b->hash || strcmp(a->name, b->name); |
return a->hash != b->hash || strcmp(a->name, b->name); |
1119 |
} |
} |
1120 |
|
|
|
static inline bool ccs_same_acl_head(const struct ccs_acl_info *p1, |
|
|
const struct ccs_acl_info *p2) |
|
|
{ |
|
|
return p1->type == p2->type && p1->cond == p2->cond; |
|
|
} |
|
|
|
|
1121 |
static inline bool ccs_same_name_union(const struct ccs_name_union *p1, |
static inline bool ccs_same_name_union(const struct ccs_name_union *p1, |
1122 |
const struct ccs_name_union *p2) |
const struct ccs_name_union *p2) |
1123 |
{ |
{ |