rpm 5.2.1
|
00001 #ifndef RPMHOOK_H 00002 #define RPMHOOK_H 00003 00004 typedef union { 00005 /*@observer@*/ 00006 const char * s; 00007 int i; 00008 float f; 00009 /*@observer@*/ 00010 void * p; 00011 } rpmhookArgv; 00012 00013 typedef struct rpmhookArgs_s { 00014 int argc; 00015 const char * argt; 00016 rpmhookArgv argv[1]; 00017 } * rpmhookArgs; 00018 00019 typedef int (*rpmhookFunc) (rpmhookArgs args, void *data); 00020 00021 /*@only@*/ 00022 rpmhookArgs rpmhookArgsNew(int argc) 00023 /*@*/; 00024 /*@null@*/ 00025 rpmhookArgs rpmhookArgsFree(/*@only@*/ /*@null@*/ rpmhookArgs args) 00026 /*@modifies args @*/; 00027 00028 void rpmhookRegister(const char *name, rpmhookFunc func, void *data) 00029 /*@globals internalState @*/ 00030 /*@modifies internalState @*/; 00031 void rpmhookUnregister(const char *name, rpmhookFunc func, void *data) 00032 /*@*/; 00033 void rpmhookUnregisterAny(const char *name, rpmhookFunc func) 00034 /*@*/; 00035 void rpmhookUnregisterAll(const char *name) 00036 /*@*/; 00037 void rpmhookCall(const char *name, const char *argt, ...) 00038 /*@*/; 00039 void rpmhookCallArgs(const char *name, rpmhookArgs args) 00040 /*@globals internalState @*/ 00041 /*@modifies internalState @*/; 00042 00043 #endif