summaryrefslogtreecommitdiff
path: root/src/include/tcsem.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/tcsem.h')
-rw-r--r--src/include/tcsem.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/include/tcsem.h b/src/include/tcsem.h
new file mode 100644
index 0000000..4b1f215
--- /dev/null
+++ b/src/include/tcsem.h
@@ -0,0 +1,62 @@
+
+/*
+ * Licensed Materials - Property of IBM
+ *
+ * trousers - An open source TCG Software Stack
+ *
+ * (C) Copyright International Business Machines Corp. 2004-2006
+ *
+ */
+
+#ifndef _TCSEM_H_
+#define _TCSEM_H_
+
+struct ext_log_source {
+ int (*open)(void *, FILE **);
+ TSS_RESULT (*get_entries_by_pcr)(FILE *, UINT32, UINT32, UINT32 *, TSS_PCR_EVENT **);
+ TSS_RESULT (*get_entry)(FILE *, UINT32, UINT32 *, TSS_PCR_EVENT **);
+ int (*close)(FILE *);
+};
+
+struct event_wrapper {
+ TSS_PCR_EVENT event;
+ struct event_wrapper *next;
+};
+
+struct event_log {
+ MUTEX_DECLARE(lock);
+ struct ext_log_source *firmware_source;
+ struct ext_log_source *kernel_source;
+ struct event_wrapper **lists;
+};
+
+/* include the compiled-in log sources and struct references here */
+#include "imaem.h"
+#include "biosem.h"
+
+#ifdef EVLOG_SOURCE_IMA
+#define EVLOG_IMA_SOURCE &ima_source
+#else
+#define EVLOG_IMA_SOURCE NULL
+#endif
+
+#ifdef EVLOG_SOURCE_BIOS
+#define EVLOG_BIOS_SOURCE &bios_source
+#else
+#define EVLOG_BIOS_SOURCE NULL
+#endif
+
+
+TSS_RESULT event_log_init();
+TSS_RESULT event_log_final();
+TSS_RESULT copy_pcr_event(TSS_PCR_EVENT *, TSS_PCR_EVENT *);
+TSS_RESULT event_log_add(TSS_PCR_EVENT *, UINT32 *);
+TSS_PCR_EVENT *get_pcr_event(UINT32, UINT32);
+UINT32 get_num_events(UINT32);
+TSS_PCR_EVENT *concat_pcr_events(TSS_PCR_EVENT **, UINT32, TSS_PCR_EVENT *, UINT32);
+UINT32 get_pcr_event_size(TSS_PCR_EVENT *);
+void free_external_events(UINT32, TSS_PCR_EVENT *);
+
+extern struct event_log *tcs_event_log;
+
+#endif