aboutsummaryrefslogtreecommitdiff
path: root/src/libparsec/include/gd_help.h
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
committerFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
commitc068f22329d5cc722622a2183bbb22eef2093df7 (patch)
tree12d56c1aede67988a55e241364606bfbb4dba933 /src/libparsec/include/gd_help.h
downloadopenparsec-main.tar.xz
openparsec-main.zip
initial importHEADmain
Diffstat (limited to 'src/libparsec/include/gd_help.h')
-rw-r--r--src/libparsec/include/gd_help.h77
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_
+
+