tcsem.h revision 1.1.1.1
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#ifndef _TCSEM_H_ 12#define _TCSEM_H_ 13 14struct ext_log_source { 15 int (*open)(void *, FILE **); 16 TSS_RESULT (*get_entries_by_pcr)(FILE *, UINT32, UINT32, UINT32 *, TSS_PCR_EVENT **); 17 TSS_RESULT (*get_entry)(FILE *, UINT32, UINT32 *, TSS_PCR_EVENT **); 18 int (*close)(FILE *); 19}; 20 21struct event_wrapper { 22 TSS_PCR_EVENT event; 23 struct event_wrapper *next; 24}; 25 26struct event_log { 27 MUTEX_DECLARE(lock); 28 struct ext_log_source *firmware_source; 29 struct ext_log_source *kernel_source; 30 struct event_wrapper **lists; 31}; 32 33/* include the compiled-in log sources and struct references here */ 34#include "imaem.h" 35#include "biosem.h" 36 37#ifdef EVLOG_SOURCE_IMA 38#define EVLOG_IMA_SOURCE &ima_source 39#else 40#define EVLOG_IMA_SOURCE NULL 41#endif 42 43#ifdef EVLOG_SOURCE_BIOS 44#define EVLOG_BIOS_SOURCE &bios_source 45#else 46#define EVLOG_BIOS_SOURCE NULL 47#endif 48 49 50TSS_RESULT event_log_init(); 51TSS_RESULT event_log_final(); 52TSS_RESULT copy_pcr_event(TSS_PCR_EVENT *, TSS_PCR_EVENT *); 53TSS_RESULT event_log_add(TSS_PCR_EVENT *, UINT32 *); 54TSS_PCR_EVENT *get_pcr_event(UINT32, UINT32); 55UINT32 get_num_events(UINT32); 56TSS_PCR_EVENT *concat_pcr_events(TSS_PCR_EVENT **, UINT32, TSS_PCR_EVENT *, UINT32); 57UINT32 get_pcr_event_size(TSS_PCR_EVENT *); 58void free_external_events(UINT32, TSS_PCR_EVENT *); 59 60extern struct event_log *tcs_event_log; 61 62#endif 63