113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#ifndef _SEMANAGE_NODE_INTERNAL_H_
213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define _SEMANAGE_NODE_INTERNAL_H_
313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <semanage/node_record.h>
513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <semanage/nodes_local.h>
613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <semanage/nodes_policy.h>
713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "database.h"
813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "handle.h"
913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include "dso.h"
1013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
1113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlehidden_proto(semanage_node_create)
1213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_compare)
1313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_compare2)
1413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_clone)
1513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_free)
1613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_key_extract)
1713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_key_free)
1813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_get_addr)
1913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_get_addr_bytes)
2013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_get_mask)
2113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_get_mask_bytes)
2213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_get_proto)
2313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_set_addr)
2413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_set_addr_bytes)
2513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_set_mask)
2613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_set_mask_bytes)
2713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_set_proto)
2813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_get_proto_str)
2913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_get_con)
3013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_set_con)
3113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle    hidden_proto(semanage_node_list_local)
3213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
3313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* NODE RECORD: method table */
3413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleextern record_table_t SEMANAGE_NODE_RTABLE;
3513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
3613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleextern int node_file_dbase_init(semanage_handle_t * handle,
37e37fa2f63be89afab9b5f5ddfedbd589d0676c4eCaleb Case				const char *path_ro,
38e37fa2f63be89afab9b5f5ddfedbd589d0676c4eCaleb Case				const char *path_rw,
39e37fa2f63be89afab9b5f5ddfedbd589d0676c4eCaleb Case				dbase_config_t * dconfig);
4013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
4113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleextern void node_file_dbase_release(dbase_config_t * dconfig);
4213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
4313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleextern int node_policydb_dbase_init(semanage_handle_t * handle,
4413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle				    dbase_config_t * dconfig);
4513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
4613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleextern void node_policydb_dbase_release(dbase_config_t * dconfig);
4713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
4813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleextern int hidden semanage_node_validate_local(semanage_handle_t * handle);
4913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
5013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* ==== Internal (to nodes) API === */
5113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
5213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlehidden int semanage_node_compare2_qsort(const semanage_node_t ** node,
5313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle					const semanage_node_t ** node2);
5413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
5513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#endif
56