rpm 5.3.7

lib/fsm.h

Go to the documentation of this file.
00001 #ifndef H_FSM
00002 #define H_FSM
00003 
00009 #include <iosm.h>
00010 
00014 typedef /*@abstract@*/ struct iosm_s * FSM_t;
00015 
00016 /*@-exportlocal@*/
00017 /*@unchecked@*/
00018 extern int _fsm_debug;
00019 /*@=exportlocal@*/
00020 
00024 typedef /*@abstract@*/ struct iosmIterator_s * FSMI_t;
00025 
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029 
00034 /*@only@*/ IOSM_t newFSM(void)
00035         /*@*/;
00036 
00042 /*@null@*/ IOSM_t freeFSM(/*@only@*/ /*@null@*/ IOSM_t fsm)
00043         /*@globals fileSystem @*/
00044         /*@modifies fsm, fileSystem @*/;
00045 
00058 int fsmSetup(void * _fsm, iosmFileStage goal, /*@null@*/ const char * afmt,
00059                 const void * _ts,
00060                 const void * _fi,
00061                 FD_t cfd,
00062                 /*@out@*/ unsigned int * archiveSize,
00063                 /*@out@*/ const char ** failedFile)
00064         /*@globals h_errno, fileSystem, internalState @*/
00065         /*@modifies cfd, *archiveSize, *failedFile,
00066                 fileSystem, internalState @*/;
00067 
00073 int fsmTeardown(void * _fsm)
00074         /*@globals h_errno, fileSystem, internalState @*/
00075         /*@modifies _fsm, fileSystem, internalState @*/;
00076 
00081 int fsmMapPath(IOSM_t fsm)
00082         /*@modifies fsm @*/;
00083 
00088 int fsmMapAttrs(IOSM_t fsm)
00089         /*@modifies fsm @*/;
00090 /*@=exportlocal@*/
00091 
00098 int fsmNext(IOSM_t fsm, iosmFileStage nstage)
00099         /*@globals errno, h_errno, fileSystem, internalState @*/
00100         /*@modifies fsm, errno, fileSystem, internalState @*/;
00101 
00108 /*@-exportlocal@*/
00109 int fsmStage(/*@partial@*/ IOSM_t fsm, iosmFileStage stage)
00110         /*@globals errno, h_errno, fileSystem, internalState @*/
00111         /*@modifies fsm, errno, fileSystem, internalState @*/;
00112 /*@=exportlocal@*/
00113 
00114 #ifdef __cplusplus
00115 }
00116 #endif
00117 
00118 #endif  /* H_FSM */