diff options
author | shennetsind <notind@gmail.com> | 2013-08-08 11:19:02 -0700 |
---|---|---|
committer | shennetsind <notind@gmail.com> | 2013-08-08 11:19:02 -0700 |
commit | 1197e46b6ca1f399edc18fbd60a3e2c4adf6c32f (patch) | |
tree | cbfd9f0847cb5b9e65cd77ab4e8861f34165c67d /src/common/HPM.h | |
parent | defac0ef9714121a872ab48c3f6c4ddd177ae509 (diff) | |
parent | 04db720ee56ad8ddddf4255575c5d60e2c214a13 (diff) | |
download | hercules-1197e46b6ca1f399edc18fbd60a3e2c4adf6c32f.tar.gz hercules-1197e46b6ca1f399edc18fbd60a3e2c4adf6c32f.tar.bz2 hercules-1197e46b6ca1f399edc18fbd60a3e2c4adf6c32f.tar.xz hercules-1197e46b6ca1f399edc18fbd60a3e2c4adf6c32f.zip |
Merge pull request #83 from HerculesWS/HPMUpdateR2
Hercules Plugin Manager Update
Diffstat (limited to 'src/common/HPM.h')
-rw-r--r-- | src/common/HPM.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/common/HPM.h b/src/common/HPM.h index 10b1f0e79..d2a1308f2 100644 --- a/src/common/HPM.h +++ b/src/common/HPM.h @@ -49,6 +49,27 @@ struct hpm_symbol { void *ptr; }; +struct HPluginData { + unsigned int pluginID; + unsigned int type; + struct { + unsigned int free : 1; + } flag; + void *data; +}; + +struct HPluginPacket { + unsigned int pluginID; + unsigned short cmd; + short len; + void (*receive) (int fd); +}; + +struct HPMFileNameCache { + const char *addr; + char *name; +}; + /* Hercules Plugin Manager Interface */ struct HPM_interface { /* vars */ @@ -59,6 +80,12 @@ struct HPM_interface { unsigned int plugin_count; struct hpm_symbol **symbols; unsigned int symbol_count; + /* packet hooking points */ + struct HPluginPacket *packets[hpPHP_MAX]; + unsigned int packetsc[hpPHP_MAX]; + /* plugin file ptr caching */ + struct HPMFileNameCache *fnames; + unsigned int fnamec; /* funcs */ void (*init) (void); void (*final) (void); @@ -73,7 +100,10 @@ struct HPM_interface { void (*symbol_defaults) (void); void (*config_read) (void); bool (*populate) (struct hplugin *plugin,const char *filename); - void (*symbol_defaults_sub) (void); + void (*symbol_defaults_sub) (void);//TODO drop + char *(*pid2name) (unsigned int pid); + unsigned char (*parse_packets) (int fd, enum HPluginPacketHookingPoints point); + void (*load_sub) (struct hplugin *plugin); } HPM_s; struct HPM_interface *HPM; |