Move elog_internal.h to commonlib/bsd/include

Move elog_internal.h to commonlib/bsd/include/bsd/.
And rename it from elog_internal.h to elog.h.

Since this file will be included from util/ it also converts the "uNN"
types into "uintNN_t" types.

The two defines that are not used by util/ are moved to
drivers/elog/elog.c, the only file that includes them.

Move also the function elog_verify_header() from drivers/elog/, to
commonlib/bsd/elog.c since this function will be called from util/
as well.

The rationale behind moving elog's defines & structs to
commonlib/bsd/include is to make them available to util/ tools and/or
payloads (should it be needed in the future).

The files that are being relicensed to BSD were coded by Duncan Laurie,
and he is Ok with the relicense.

BUG=b:172210863

Signed-off-by: Ricardo Quesada <ricardoq@google.com>
Change-Id: Ia1aefea705ddd417a1d9e978bb18ab6d9a60cad6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56404
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
This commit is contained in:
Ricardo Quesada
2021-07-16 16:42:59 -07:00
committed by Paul Fagerburg
parent 470ca5714f
commit d45e70c124
5 changed files with 78 additions and 58 deletions

25
src/commonlib/bsd/elog.c Normal file
View File

@ -0,0 +1,25 @@
/* SPDX-License-Identifier: BSD-3-Clause */
#include <commonlib/bsd/elog.h>
#include <stddef.h>
/*
* verify and validate if header is a valid coreboot Event Log header.
* return CB_ERR if invalid, otherwise CB_SUCCESS.
*/
enum cb_err elog_verify_header(const struct elog_header *header)
{
if (header == NULL)
return CB_ERR;
if (header->magic != ELOG_SIGNATURE)
return CB_ERR;
if (header->version != ELOG_VERSION)
return CB_ERR;
if (header->header_size != sizeof(*header))
return CB_ERR;
return CB_SUCCESS;
}

View File

@ -0,0 +1,39 @@
/* SPDX-License-Identifier: BSD-3-Clause */
#ifndef _COMMONLIB_BSD_ELOG_H_
#define _COMMONLIB_BSD_ELOG_H_
#include <inttypes.h>
#include <commonlib/bsd/cb_err.h>
/* ELOG header */
struct elog_header {
uint32_t magic;
uint8_t version;
uint8_t header_size;
uint8_t reserved[2];
} __packed;
/* ELOG related constants */
#define ELOG_SIGNATURE 0x474f4c45 /* 'ELOG' */
#define ELOG_VERSION 1
/* SMBIOS event log header */
struct event_header {
uint8_t type;
uint8_t length;
uint8_t year;
uint8_t month;
uint8_t day;
uint8_t hour;
uint8_t minute;
uint8_t second;
} __packed;
/* SMBIOS Type 15 related constants */
#define ELOG_HEADER_TYPE_OEM 0x88
enum cb_err elog_verify_header(const struct elog_header *header);
#endif /* _COMMONLIB_BSD_ELOG_H_ */