1 /* Copyright (C) 2005 Red Hat, Inc. */
2 
3 #ifndef _SEMANAGE_SEUSER_RECORD_H_
4 #define _SEMANAGE_SEUSER_RECORD_H_
5 
6 #include <semanage/handle.h>
7 
8 struct semanage_seuser;
9 struct semanage_seuser_key;
10 typedef struct semanage_seuser semanage_seuser_t;
11 typedef struct semanage_seuser_key semanage_seuser_key_t;
12 
13 /* Key */
14 extern int semanage_seuser_key_create(semanage_handle_t * handle,
15 				      const char *name,
16 				      semanage_seuser_key_t ** key);
17 
18 extern int semanage_seuser_key_extract(semanage_handle_t * handle,
19 				       const semanage_seuser_t * seuser,
20 				       semanage_seuser_key_t ** key);
21 
22 extern void semanage_seuser_key_free(semanage_seuser_key_t * key);
23 
24 extern int semanage_seuser_compare(const semanage_seuser_t * seuser,
25 				   const semanage_seuser_key_t * key);
26 
27 extern int semanage_seuser_compare2(const semanage_seuser_t * seuser,
28 				    const semanage_seuser_t * seuser2);
29 
30 /* Name */
31 extern const char *semanage_seuser_get_name(const semanage_seuser_t * seuser);
32 
33 extern int semanage_seuser_set_name(semanage_handle_t * handle,
34 				    semanage_seuser_t * seuser,
35 				    const char *name);
36 
37 /* Selinux Name */
38 extern const char *semanage_seuser_get_sename(const semanage_seuser_t * seuser);
39 
40 extern int semanage_seuser_set_sename(semanage_handle_t * handle,
41 				      semanage_seuser_t * seuser,
42 				      const char *sename);
43 
44 /* MLS */
45 extern const char *semanage_seuser_get_mlsrange(const semanage_seuser_t *
46 						seuser);
47 
48 extern int semanage_seuser_set_mlsrange(semanage_handle_t * handle,
49 					semanage_seuser_t * seuser,
50 					const char *mls_range);
51 
52 /* Create/Clone/Destroy */
53 extern int semanage_seuser_create(semanage_handle_t * handle,
54 				  semanage_seuser_t ** seuser_ptr);
55 
56 extern int semanage_seuser_clone(semanage_handle_t * handle,
57 				 const semanage_seuser_t * seuser,
58 				 semanage_seuser_t ** seuser_ptr);
59 
60 extern void semanage_seuser_free(semanage_seuser_t * seuser);
61 #endif
62