Home | History | Annotate | Download | only in sepol
      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