1 2 /* 3 * Licensed Materials - Property of IBM 4 * 5 * trousers - An open source TCG Software Stack 6 * 7 * (C) Copyright International Business Machines Corp. 2004-2006 8 * 9 */ 10 11 12 #ifndef _TSPLOG_H_ 13 #define _TSPLOG_H_ 14 15 #include <stdio.h> 16 #include <syslog.h> 17 #include <stdlib.h> 18 19 /* Debug logging */ 20 #ifdef TSS_DEBUG 21 /* log to stdout */ 22 #define LogMessage(dest, priority, layer, fmt, ...) \ 23 do { \ 24 if (getenv("TSS_DEBUG_OFF") == NULL) { \ 25 fprintf(dest, "%s %s %s:%d " fmt "\n", priority, layer, __FILE__, __LINE__, ## __VA_ARGS__); \ 26 } \ 27 } while (0) 28 29 #define LogDebug(fmt, ...) LogMessage(stdout, "LOG_DEBUG", APPID, fmt, ##__VA_ARGS__) 30 #define LogDebugFn(fmt, ...) LogMessage(stdout, "LOG_DEBUG", APPID, "%s: " fmt, __FUNCTION__, ##__VA_ARGS__) 31 #define LogDebugData(sz,blb) LogBlobData(APPID, sz, blb) 32 33 /* Error logging */ 34 #define LogError(fmt, ...) LogMessage(stderr, "LOG_ERR", APPID, "ERROR: " fmt, ##__VA_ARGS__) 35 /* Warn logging */ 36 #define LogWarn(fmt, ...) LogMessage(stdout, "LOG_WARNING", APPID, "WARNING: " fmt, ##__VA_ARGS__) 37 /* Info Logging */ 38 #define LogInfo(fmt, ...) LogMessage(stdout, "LOG_INFO", APPID, fmt, ##__VA_ARGS__) 39 /* Return Value logging */ 40 extern TSS_RESULT LogTSPERR(TSS_RESULT, char *, int); 41 #else 42 #define LogDebug(fmt, ...) 43 #define LogDebugFn(fmt, ...) 44 #define LogDebugData(sz,blb) 45 #define LogError(fmt, ...) 46 #define LogWarn(fmt, ...) 47 #define LogInfo(fmt, ...) 48 #endif 49 50 void LogBlobData(char *appid, unsigned long sizeOfBlob, unsigned char *blob); 51 52 #endif 53