diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2026-08-24 11:16:07 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2026-08-24 11:16:07 +0200 |
| commit | c068f22329d5cc722622a2183bbb22eef2093df7 (patch) | |
| tree | 12d56c1aede67988a55e241364606bfbb4dba933 /src/libparsec/include/gd_help.h | |
| download | openparsec-main.tar.xz openparsec-main.zip | |
Diffstat (limited to 'src/libparsec/include/gd_help.h')
| -rw-r--r-- | src/libparsec/include/gd_help.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/libparsec/include/gd_help.h b/src/libparsec/include/gd_help.h new file mode 100644 index 0000000..4185804 --- /dev/null +++ b/src/libparsec/include/gd_help.h @@ -0,0 +1,77 @@ +/* + * PARSEC HEADER: gd_help.h + */ + +#ifndef _GD_HELP_H_ +#define _GD_HELP_H_ + + +// ---------------------------------------------------------------------------- +// MISCELLANEOUS HELPER MACROS - +// ---------------------------------------------------------------------------- + + +// module registration macros (automatic module-init/deinit on startup) ------- +// +//#define REGISTER_MODULE(f) struct reg_##f {reg_##f();} inst_##f; reg_##f::reg_##f() +//#define REGISTER_MODULE_INIT(f) struct reg_##f {reg_##f(); ~reg_##f();} inst_##f; reg_##f::reg_##f() +//#define REGISTER_MODULE_KILL(f) reg_##f::~reg_##f() + +// for C++ min/max functions -------------------------------------------------- +// +#include <algorithm> + +// new module handling -------------------------------------------------------- +// +#include "e_modulemanager.h" + +// automatically calculate the number of entries of an arbitrary array -------- +// +#define CALC_NUM_ARRAY_ENTRIES(a) (sizeof(a)/sizeof((a)[0])) + + +// conversion macros for 5, 4, 3, and 2 digit values -------------------------- +// +#define DIG5_TO_STR( s, a ) (s)[0]=(((a)/10000)%10)+'0';\ + (s)[1]=(((a)/1000)%10)+'0';\ + (s)[2]=(((a)/100)%10)+'0';\ + (s)[3]=(((a)/10)%10)+'0';\ + (s)[4]=((a)%10)+'0';\ + (s)[5]='\0'; + +#define DIG4_TO_STR( s, a ) (s)[0]=(((a)/1000)%10)+'0';\ + (s)[1]=(((a)/100)%10)+'0';\ + (s)[2]=(((a)/10)%10)+'0';\ + (s)[3]=((a)%10)+'0';\ + (s)[4]='\0'; + +#define DIG3_TO_STR( s, a ) (s)[0]=(((a)/100)%10)+'0';\ + (s)[1]=(((a)/10)%10)+'0';\ + (s)[2]=((a)%10)+'0';\ + (s)[3]='\0'; + +#define DIG2_TO_STR( s, a ) (s)[0]=(((a)/10)%10)+'0';\ + (s)[1]=((a)%10)+'0';\ + (s)[2]='\0'; + + +// define wrapper around pseudo random number generator ----------------------- +// +#define RAND() rand() + + +// min/max functions ---------------------------------------------------------- +// +using std::min; +using std::max; + + +// safe string duplication ---------------------------------------------------- +// +#define SAFE_STR_DUPLICATE( dst, src, len ) char dst[ len + 1 ]; \ + strncpy( dst, src, len ); \ + dst[ len ] = 0; + +#endif // _GD_HELP_H_ + + |
