1b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#ifndef _SEMANAGE_NODE_INTERNAL_H_
2b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#define _SEMANAGE_NODE_INTERNAL_H_
31b7d32f919554dda9c193b32188251337bc756f1Fredrik Roubert
459d709d503bab6e2b61931737e662dd293b40578ccornelius#include <semanage/node_record.h>
559d709d503bab6e2b61931737e662dd293b40578ccornelius#include <semanage/nodes_local.h>
659d709d503bab6e2b61931737e662dd293b40578ccornelius#include <semanage/nodes_policy.h>
7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "database.h"
8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "handle.h"
9b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include "dso.h"
1059d709d503bab6e2b61931737e662dd293b40578ccornelius
11b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queruhidden_proto(semanage_node_create)
12b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    hidden_proto(semanage_node_compare)
13b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    hidden_proto(semanage_node_compare2)
14b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    hidden_proto(semanage_node_clone)
15b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    hidden_proto(semanage_node_free)
16b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    hidden_proto(semanage_node_key_extract)
17b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    hidden_proto(semanage_node_key_free)
18b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    hidden_proto(semanage_node_get_addr)
196d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_get_addr_bytes)
20b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    hidden_proto(semanage_node_get_mask)
2154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius    hidden_proto(semanage_node_get_mask_bytes)
226d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_get_proto)
236d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_set_addr)
246d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_set_addr_bytes)
256d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_set_mask)
266d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_set_mask_bytes)
276d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_set_proto)
286d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_get_proto_str)
296d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_get_con)
306d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_set_con)
316d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru    hidden_proto(semanage_node_list_local)
326d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru
336d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru/* NODE RECORD: method table */
346d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queruextern record_table_t SEMANAGE_NODE_RTABLE;
356d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru
366d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queruextern int node_file_dbase_init(semanage_handle_t * handle,
376d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru				const char *path_ro,
386d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru				const char *path_rw,
396d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru				dbase_config_t * dconfig);
406d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru
416d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queruextern void node_file_dbase_release(dbase_config_t * dconfig);
426d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru
436d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queruextern int node_policydb_dbase_init(semanage_handle_t * handle,
446d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru				    dbase_config_t * dconfig);
456d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru
466d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queruextern void node_policydb_dbase_release(dbase_config_t * dconfig);
476d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru
486d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queruextern int hidden semanage_node_validate_local(semanage_handle_t * handle);
496d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru
506d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru/* ==== Internal (to nodes) API === */
516d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru
526d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queruhidden int semanage_node_compare2_qsort(const semanage_node_t ** node,
536d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru					const semanage_node_t ** node2);
546d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru
556d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru#endif
566d5deb12725f146643d443090dfa11b206df528aJean-Baptiste Queru