11556Srgrimes
21556Srgrimes/*
31556Srgrimes * Licensed Materials - Property of IBM
41556Srgrimes *
51556Srgrimes * trousers - An open source TCG Software Stack
61556Srgrimes *
71556Srgrimes * (C) Copyright International Business Machines Corp. 2004-2006
81556Srgrimes *
91556Srgrimes */
101556Srgrimes
111556Srgrimes
121556Srgrimes#ifndef _TSPLOG_H_
131556Srgrimes#define _TSPLOG_H_
141556Srgrimes
151556Srgrimes#include <stdio.h>
161556Srgrimes#include <syslog.h>
171556Srgrimes#include <stdlib.h>
181556Srgrimes
191556Srgrimes/* Debug logging */
201556Srgrimes#ifdef TSS_DEBUG
211556Srgrimes/* log to stdout */
221556Srgrimes#define LogMessage(dest, priority, layer, fmt, ...) \
231556Srgrimes	do { \
241556Srgrimes		if (getenv("TSS_DEBUG_OFF") == NULL) { \
251556Srgrimes			fprintf(dest, "%s %s %s:%d " fmt "\n", priority, layer, __FILE__, __LINE__, ## __VA_ARGS__); \
261556Srgrimes		} \
271556Srgrimes	} while (0)
281556Srgrimes
291556Srgrimes#define LogDebug(fmt, ...)	LogMessage(stdout, "LOG_DEBUG", APPID, fmt, ##__VA_ARGS__)
301556Srgrimes#define LogDebugFn(fmt, ...)	LogMessage(stdout, "LOG_DEBUG", APPID, "%s: " fmt, __FUNCTION__, ##__VA_ARGS__)
3136152Scharnier#define LogDebugData(sz,blb)	LogBlobData(APPID, sz, blb)
3236152Scharnier
3336152Scharnier/* Error logging */
341556Srgrimes#define LogError(fmt, ...)	LogMessage(stderr, "LOG_ERR", APPID, "ERROR: " fmt, ##__VA_ARGS__)
3599110Sobrien/* Warn logging */
3699110Sobrien#define LogWarn(fmt, ...)	LogMessage(stdout, "LOG_WARNING", APPID, "WARNING: " fmt, ##__VA_ARGS__)
371556Srgrimes/* Info Logging */
381556Srgrimes#define LogInfo(fmt, ...)	LogMessage(stdout, "LOG_INFO", APPID, fmt, ##__VA_ARGS__)
391556Srgrimes/* Return Value logging */
401556Srgrimesextern TSS_RESULT LogTSPERR(TSS_RESULT, char *, int);
411556Srgrimes#else
421556Srgrimes#define LogDebug(fmt, ...)
431556Srgrimes#define LogDebugFn(fmt, ...)
441556Srgrimes#define LogDebugData(sz,blb)
451556Srgrimes#define LogError(fmt, ...)
461556Srgrimes#define LogWarn(fmt, ...)
47181269Scperciva#define LogInfo(fmt, ...)
4876810Skris#endif
491556Srgrimes
5090111Simpvoid LogBlobData(char *appid, unsigned long sizeOfBlob, unsigned char *blob);
511556Srgrimes
521556Srgrimes#endif
531556Srgrimes