1255e72915d4cbddceb435e13d81601755714e9fSE Android#ifndef __SEPOL_INTERFACES_H_ 2255e72915d4cbddceb435e13d81601755714e9fSE Android#define __SEPOL_INTERFACES_H_ 3255e72915d4cbddceb435e13d81601755714e9fSE Android 4255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/policydb.h> 5255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/iface_record.h> 6255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/handle.h> 7255e72915d4cbddceb435e13d81601755714e9fSE Android 8255e72915d4cbddceb435e13d81601755714e9fSE Android/* Return the number of interfaces */ 9255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_count(sepol_handle_t * handle, 10255e72915d4cbddceb435e13d81601755714e9fSE Android const sepol_policydb_t * policydb, 11255e72915d4cbddceb435e13d81601755714e9fSE Android unsigned int *response); 12255e72915d4cbddceb435e13d81601755714e9fSE Android 13255e72915d4cbddceb435e13d81601755714e9fSE Android/* Check if an interface exists */ 14255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_exists(sepol_handle_t * handle, 15255e72915d4cbddceb435e13d81601755714e9fSE Android const sepol_policydb_t * policydb, 16255e72915d4cbddceb435e13d81601755714e9fSE Android const sepol_iface_key_t * key, int *response); 17255e72915d4cbddceb435e13d81601755714e9fSE Android 18255e72915d4cbddceb435e13d81601755714e9fSE Android/* Query an interface - returns the interface, 19255e72915d4cbddceb435e13d81601755714e9fSE Android * or NULL if not found */ 20255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_query(sepol_handle_t * handle, 21255e72915d4cbddceb435e13d81601755714e9fSE Android const sepol_policydb_t * policydb, 22255e72915d4cbddceb435e13d81601755714e9fSE Android const sepol_iface_key_t * key, 23255e72915d4cbddceb435e13d81601755714e9fSE Android sepol_iface_t ** response); 24255e72915d4cbddceb435e13d81601755714e9fSE Android 25255e72915d4cbddceb435e13d81601755714e9fSE Android/* Modify an interface, or add it, if the key 26255e72915d4cbddceb435e13d81601755714e9fSE Android * is not found */ 27255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_modify(sepol_handle_t * handle, 28255e72915d4cbddceb435e13d81601755714e9fSE Android sepol_policydb_t * policydb, 29255e72915d4cbddceb435e13d81601755714e9fSE Android const sepol_iface_key_t * key, 30255e72915d4cbddceb435e13d81601755714e9fSE Android const sepol_iface_t * data); 31255e72915d4cbddceb435e13d81601755714e9fSE Android 32255e72915d4cbddceb435e13d81601755714e9fSE Android/* Iterate the interfaces 33255e72915d4cbddceb435e13d81601755714e9fSE Android * The handler may return: 34255e72915d4cbddceb435e13d81601755714e9fSE Android * -1 to signal an error condition, 35255e72915d4cbddceb435e13d81601755714e9fSE Android * 1 to signal successful exit 36255e72915d4cbddceb435e13d81601755714e9fSE Android * 0 to signal continue */ 37255e72915d4cbddceb435e13d81601755714e9fSE Android 38255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_iface_iterate(sepol_handle_t * handle, 39255e72915d4cbddceb435e13d81601755714e9fSE Android const sepol_policydb_t * policydb, 40255e72915d4cbddceb435e13d81601755714e9fSE Android int (*fn) (const sepol_iface_t * iface, 41255e72915d4cbddceb435e13d81601755714e9fSE Android void *fn_arg), void *arg); 42255e72915d4cbddceb435e13d81601755714e9fSE Android 43255e72915d4cbddceb435e13d81601755714e9fSE Android#endif 44