1 #ifndef _SEPOL_IBPKEY_RECORD_H_ 2 #define _SEPOL_IBPKEY_RECORD_H_ 3 4 #include <stddef.h> 5 #include <stdint.h> 6 #include <sepol/context_record.h> 7 #include <sepol/handle.h> 8 9 #define INET6_ADDRLEN 16 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 struct sepol_ibpkey; 16 struct sepol_ibpkey_key; 17 typedef struct sepol_ibpkey sepol_ibpkey_t; 18 typedef struct sepol_ibpkey_key sepol_ibpkey_key_t; 19 20 extern int sepol_ibpkey_compare(const sepol_ibpkey_t *ibpkey, 21 const sepol_ibpkey_key_t *key); 22 23 extern int sepol_ibpkey_compare2(const sepol_ibpkey_t *ibpkey, 24 const sepol_ibpkey_t *ibpkey2); 25 26 extern int sepol_ibpkey_key_create(sepol_handle_t *handle, 27 const char *subnet_prefix, 28 int low, int high, 29 sepol_ibpkey_key_t **key_ptr); 30 31 extern void sepol_ibpkey_key_unpack(const sepol_ibpkey_key_t *key, 32 uint64_t *subnet_prefix, 33 int *low, int *high); 34 35 extern int sepol_ibpkey_key_extract(sepol_handle_t *handle, 36 const sepol_ibpkey_t *ibpkey, 37 sepol_ibpkey_key_t **key_ptr); 38 39 extern void sepol_ibpkey_key_free(sepol_ibpkey_key_t *key); 40 41 extern int sepol_ibpkey_get_low(const sepol_ibpkey_t *ibpkey); 42 43 extern int sepol_ibpkey_get_high(const sepol_ibpkey_t *ibpkey); 44 45 extern void sepol_ibpkey_set_pkey(sepol_ibpkey_t *ibpkey, int pkey_num); 46 47 extern void sepol_ibpkey_set_range(sepol_ibpkey_t *ibpkey, int low, int high); 48 49 extern int sepol_ibpkey_get_subnet_prefix(sepol_handle_t *handle, 50 const sepol_ibpkey_t *ibpkey, 51 char **subnet_prefix); 52 53 extern uint64_t sepol_ibpkey_get_subnet_prefix_bytes(const sepol_ibpkey_t *ibpkey); 54 55 extern int sepol_ibpkey_set_subnet_prefix(sepol_handle_t *handle, 56 sepol_ibpkey_t *ibpkey, 57 const char *subnet_prefix); 58 59 extern void sepol_ibpkey_set_subnet_prefix_bytes(sepol_ibpkey_t *ibpkey, 60 uint64_t subnet_prefix); 61 62 extern sepol_context_t *sepol_ibpkey_get_con(const sepol_ibpkey_t *ibpkey); 63 64 extern int sepol_ibpkey_set_con(sepol_handle_t *handle, 65 sepol_ibpkey_t *ibpkey, sepol_context_t *con); 66 67 extern int sepol_ibpkey_create(sepol_handle_t *handle, sepol_ibpkey_t **ibpkey_ptr); 68 69 extern int sepol_ibpkey_clone(sepol_handle_t *handle, 70 const sepol_ibpkey_t *ibpkey, 71 sepol_ibpkey_t **ibpkey_ptr); 72 73 extern void sepol_ibpkey_free(sepol_ibpkey_t *ibpkey); 74 75 76 #ifdef __cplusplus 77 } 78 #endif 79 80 #endif 81