1 /* LOGGER.H (c) Copyright Jan Jaeger, 2003-2009 */ 2 /* System logger functions */ 3 4 #ifndef __LOGGER_H__ 5 #define __LOGGER_H__ 6 7 #ifndef _LOGMSG_C_ 8 #ifndef _HUTIL_DLL_ 9 #define LOG_DLL_IMPORT DLL_IMPORT 10 #else /* _HUTIL_DLL_ */ 11 #define LOG_DLL_IMPORT extern 12 #endif /* _HUTIL_DLL_ */ 13 #else /* _LOGGER_C_ */ 14 #define LOG_DLL_IMPORT DLL_EXPORT 15 #endif /* _LOGGER_C_ */ 16 17 #ifndef _LOGGER_C_ 18 #ifndef _HUTIL_DLL_ 19 #define LOGR_DLL_IMPORT DLL_IMPORT 20 #else 21 #define LOGR_DLL_IMPORT extern 22 #endif 23 #else 24 #define LOGR_DLL_IMPORT DLL_EXPORT 25 #endif 26 27 #define LOG_READ 0 28 #define LOG_WRITE 1 29 30 extern int logger_syslogfd[2]; 31 32 #define LOG_NOBLOCK 0 33 #define LOG_BLOCK 1 34 35 #if defined(SSIZE_MAX) && SSIZE_MAX < 1048576 36 #define LOG_DEFSIZE SSIZE_MAX 37 #else 38 #define LOG_DEFSIZE 65536 39 #endif 40 41 /* Logging functions in logmsg.c */ 42 LOG_DLL_IMPORT void logmsg(char *,...); 43 LOG_DLL_IMPORT void logmsgp(char *,...); 44 LOG_DLL_IMPORT void logmsgb(char *,...); 45 LOG_DLL_IMPORT void logdevtr(DEVBLK *dev, char *, ...); 46 47 LOGR_DLL_IMPORT void logger_init(void); 48 49 LOGR_DLL_IMPORT int log_read(char **buffer, int *msgindex, int block); 50 LOGR_DLL_IMPORT int log_line(int linenumber); 51 LOGR_DLL_IMPORT void log_sethrdcpy(char *filename); 52 LOGR_DLL_IMPORT void log_wakeup(void *arg); 53 54 /* Log routing section */ 55 typedef void LOG_WRITER(void *,char *); 56 typedef void LOG_CLOSER(void *); 57 58 LOG_DLL_IMPORT int log_open(LOG_WRITER*,LOG_CLOSER*,void *); 59 LOG_DLL_IMPORT void log_close(void); 60 LOG_DLL_IMPORT void log_write(int,char *); 61 /* End of log routing section */ 62 63 /* Log routing utility */ 64 LOG_DLL_IMPORT char *log_capture(void *(*)(void *),void *); 65 66 #endif 67