1 #ifndef _SELINUX_CONTEXT_H_ 2 #define _SELINUX_CONTEXT_H_ 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 /* 9 * Functions to deal with security contexts in user space. 10 */ 11 12 typedef struct { 13 void *ptr; 14 } context_s_t; 15 16 typedef context_s_t *context_t; 17 18 /* Return a new context initialized to a context string */ 19 20 extern context_t context_new(const char *); 21 22 /* 23 * Return a pointer to the string value of the context_t 24 * Valid until the next call to context_str or context_free 25 * for the same context_t* 26 */ 27 28 extern char *context_str(context_t); 29 30 /* Free the storage used by a context */ 31 extern void context_free(context_t); 32 33 /* Get a pointer to the string value of a context component */ 34 35 extern const char *context_type_get(context_t); 36 extern const char *context_range_get(context_t); 37 extern const char *context_role_get(context_t); 38 extern const char *context_user_get(context_t); 39 40 /* Set a context component. Returns nonzero if unsuccessful */ 41 42 extern int context_type_set(context_t, const char *); 43 extern int context_range_set(context_t, const char *); 44 extern int context_role_set(context_t, const char *); 45 extern int context_user_set(context_t, const char *); 46 47 #ifdef __cplusplus 48 } 49 #endif 50 #endif 51