1255e72915d4cbddceb435e13d81601755714e9fSE Android#ifndef _SEPOL_IFACE_RECORD_H_
2255e72915d4cbddceb435e13d81601755714e9fSE Android#define _SEPOL_IFACE_RECORD_H_
3255e72915d4cbddceb435e13d81601755714e9fSE Android
4255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/handle.h>
5255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/context_record.h>
6255e72915d4cbddceb435e13d81601755714e9fSE Android
7255e72915d4cbddceb435e13d81601755714e9fSE Androidstruct sepol_iface;
8255e72915d4cbddceb435e13d81601755714e9fSE Androidstruct sepol_iface_key;
9255e72915d4cbddceb435e13d81601755714e9fSE Androidtypedef struct sepol_iface sepol_iface_t;
10255e72915d4cbddceb435e13d81601755714e9fSE Androidtypedef struct sepol_iface_key sepol_iface_key_t;
11255e72915d4cbddceb435e13d81601755714e9fSE Android
12255e72915d4cbddceb435e13d81601755714e9fSE Android/* Key */
13255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_compare(const sepol_iface_t * iface,
14255e72915d4cbddceb435e13d81601755714e9fSE Android			       const sepol_iface_key_t * key);
15255e72915d4cbddceb435e13d81601755714e9fSE Android
16255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_compare2(const sepol_iface_t * iface,
17255e72915d4cbddceb435e13d81601755714e9fSE Android				const sepol_iface_t * iface2);
18255e72915d4cbddceb435e13d81601755714e9fSE Android
19255e72915d4cbddceb435e13d81601755714e9fSE Androidextern void sepol_iface_key_unpack(const sepol_iface_key_t * key,
20255e72915d4cbddceb435e13d81601755714e9fSE Android				   const char **name);
21255e72915d4cbddceb435e13d81601755714e9fSE Android
22255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_key_create(sepol_handle_t * handle,
23255e72915d4cbddceb435e13d81601755714e9fSE Android				  const char *name,
24255e72915d4cbddceb435e13d81601755714e9fSE Android				  sepol_iface_key_t ** key_ptr);
25255e72915d4cbddceb435e13d81601755714e9fSE Android
26255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_key_extract(sepol_handle_t * handle,
27255e72915d4cbddceb435e13d81601755714e9fSE Android				   const sepol_iface_t * iface,
28255e72915d4cbddceb435e13d81601755714e9fSE Android				   sepol_iface_key_t ** key_ptr);
29255e72915d4cbddceb435e13d81601755714e9fSE Android
30255e72915d4cbddceb435e13d81601755714e9fSE Androidextern void sepol_iface_key_free(sepol_iface_key_t * key);
31255e72915d4cbddceb435e13d81601755714e9fSE Android
32255e72915d4cbddceb435e13d81601755714e9fSE Android/* Name */
33255e72915d4cbddceb435e13d81601755714e9fSE Androidextern const char *sepol_iface_get_name(const sepol_iface_t * iface);
34255e72915d4cbddceb435e13d81601755714e9fSE Android
35255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_set_name(sepol_handle_t * handle,
36255e72915d4cbddceb435e13d81601755714e9fSE Android				sepol_iface_t * iface, const char *name);
37255e72915d4cbddceb435e13d81601755714e9fSE Android
38255e72915d4cbddceb435e13d81601755714e9fSE Android/* Context */
39255e72915d4cbddceb435e13d81601755714e9fSE Androidextern sepol_context_t *sepol_iface_get_ifcon(const sepol_iface_t * iface);
40255e72915d4cbddceb435e13d81601755714e9fSE Android
41255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_set_ifcon(sepol_handle_t * handle,
42255e72915d4cbddceb435e13d81601755714e9fSE Android				 sepol_iface_t * iface, sepol_context_t * con);
43255e72915d4cbddceb435e13d81601755714e9fSE Android
44255e72915d4cbddceb435e13d81601755714e9fSE Androidextern sepol_context_t *sepol_iface_get_msgcon(const sepol_iface_t * iface);
45255e72915d4cbddceb435e13d81601755714e9fSE Android
46255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_set_msgcon(sepol_handle_t * handle,
47255e72915d4cbddceb435e13d81601755714e9fSE Android				  sepol_iface_t * iface, sepol_context_t * con);
48255e72915d4cbddceb435e13d81601755714e9fSE Android
49255e72915d4cbddceb435e13d81601755714e9fSE Android/* Create/Clone/Destroy */
50255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_create(sepol_handle_t * handle,
51255e72915d4cbddceb435e13d81601755714e9fSE Android			      sepol_iface_t ** iface_ptr);
52255e72915d4cbddceb435e13d81601755714e9fSE Android
53255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_clone(sepol_handle_t * handle,
54255e72915d4cbddceb435e13d81601755714e9fSE Android			     const sepol_iface_t * iface,
55255e72915d4cbddceb435e13d81601755714e9fSE Android			     sepol_iface_t ** iface_ptr);
56255e72915d4cbddceb435e13d81601755714e9fSE Android
57255e72915d4cbddceb435e13d81601755714e9fSE Androidextern void sepol_iface_free(sepol_iface_t * iface);
58255e72915d4cbddceb435e13d81601755714e9fSE Android
59255e72915d4cbddceb435e13d81601755714e9fSE Android#endif
60