1255e72915d4cbddceb435e13d81601755714e9fSE Android#ifndef _SEPOL_INTERNAL_CONTEXT_H_ 2255e72915d4cbddceb435e13d81601755714e9fSE Android#define _SEPOL_INTERNAL_CONTEXT_H_ 3255e72915d4cbddceb435e13d81601755714e9fSE Android 4255e72915d4cbddceb435e13d81601755714e9fSE Android#include <stddef.h> 5255e72915d4cbddceb435e13d81601755714e9fSE Android#include "context_internal.h" 6255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/policydb/context.h> 7255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/policydb/policydb.h> 8255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/handle.h> 9255e72915d4cbddceb435e13d81601755714e9fSE Android 10255e72915d4cbddceb435e13d81601755714e9fSE Android/* Create a context structure from high level representation */ 11255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int context_from_record(sepol_handle_t * handle, 12255e72915d4cbddceb435e13d81601755714e9fSE Android const policydb_t * policydb, 13255e72915d4cbddceb435e13d81601755714e9fSE Android context_struct_t ** cptr, 14255e72915d4cbddceb435e13d81601755714e9fSE Android const sepol_context_t * data); 15255e72915d4cbddceb435e13d81601755714e9fSE Android 16255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int context_to_record(sepol_handle_t * handle, 17255e72915d4cbddceb435e13d81601755714e9fSE Android const policydb_t * policydb, 18255e72915d4cbddceb435e13d81601755714e9fSE Android const context_struct_t * context, 19255e72915d4cbddceb435e13d81601755714e9fSE Android sepol_context_t ** record); 20255e72915d4cbddceb435e13d81601755714e9fSE Android 21255e72915d4cbddceb435e13d81601755714e9fSE Android/* Create a context structure from string representation */ 22255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int context_from_string(sepol_handle_t * handle, 23255e72915d4cbddceb435e13d81601755714e9fSE Android const policydb_t * policydb, 24255e72915d4cbddceb435e13d81601755714e9fSE Android context_struct_t ** cptr, 25255e72915d4cbddceb435e13d81601755714e9fSE Android const char *con_str, size_t con_str_len); 26255e72915d4cbddceb435e13d81601755714e9fSE Android 27255e72915d4cbddceb435e13d81601755714e9fSE Android/* Check if the provided context is valid for this policy */ 28255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int context_is_valid(const policydb_t * policydb, 29255e72915d4cbddceb435e13d81601755714e9fSE Android const context_struct_t * context); 30255e72915d4cbddceb435e13d81601755714e9fSE Android 31255e72915d4cbddceb435e13d81601755714e9fSE Android/* Extract the context as string */ 32255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int context_to_string(sepol_handle_t * handle, 33255e72915d4cbddceb435e13d81601755714e9fSE Android const policydb_t * policydb, 34255e72915d4cbddceb435e13d81601755714e9fSE Android const context_struct_t * context, 35255e72915d4cbddceb435e13d81601755714e9fSE Android char **result, size_t * result_len); 36255e72915d4cbddceb435e13d81601755714e9fSE Android 37255e72915d4cbddceb435e13d81601755714e9fSE Android#endif 38