summaryrefslogtreecommitdiff
path: root/tools/HPMHookGen/HPMHookGen.pl
AgeCommit message (Collapse)AuthorFilesLines
2021-01-07Partial upgrade to v2020.01.12Jesusaves1-2/+2
2019-05-09Fix errors in the HPM Hooks generatorHaru1-1/+2
This adds the interface variables of type pointer to array to the ignored variables when generating the hooks Signed-off-by: Haru <haru@dotalux.com>
2018-04-25Add support for time_t as return type in the HPMHookGenHaru1-1/+2
Signed-off-by: Haru <haru@dotalux.com>
2017-04-26Improve the code style of the generated HPMHooking dataHaru1-11/+12
Signed-off-by: Haru <haru@dotalux.com>
2016-10-14Fixed a memory manager crash when a memory leak occurs in a pluginHaru1-2/+1
- Plugins were accidentally using the core's memory manager instead of the HPM-safe wrappers. - As a side-effect of this, plugins shall not be able to hook into the iMalloc interface. - The issue was introduced in e7c2f7d827ad286dc826e483391e64b8ffe2720b Signed-off-by: Haru <haru@dotalux.com>
2016-07-12Interface grfio.chemagx1-0/+3
2016-07-12Removed unnecessary typedefs from thread and spinlockHaru1-0/+2
- SPIN_LOCK -> struct spin_lock - rAthread -> struct thread_handle - rAthreadProc -> threadFunc - RATHREAD_PRIO -> enum thread_priority - RAT_PRIO_LOW -> THREADPRIO_LOW - RAT_PRIO_NORMAL -> THREADPRIO_NORMAL - RAT_PRIO_HIGH -> THREADPRIO_HIGH - RA_THREADS_MAX -> THREADS_MAX Signed-off-by: Haru <haru@dotalux.com> fixupthread
2016-07-12Changed the HPMHookGen script to correctly handle macros associated with an ↵Haru1-0/+1
interface Signed-off-by: Haru <haru@dotalux.com>
2016-07-02Added 'GENERATED FILE DO NOT EDIT' to the auto-generated filesHaru1-0/+2
See https://github.com/Reviewable/Reviewable/wiki/FAQ#how-do-i-tell-reviewable-that-a-file-is-generated-and-should-not-be-reviewed Signed-off-by: Haru <haru@dotalux.com>
2016-04-30Added one level of indirection to all variables in pre-hook functionsHaru1-1/+1
- Previously, only scalar variables had their indirection level increased. Now pointers do as well (this allows users to override const pointers) Signed-off-by: Haru <haru@dotalux.com>
2016-04-30Removed extra indirection level in HPMHooking post-hooksHaru1-14/+16
- The extra indirection level (necessary to override function arguments from a hook) isn't necessary in post-hooks, but only in pre-hooks. - This simplifies the syntax and code of post-hooks. Signed-off-by: Haru <haru@dotalux.com>
2016-04-30Replaced memset with braced initializers in the HPMHooking hook handlersHaru1-5/+1
Signed-off-by: Haru <haru@dotalux.com>
2016-04-30Added type-checking for the addHookPre() and addHookPost() macrosHaru1-119/+58
- The macros will now throw a warning at compile time if a plugin is using a wrong function type for a pre or post hook. This avoids some very subtle, hard to detect, issues. - The macros now require 3 arguments instead of 2. Example: old code: addHookPre("ifname->function" my_hook); becomes: addHookPre(ifname, function, my_hook); Signed-off-by: Haru <haru@dotalux.com>
2016-04-16Added lclif packet handlers to the lclif interfaceHaru1-1/+6
Signed-off-by: Haru <haru@dotalux.com>
2016-04-16Rewrite client interface for login server (part 3)hemagx1-0/+2
Rewritten login clif parser, using a packet db Signed-off-by: Haru <haru@dotalux.com>
2016-04-16Added support for private headers to the HPMDataCheck/HPMHooking generatorsHaru1-8/+17
Signed-off-by: Haru <haru@dotalux.com>
2016-03-20Updated HPMHookGen script to support union argumentsHaru1-2/+2
Also removed the no longer necessary DB-related typedefs Signed-off-by: Haru <haru@dotalux.com>
2015-12-15Added GPL-compliant header to all sources and build scriptsHaru1-27/+137
Signed-off-by: Haru <haru@dotalux.com>
2015-08-15HPM compatibility improvementsHaru1-26/+65
Improved compatibility, portability and standards conformance. - Since it is not possible to portably and reliably re-use the core's symbols in plugins, symbols are no longer exported unless explicitly required, in the UNIX builds. This mimics the Windows behavior and adds HPM compatibility to OSes such as FreeBSD. Credits to Andrei Karas for making this possible. - For convenience, it is no longer necessary to call GET_SYMBOL, since the plugin will automatically import all the available symbols when it's loaded, depending on the included headers. - Plugins are now supposed to include the "common/hercules.h" header before including anything else. Incluing common/HPMi.h, common/cbasetypes.h or conf/core.h is no longer necessary, as those are guaranteed to be automatically included by hercules.h. - HPM API version bumped to 1.1. Signed-off-by: Haru <haru@dotalux.com>
2015-08-15Added HPMHooking support for common interfacesHaru1-4/+37
Signed-off-by: Haru <haru@dotalux.com>
2015-06-19Fixed HPMHookGen's inability to detect certain interface membersHaru1-5/+6
Private members as well as members of interfaces with more than one section are now correctly detected. Signed-off-by: Haru <haru@dotalux.com>
2015-06-19Follow-up to e81d221Haru1-5/+1
Let doxygen ignore __attribute__ instead of ignoring it at parse time. Signed-off-by: Haru <haru@dotalux.com>
2015-06-19Improved info/error messages during plugin loadingHaru1-2/+2
- Each loaded plugin will now show a status message - If a plugin loads because of a missing symbol, an error message will be displayed, mentioning the name of the missing symbol. Signed-off-by: Haru <haru@dotalux.com>
2015-06-19Improved the HPMHookingGen parserHaru1-0/+5
It now strips gcc's __attribute__ from interface methods Signed-off-by: Haru <haru@dotalux.com>
2015-01-24Minor channel system refactoringHaru1-0/+2
Signed-off-by: Haru <haru@dotalux.com>
2015-01-22HPMHookGen compatibility fix for doxygen 1.8.9.xHaru1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2014-11-15Follow-up to 61fc83fd7dd51e9a88ac7e6264692fcf561a37f7Haru1-1/+1
Compatibility fix for older versions of Perl Signed-off-by: Haru <haru@dotalux.com>
2014-11-15Corrected an issue in the HPMHookGen when interfaces only have one memberHaru1-14/+12
- Fixed hooks/symbols generation for the inter_quest interface - Re-enabled strict mode Signed-off-by: Haru <haru@dotalux.com>
2014-11-15Fix HPM hook generation script for support new interfaces.Andrei Karas1-1/+6
2014-11-02Fixed an error in the HPMHookGenHaru1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2014-10-28Added preliminary support for char and login server to HPMHookingHaru1-84/+91
- Special thanks to Ind Signed-off-by: Haru <haru@dotalux.com>
2014-05-01Corrected an issue when calling hookStop() from a post-hookHaru1-0/+1
- Now hookStop() will do absolutely nothing if called from a post-hook, instead of causing unexpected effects on the next pre-hook execution. Signed-off-by: Haru <haru@dotalux.com>
2014-04-19Added support for enum bg_queue_types to the HPMHookGenHaru1-0/+2
- Fixes a HPM Hook generator warning in battlegrounds.c Signed-off-by: Haru <haru@dotalux.com>
2014-03-17Improved const pointer detection in the HPMHooking generatorHaru1-2/+2
- Fixes a HPMHooking compile error in d117462. Thanks to Potte. Signed-off-by: Haru <haru@dotalux.com>
2014-02-03Updated HPMHookGen with a HPMDataCheck generatorHaru1-0/+6
- It will be used by an upcoming commit by Ind. - Added dummy HPMDataCheck.h, to test the API bot's capability to re-generate it. - Improved XML parser performance. Signed-off-by: Haru <haru@dotalux.com>
2013-11-04pc_groups interfacedshennetsind1-0/+3
The last file without a interface is now no more (date.h doesn't count :P). Modified the way permissions are stored in order to enable plugins to be able to create permissions ( pcg->add_permission("name") [returns permission key] ). Special Thanks to Haruna! Closes #121 Signed-off-by: shennetsind <ind@henn.et>
2013-10-16Modified HPM Hook Cachingshennetsind1-1/+1
Dropped hard-coded indexes, will make updates of the file in the future be smaller and much more clear in content. Made Possible Thanks to Haruna <3 Signed-off-by: shennetsind <ind@henn.et>
2013-10-09Added HPMHookGen tool, to re-generate hooks include filesHaru1-0/+568
- Slightly reformatted the include files (as produced by the new tool) - You normally won't need to use the generation tool, but in case you do, the software requirements are: * A Unix-compatible system (cygwin may work, or may not), capable to use the Hercules configure/make build system * perl (the perl executable must be in your $PATH) * doxygen (the command-line doxygen executable must be in your $PATH) - The generation tool was developed in collaboration with Ind (originally in php, the file here included is a tweaked version ported to perl) Signed-off-by: Haru <haru@dotalux.com>