1#ifndef _SEMANAGE_NODE_INTERNAL_H_
2#define _SEMANAGE_NODE_INTERNAL_H_
3
4#include <semanage/node_record.h>
5#include <semanage/nodes_local.h>
6#include <semanage/nodes_policy.h>
7#include "database.h"
8#include "handle.h"
9#include "dso.h"
10
11hidden_proto(semanage_node_create)
12    hidden_proto(semanage_node_compare)
13    hidden_proto(semanage_node_compare2)
14    hidden_proto(semanage_node_clone)
15    hidden_proto(semanage_node_free)
16    hidden_proto(semanage_node_key_extract)
17    hidden_proto(semanage_node_key_free)
18    hidden_proto(semanage_node_get_addr)
19    hidden_proto(semanage_node_get_addr_bytes)
20    hidden_proto(semanage_node_get_mask)
21    hidden_proto(semanage_node_get_mask_bytes)
22    hidden_proto(semanage_node_get_proto)
23    hidden_proto(semanage_node_set_addr)
24    hidden_proto(semanage_node_set_addr_bytes)
25    hidden_proto(semanage_node_set_mask)
26    hidden_proto(semanage_node_set_mask_bytes)
27    hidden_proto(semanage_node_set_proto)
28    hidden_proto(semanage_node_get_proto_str)
29    hidden_proto(semanage_node_get_con)
30    hidden_proto(semanage_node_set_con)
31    hidden_proto(semanage_node_list_local)
32
33/* NODE RECORD: method table */
34extern record_table_t SEMANAGE_NODE_RTABLE;
35
36extern int node_file_dbase_init(semanage_handle_t * handle,
37				const char *path_ro,
38				const char *path_rw,
39				dbase_config_t * dconfig);
40
41extern void node_file_dbase_release(dbase_config_t * dconfig);
42
43extern int node_policydb_dbase_init(semanage_handle_t * handle,
44				    dbase_config_t * dconfig);
45
46extern void node_policydb_dbase_release(dbase_config_t * dconfig);
47
48extern int hidden semanage_node_validate_local(semanage_handle_t * handle);
49
50/* ==== Internal (to nodes) API === */
51
52hidden int semanage_node_compare2_qsort(const semanage_node_t ** node,
53					const semanage_node_t ** node2);
54
55#endif
56