* Input
* pcpes : Pointer to the event 'header' to be copied into the log
* event : Pointer to the event 'body' to be copied into the log
- * event_length: Length of the event array
*
* Output:
* Returns an error code in case of faiure, 0 in case of success
*/
static u32
-tpm_extend_acpi_log(struct pcpes *pcpes,
- const void *event, u32 event_length)
+tpm_extend_acpi_log(struct pcpes *pcpes, const void *event)
{
- u32 size;
-
dprintf(DEBUG_tcg, "TCGBIOS: LASA = %p, next entry = %p\n",
tpm_state.log_area_start_address, tpm_state.log_area_next_entry);
if (tpm_state.log_area_next_entry == NULL)
return TCG_PC_LOGOVERFLOW;
- size = sizeof(*pcpes) + event_length;
+ u32 size = sizeof(*pcpes) + pcpes->eventdatasize;
if ((tpm_state.log_area_next_entry + size - tpm_state.log_area_start_address) >
tpm_state.log_area_minimum_length) {
return TCG_PC_LOGOVERFLOW;
}
- pcpes->eventdatasize = event_length;
-
memcpy(tpm_state.log_area_next_entry, pcpes, sizeof(*pcpes));
memcpy(tpm_state.log_area_next_entry + sizeof(*pcpes),
- event, event_length);
+ event, pcpes->eventdatasize);
tpm_state.log_area_last_entry = tpm_state.log_area_next_entry;
tpm_state.log_area_next_entry += size;
}
static u32
-tpm_log_event(struct pcpes *pcpes, const void *event, u32 event_length)
+tpm_log_event(struct pcpes *pcpes, const void *event)
{
if (pcpes->pcrindex >= 24)
return TCG_INVALID_INPUT_PARA;
if (!has_working_tpm())
return TCG_GENERAL_ERROR;
- u32 rc = tpm_extend_acpi_log(pcpes, event, event_length);
+ u32 rc = tpm_extend_acpi_log(pcpes, event);
if (rc)
tpm_set_failure();
return rc;
}
static u32
-tpm_log_extend_event(struct pcpes *pcpes, const void *event, u32 event_length)
+tpm_log_extend_event(struct pcpes *pcpes, const void *event)
{
- u32 rc = tpm_log_event(pcpes, event, event_length);
+ u32 rc = tpm_log_event(pcpes, event);
if (rc)
return rc;
return tpm_extend(pcpes->digest, pcpes->pcrindex);
struct pcpes pcpes = {
.pcrindex = pcrindex,
.eventtype = event_type,
+ .eventdatasize = event_length,
};
tpm_fill_hash(&pcpes, hashdata, hashdata_length);
- return tpm_log_extend_event(&pcpes, event, event_length);
+ return tpm_log_extend_event(&pcpes, event);
}
pcpes = (struct pcpes *)logdataptr;
- if (pcpes->pcrindex >= 24 ||
- pcpes->pcrindex != pcrindex ||
- logdatalen != sizeof(*pcpes) + pcpes->eventdatasize) {
+ if (pcpes->pcrindex >= 24 || pcpes->pcrindex != pcrindex
+ || logdatalen != sizeof(*pcpes) + pcpes->eventdatasize) {
rc = TCG_INVALID_INPUT_PARA;
goto err_exit;
}
tpm_fill_hash(pcpes, hleei_s->hashdataptr, hleei_s->hashdatalen);
- rc = tpm_log_extend_event(pcpes, pcpes->event, pcpes->eventdatasize);
+ rc = tpm_log_extend_event(pcpes, pcpes->event);
if (rc)
goto err_exit;
pcpes = (struct pcpes *)hlei->logdataptr;
- if (pcpes->pcrindex >= 24 ||
- pcpes->pcrindex != hlei->pcrindex ||
- pcpes->eventtype != hlei->logeventtype ||
- hlei->logdatalen != sizeof(*pcpes) + pcpes->eventdatasize) {
+ if (pcpes->pcrindex >= 24 || pcpes->pcrindex != hlei->pcrindex
+ || pcpes->eventtype != hlei->logeventtype
+ || hlei->logdatalen != sizeof(*pcpes) + pcpes->eventdatasize) {
rc = TCG_INVALID_INPUT_PARA;
goto err_exit;
}
tpm_fill_hash(pcpes, hlei->hashdataptr, hlei->hashdatalen);
- rc = tpm_log_event(pcpes, pcpes->event, pcpes->eventdatasize);
+ rc = tpm_log_event(pcpes, pcpes->event);
if (rc)
goto err_exit;
return TCG_INTERFACE_SHUTDOWN;
tpm_fill_hash(&pcpes, buffer, length);
- u32 rc = tpm_log_extend_event(&pcpes, &info, pcpes.eventdatasize);
+ u32 rc = tpm_log_extend_event(&pcpes, &info);
if (rc == 0)
*edx_ptr = tpm_state.entry_count;