diff src/define.h @ 16:c508ee15dfca

switch to automake/autoconf
author carl
date Sun, 19 Feb 2006 18:47:46 -0800
parents
children 99e6b70cdfb3
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/define.h	Sun Feb 19 18:47:46 2006 -0800
@@ -0,0 +1,204 @@
+/***
+ * define.h
+ * Part of the LibPST project
+ * Written by David Smith
+ *			  dave.s@earthcorp.com
+ */
+
+// last one wins
+#define DEBUG_ALL
+#undef DEBUG_ALL
+
+#ifndef DEFINEH_H
+#define DEFINEH_H
+
+#ifdef DEBUG_ALL
+#define DEBUG_MODE_GEN
+#define DEBUGPRINT
+#define DEBUG_MODE_WARN
+#define DEBUG_MODE_READ
+#define DEBUG_MODE_EMAIL
+#define DEBUG_MODE_MAIN
+#define DEBUG_MODE_INDEX
+#define DEBUG_MODE_CODE
+#define DEBUG_MODE_INFO
+#define DEBUG_MODE_HEXDUMP
+#define DEBUG_MODE_FUNC
+//#define DEBUG_MODE_DECRYPT
+#endif
+
+//number of items to save in memory between writes
+#define DEBUG_MAX_ITEMS 0
+
+#define DEBUG_FILE_NO  1
+#define DEBUG_INDEX_NO 2
+#define DEBUG_EMAIL_NO 3
+#define DEBUG_WARN_NO  4
+#define DEBUG_READ_NO  5
+#define DEBUG_INFO_NO  6
+#define DEBUG_MAIN_NO  7
+#define DEBUG_DECRYPT_NO 8
+#define DEBUG_FUNC_NO 10
+#define DEBUG_HEXDUMP_NO 11
+
+//variable number of arguments to this macro. will expand them into
+// ## args, then exit with status of 1
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+#ifdef __LINUX__
+#include <netinet/in.h>
+#include <unistd.h>
+#endif
+
+
+void _pst_debug(char *fmt, ...);
+void _pst_debug_hexdump(FILE* out, unsigned char* buf, size_t size, int col);
+void _pst_debug_hexprint(char *data, int size);
+
+void _debug_init(char *fname);
+void _debug_msg_info (int line, char *file, int type);
+void _debug_msg_text(char* fmt, ...);
+void _debug_hexdump(char *x, int y, int cols);
+void _debug_func(char *function);
+void _debug_func_ret();
+void _debug_close(void);
+void _debug_write();
+
+void * xmalloc(size_t size);
+
+#define MESSAGEPRINT(x,y) {_debug_msg_info(__LINE__,__FILE__,y);\
+						   _debug_msg_text x;}
+
+#define LOGSTOP() {MESSAGESTOP();DEBUGSTOP();}
+
+#define DIE(x) {\
+ MESSAGEPRINT(x, 0);\
+ printf x;\
+ exit(EXIT_FAILURE);\
+}
+#define WARN(x) {\
+ MESSAGEPRINT(x, 0);\
+ printf x;\
+}
+
+#ifdef DEBUGPRINT
+#define DEBUG_PRINT(x) _pst_debug x;
+#else
+#define DEBUG_PRINT(x) {}
+#endif
+
+#ifdef DEBUG_MODE_GEN
+#define DEBUG(x) {DEBUG_PRINT(x);}
+#else
+#define DEBUG(x) {}
+#endif
+
+#ifdef DEBUG_MODE_INDEX
+#define DEBUG_INDEX(x) MESSAGEPRINT(x, DEBUG_INDEX_NO);
+#else
+#define DEBUG_INDEX(x) {}
+#endif
+
+#ifdef DEBUG_MODE_EMAIL
+#define DEBUG_EMAIL(x) MESSAGEPRINT(x, DEBUG_EMAIL_NO);
+#define DEBUG_EMAIL_HEXPRINT(x,y) {_debug_msg_info(__LINE__, __FILE__, 11);\
+								   _debug_hexdump(x, y, 0x10);}
+#else
+#define DEBUG_EMAIL(x) {}
+#define DEBUG_EMAIL_HEXPRINT(x,y) {}
+#endif
+
+#ifdef DEBUG_MODE_WARN
+#define DEBUG_WARN(x) MESSAGEPRINT(x, DEBUG_WARN_NO);
+#else
+#define DEBUG_WARN(x) {}
+#endif
+
+#ifdef DEBUG_MODE_READ
+#define DEBUG_READ(x) MESSAGEPRINT(x, DEBUG_READ_NO);
+#else
+#define DEBUG_READ(x) {}
+#endif
+
+#ifdef DEBUG_MODE_INFO
+#define DEBUG_INFO(x) MESSAGEPRINT(x, DEBUG_INFO_NO);
+#else
+#define DEBUG_INFO(x) {}
+#endif
+
+#ifdef DEBUG_MODE_MAIN
+#define DEBUG_MAIN(x) MESSAGEPRINT(x, DEBUG_MAIN_NO);
+#else
+#define DEBUG_MAIN(x) {}
+#endif
+
+#ifdef DEBUG_MODE_CODE
+#define DEBUG_CODE(x) {x}
+#else
+#define DEBUG_CODE(x) {}
+#endif
+
+#ifdef DEBUG_MODE_DECRYPT
+#define DEBUG_DECRYPT(x) MESSAGEPRINT(x, DEBUG_DECRYPT_NO);
+#else
+#define DEBUG_DECRYPT(x) {}
+#endif
+
+#ifdef DEBUG_MODE_HEXDUMP
+#define DEBUG_HEXDUMP(x, s)\
+  {_debug_msg_info(__LINE__, __FILE__, DEBUG_HEXDUMP_NO);\
+   _debug_hexdump(x, s, 0x10);}
+#define DEBUG_HEXDUMPC(x, s, c)\
+  {_debug_msg_info(__LINE__, __FILE__, DEBUG_HEXDUMP_NO);\
+   _debug_hexdump(x, s, c);}
+#else
+#define DEBUG_HEXDUMP(x, s) {}
+#define DEBUG_HEXDUMPC(x, s, c) {}
+#endif
+
+#define DEBUG_FILE(x) {_debug_msg_info(__LINE__, __FILE__, DEBUG_FILE_NO);\
+					   _debug_msg_text x;}
+
+#ifdef DEBUG_MODE_FUNC
+# define DEBUG_ENT(x) \
+  {MESSAGEPRINT(("Entering function %s\n",x),DEBUG_FUNC_NO);\
+   _debug_func(x);}
+# define DEBUG_RET() {MESSAGEPRINT(("Leaving function\n"),DEBUG_FUNC_NO);\
+					  _debug_func_ret();}
+#else
+# define DEBUG_ENT(x) {}
+# define DEBUG_RET() {}
+#endif
+
+#define DEBUG_INIT(fname) {_debug_init(fname);}
+#define DEBUG_CLOSE() {_debug_close();}
+#define DEBUG_REGISTER_CLOSE() {if(atexit(_debug_close)!=0) fprintf(stderr, "Error registering atexit function\n");}
+
+#define RET_DERROR(res, ret_val, x)\
+	if (res) { DIE(x);}
+
+#define RET_ERROR(res, ret_val)\
+	if (res) {return ret_val;}
+
+#define DEBUG_VERSION 1
+struct _debug_file_rec_m {
+  unsigned short int funcname;
+  unsigned short int filename;
+  unsigned short int text;
+  unsigned short int end;
+  unsigned int line;
+  unsigned int type;
+};
+
+struct _debug_file_rec_l {
+  unsigned int funcname;
+  unsigned int filename;
+  unsigned int text;
+  unsigned int end;
+  unsigned int line;
+  unsigned int type;
+};
+
+#endif //DEFINEH_H