1723e4046Schristos 
2723e4046Schristos /*
3723e4046Schristos  * Licensed Materials - Property of IBM
4723e4046Schristos  *
5723e4046Schristos  * trousers - An open source TCG Software Stack
6723e4046Schristos  *
7723e4046Schristos  * (C) Copyright International Business Machines Corp. 2004, 2005
8723e4046Schristos  *
9723e4046Schristos  */
10723e4046Schristos 
11723e4046Schristos 
12723e4046Schristos #include <stdio.h>
13723e4046Schristos #include <string.h>
14723e4046Schristos 
15723e4046Schristos #include "trousers/tss.h"
16*0861b331Schristos #include "spi_utils.h"
17723e4046Schristos #include "tsplog.h"
18723e4046Schristos 
19723e4046Schristos #ifdef TSS_DEBUG
20723e4046Schristos 
21723e4046Schristos /*
22723e4046Schristos  * LogBlobData()
23723e4046Schristos  *
24723e4046Schristos  * Log a blob's data to the debugging stream
25723e4046Schristos  *
26723e4046Schristos  * szDescriptor - The APPID tag found in the caller's environment at build time
27723e4046Schristos  * sizeOfBlob - The size of the data to log
28723e4046Schristos  * blob - the data to log
29723e4046Schristos  *
30723e4046Schristos  */
31723e4046Schristos 
32723e4046Schristos 
33723e4046Schristos void
LogBlobData(char * szDescriptor,unsigned long sizeOfBlob,unsigned char * blob)34723e4046Schristos LogBlobData(char *szDescriptor, unsigned long sizeOfBlob, unsigned char *blob)
35723e4046Schristos {
36723e4046Schristos 	char temp[64];
37723e4046Schristos 	int i;
38723e4046Schristos 
39723e4046Schristos 	if (getenv("TSS_DEBUG_OFF"))
40723e4046Schristos 		return;
41723e4046Schristos 
42*0861b331Schristos 	__tspi_memset(temp, 0, sizeof(temp));
43723e4046Schristos 
44723e4046Schristos 	for (i = 0; (unsigned long)i < sizeOfBlob; i++) {
45723e4046Schristos 		if ((i > 0) && ((i % 16) == 0))	{
46723e4046Schristos 			fprintf(stdout, "%s\n", temp);
47*0861b331Schristos 			__tspi_memset(temp, 0, sizeof(temp));
48723e4046Schristos 		}
49723e4046Schristos 		snprintf(&temp[(i%16)*3], 4, "%.2X ", blob[i]);
50723e4046Schristos 	}
51723e4046Schristos 	fprintf(stdout, "%s\n", temp);
52723e4046Schristos }
53723e4046Schristos 
54723e4046Schristos TSS_RESULT
LogTSPERR(TSS_RESULT result,char * file,int line)55723e4046Schristos LogTSPERR(TSS_RESULT result, char *file, int line)
56723e4046Schristos {
57723e4046Schristos 	if (getenv("TSS_DEBUG_OFF") == NULL)
58723e4046Schristos 		fprintf(stderr, "%s %s %s:%d: 0x%x\n", "LOG_RETERR", APPID, file, line, result);
59723e4046Schristos 
60723e4046Schristos 	return (result | TSS_LAYER_TSP);
61723e4046Schristos }
62723e4046Schristos 
63723e4046Schristos #endif
64