#ifndef _DEV_COREBOOT_COREBOOT_IOCTL_H_
#define _DEV_COREBOOT_COREBOOT_IOCTL_H_
#include <sys/types.h>
#include <sys/ioccom.h>
#define CBMEM_ID_ACPI 0x41435049
#define CBMEM_ID_ACPI_GNVS 0x474e5653
#define CBMEM_ID_AFTER_CAR 0xc4787a93
#define CBMEM_ID_CBTABLE 0x43425442
#define CBMEM_ID_CBTABLE_FWD 0x43425443
#define CBMEM_ID_CBFS_RO_MCACHE 0x524d5346
#define CBMEM_ID_CBFS_RW_MCACHE 0x574d5346
#define CBMEM_ID_CONSOLE 0x434f4e53
#define CBMEM_ID_ELOG 0x454c4f47
#define CBMEM_ID_FMAP 0x464d4150
#define CBMEM_ID_FREESPACE 0x46524545
#define CBMEM_ID_FSP_RESERVED_MEMORY 0x46535052
#define CBMEM_ID_FSP_RUNTIME 0x52505346
#define CBMEM_ID_FSPM_VERSION 0x56505346
#define CBMEM_ID_IGD_OPREGION 0x4f444749
#define CBMEM_ID_IMD_ROOT 0xff4017ff
#define CBMEM_ID_IMD_SMALL 0x53a11439
#define CBMEM_ID_MEMINFO 0x494d454d
#define CBMEM_ID_MPTABLE 0x534d5054
#define CBMEM_ID_MRCDATA 0x4d524344
#define CBMEM_ID_PIRQ 0x49525154
#define CBMEM_ID_POWER_STATE 0x50535454
#define CBMEM_ID_RAM_OOPS 0x05430095
#define CBMEM_ID_RAMSTAGE 0x9a357a9e
#define CBMEM_ID_REFCODE 0x04efc0de
#define CBMEM_ID_RESUME 0x5245534d
#define CBMEM_ID_ROMSTAGE_INFO 0x47545352
#define CBMEM_ID_ROMSTAGE_RAM_STACK 0x90357ac4
#define CBMEM_ID_ROOT 0xff4007ff
#define CBMEM_ID_SMBIOS 0x534d4254
#define CBMEM_ID_SMM_COMBUFFER 0x53534d32
#define CBMEM_ID_SMM_SAVE_SPACE 0x07e9acee
#define CBMEM_ID_TIMESTAMP 0x54494d45
#define CBMEM_ID_TPM_CB_LOG 0x54435041
#define CBMEM_ID_VBOOT_WORKBUF 0x78007343
#define CBMEM_ID_VPD 0x56504420
#define CB_MAX_CBMEM_ENTRIES 64
struct cbmem_entry_info {
uint32_t id;
uint64_t address;
uint32_t size;
char name[16];
};
struct cbmem_list {
uint32_t count;
struct cbmem_entry_info entries[CB_MAX_CBMEM_ENTRIES];
};
struct cbmem_read_req {
uint32_t id;
uint64_t offset;
uint32_t size;
void *buffer;
};
#define CBMEM_IOC_LIST _IOR('C', 1, struct cbmem_list)
#define CBMEM_IOC_READ _IOWR('C', 2, struct cbmem_read_req)
struct cb_timestamp_entry {
uint32_t entry_id;
int64_t entry_stamp;
} __packed;
struct cb_timestamp_table {
uint64_t base_time;
uint16_t max_entries;
uint16_t tick_freq_mhz;
uint32_t num_entries;
struct cb_timestamp_entry entries[];
} __packed;
struct tpm_cb_log_entry {
uint32_t pcr;
uint32_t event_type;
uint8_t digest[20];
uint32_t data_len;
} __packed;
struct tpm_cb_log_table {
uint16_t max_entries;
uint16_t num_entries;
uint32_t entry_size;
} __packed;
#endif