bhyve: make basl_table_add_* functions public
The code will be more readable if we use struct definitions from ACPI-CA to build ACPI tables. We can fill out the struct and append it to the basl_table by using basl_table_append_bytes. After that, we have to declare which checksums, length and pointers should be patched by basl. That's done by the add_* functions. Reviewed by: jhb, markj Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D37405
This commit is contained in:
parent
bdbb1da75a
commit
7263419f38
@ -322,12 +322,14 @@ basl_init(void)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
basl_table_add_checksum(struct basl_table *const table, const uint32_t off,
|
||||
const uint32_t start, const uint32_t len)
|
||||
{
|
||||
struct basl_table_checksum *checksum;
|
||||
|
||||
assert(table != NULL);
|
||||
|
||||
checksum = calloc(1, sizeof(struct basl_table_checksum));
|
||||
if (checksum == NULL) {
|
||||
warnx("%s: failed to allocate checksum", __func__);
|
||||
@ -343,12 +345,15 @@ basl_table_add_checksum(struct basl_table *const table, const uint32_t off,
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
basl_table_add_length(struct basl_table *const table, const uint32_t off,
|
||||
const uint8_t size)
|
||||
{
|
||||
struct basl_table_length *length;
|
||||
|
||||
assert(table != NULL);
|
||||
assert(size == 4 || size == 8);
|
||||
|
||||
length = calloc(1, sizeof(struct basl_table_length));
|
||||
if (length == NULL) {
|
||||
warnx("%s: failed to allocate length", __func__);
|
||||
@ -363,13 +368,16 @@ basl_table_add_length(struct basl_table *const table, const uint32_t off,
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
basl_table_add_pointer(struct basl_table *const table,
|
||||
const uint8_t src_signature[ACPI_NAMESEG_SIZE], const uint32_t off,
|
||||
const uint8_t size)
|
||||
{
|
||||
struct basl_table_pointer *pointer;
|
||||
|
||||
assert(table != NULL);
|
||||
assert(size == 4 || size == 8);
|
||||
|
||||
pointer = calloc(1, sizeof(struct basl_table_pointer));
|
||||
if (pointer == NULL) {
|
||||
warnx("%s: failed to allocate pointer", __func__);
|
||||
|
@ -42,6 +42,13 @@ struct basl_table;
|
||||
|
||||
int basl_finish(void);
|
||||
int basl_init(void);
|
||||
int basl_table_add_checksum(struct basl_table *const table, const uint32_t off,
|
||||
const uint32_t start, const uint32_t len);
|
||||
int basl_table_add_length(struct basl_table *const table, const uint32_t off,
|
||||
const uint8_t size);
|
||||
int basl_table_add_pointer(struct basl_table *const table,
|
||||
const uint8_t src_signature[ACPI_NAMESEG_SIZE], const uint32_t off,
|
||||
const uint8_t size);
|
||||
int basl_table_append_bytes(struct basl_table *table, const void *bytes,
|
||||
uint32_t len);
|
||||
int basl_table_append_checksum(struct basl_table *table, uint32_t start,
|
||||
|
Loading…
Reference in New Issue
Block a user