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