iface_record.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef _SEPOL_IFACE_RECORD_H_
  2. #define _SEPOL_IFACE_RECORD_H_
  3. #include <sepol/handle.h>
  4. #include <sepol/context_record.h>
  5. struct sepol_iface;
  6. struct sepol_iface_key;
  7. typedef struct sepol_iface sepol_iface_t;
  8. typedef struct sepol_iface_key sepol_iface_key_t;
  9. /* Key */
  10. extern int sepol_iface_compare(const sepol_iface_t * iface,
  11. const sepol_iface_key_t * key);
  12. extern int sepol_iface_compare2(const sepol_iface_t * iface,
  13. const sepol_iface_t * iface2);
  14. extern void sepol_iface_key_unpack(const sepol_iface_key_t * key,
  15. const char **name);
  16. extern int sepol_iface_key_create(sepol_handle_t * handle,
  17. const char *name,
  18. sepol_iface_key_t ** key_ptr);
  19. extern int sepol_iface_key_extract(sepol_handle_t * handle,
  20. const sepol_iface_t * iface,
  21. sepol_iface_key_t ** key_ptr);
  22. extern void sepol_iface_key_free(sepol_iface_key_t * key);
  23. /* Name */
  24. extern const char *sepol_iface_get_name(const sepol_iface_t * iface);
  25. extern int sepol_iface_set_name(sepol_handle_t * handle,
  26. sepol_iface_t * iface, const char *name);
  27. /* Context */
  28. extern sepol_context_t *sepol_iface_get_ifcon(const sepol_iface_t * iface);
  29. extern int sepol_iface_set_ifcon(sepol_handle_t * handle,
  30. sepol_iface_t * iface, sepol_context_t * con);
  31. extern sepol_context_t *sepol_iface_get_msgcon(const sepol_iface_t * iface);
  32. extern int sepol_iface_set_msgcon(sepol_handle_t * handle,
  33. sepol_iface_t * iface, sepol_context_t * con);
  34. /* Create/Clone/Destroy */
  35. extern int sepol_iface_create(sepol_handle_t * handle,
  36. sepol_iface_t ** iface_ptr);
  37. extern int sepol_iface_clone(sepol_handle_t * handle,
  38. const sepol_iface_t * iface,
  39. sepol_iface_t ** iface_ptr);
  40. extern void sepol_iface_free(sepol_iface_t * iface);
  41. #endif