xref: /aosp_15_r20/external/selinux/libsemanage/src/database_file.h (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker /* Copyright (C) 2005 Red Hat, Inc. */
2*2d543d20SAndroid Build Coastguard Worker 
3*2d543d20SAndroid Build Coastguard Worker #ifndef _SEMANAGE_DATABASE_FILE_INTERNAL_H_
4*2d543d20SAndroid Build Coastguard Worker #define _SEMANAGE_DATABASE_FILE_INTERNAL_H_
5*2d543d20SAndroid Build Coastguard Worker 
6*2d543d20SAndroid Build Coastguard Worker #include <stdio.h>
7*2d543d20SAndroid Build Coastguard Worker #include "database.h"
8*2d543d20SAndroid Build Coastguard Worker #include "parse_utils.h"
9*2d543d20SAndroid Build Coastguard Worker #include "handle.h"
10*2d543d20SAndroid Build Coastguard Worker 
11*2d543d20SAndroid Build Coastguard Worker struct dbase_file;
12*2d543d20SAndroid Build Coastguard Worker typedef struct dbase_file dbase_file_t;
13*2d543d20SAndroid Build Coastguard Worker 
14*2d543d20SAndroid Build Coastguard Worker /* FILE extension to RECORD interface - method table */
15*2d543d20SAndroid Build Coastguard Worker typedef struct record_file_table {
16*2d543d20SAndroid Build Coastguard Worker 
17*2d543d20SAndroid Build Coastguard Worker 	/* Fill record structuure based on supplied parse info.
18*2d543d20SAndroid Build Coastguard Worker 	 * Parser must return STATUS_NODATA when EOF is encountered.
19*2d543d20SAndroid Build Coastguard Worker 	 * Parser must handle NULL file stream correctly */
20*2d543d20SAndroid Build Coastguard Worker 	int (*parse) (semanage_handle_t * handle,
21*2d543d20SAndroid Build Coastguard Worker 		      parse_info_t * info, record_t * record);
22*2d543d20SAndroid Build Coastguard Worker 
23*2d543d20SAndroid Build Coastguard Worker 	/* Print record to stream */
24*2d543d20SAndroid Build Coastguard Worker 	int (*print) (semanage_handle_t * handle,
25*2d543d20SAndroid Build Coastguard Worker 		      record_t * record, FILE * str);
26*2d543d20SAndroid Build Coastguard Worker 
27*2d543d20SAndroid Build Coastguard Worker } record_file_table_t;
28*2d543d20SAndroid Build Coastguard Worker 
29*2d543d20SAndroid Build Coastguard Worker /* FILE - initialization */
30*2d543d20SAndroid Build Coastguard Worker extern int dbase_file_init(semanage_handle_t * handle,
31*2d543d20SAndroid Build Coastguard Worker 			   const char *path_ro,
32*2d543d20SAndroid Build Coastguard Worker 			   const char *path_rw,
33*2d543d20SAndroid Build Coastguard Worker 			   record_table_t * rtable,
34*2d543d20SAndroid Build Coastguard Worker 			   record_file_table_t * rftable,
35*2d543d20SAndroid Build Coastguard Worker 			   dbase_file_t ** dbase);
36*2d543d20SAndroid Build Coastguard Worker 
37*2d543d20SAndroid Build Coastguard Worker /* FILE - release */
38*2d543d20SAndroid Build Coastguard Worker extern void dbase_file_release(dbase_file_t * dbase);
39*2d543d20SAndroid Build Coastguard Worker 
40*2d543d20SAndroid Build Coastguard Worker /* FILE - method table implementation */
41*2d543d20SAndroid Build Coastguard Worker extern dbase_table_t SEMANAGE_FILE_DTABLE;
42*2d543d20SAndroid Build Coastguard Worker 
43*2d543d20SAndroid Build Coastguard Worker #endif
44