Attention is currently required from: Cliff Huang, Lance Zhao, Tim Wawrzynczak.
Felix Held has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/86630?usp=email )
Change subject: src/acpigen: implement acpigen_write_create[_buffer]_bit_field ......................................................................
src/acpigen: implement acpigen_write_create[_buffer]_bit_field
Implement functions to write the AML bytes corresponding to CreateBitField for both OP buffers and named buffers.
Change-Id: Ia5c06c2e8564b64de386871b2faf79c433e5a1da Signed-off-by: Felix Held felix-coreboot@felixheld.de --- M src/acpi/acpigen.c M src/include/acpi/acpigen.h 2 files changed, 12 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/30/86630/1
diff --git a/src/acpi/acpigen.c b/src/acpi/acpigen.c index eaf95e0..e577d8f 100644 --- a/src/acpi/acpigen.c +++ b/src/acpi/acpigen.c @@ -2461,6 +2461,11 @@ acpigen_emit_namestring(name); }
+void acpigen_write_create_bit_field(uint8_t op, size_t bit_offset, const char *name) +{ + _create_field(CREATE_BIT_OP, op, bit_offset, name); +} + void acpigen_write_create_byte_field(uint8_t op, size_t byte_offset, const char *name) { _create_field(CREATE_BYTE_OP, op, byte_offset, name); @@ -2490,6 +2495,11 @@ acpigen_emit_namestring(field); }
+void acpigen_write_create_buffer_bit_field(const char *src_buf, size_t bit_offset, const char *field) +{ + _create_buffer_field(CREATE_BIT_OP, src_buf, bit_offset, field); +} + void acpigen_write_create_buffer_byte_field(const char *src_buf, size_t byte_offset, const char *field) { _create_buffer_field(CREATE_BYTE_OP, src_buf, byte_offset, field); diff --git a/src/include/acpi/acpigen.h b/src/include/acpi/acpigen.h index 56b4f78..a83be04 100644 --- a/src/include/acpi/acpigen.h +++ b/src/include/acpi/acpigen.h @@ -535,10 +535,12 @@ void acpigen_write_ADR(uint64_t adr); struct soundwire_address; void acpigen_write_ADR_soundwire_device(const struct soundwire_address *address); +void acpigen_write_create_bit_field(uint8_t op, size_t bit_offset, const char *name); void acpigen_write_create_byte_field(uint8_t op, size_t byte_offset, const char *name); void acpigen_write_create_word_field(uint8_t op, size_t byte_offset, const char *name); void acpigen_write_create_dword_field(uint8_t op, size_t byte_offset, const char *name); void acpigen_write_create_qword_field(uint8_t op, size_t byte_offset, const char *name); +void acpigen_write_create_buffer_bit_field(const char *src_buf, size_t bit_offset, const char *field); void acpigen_write_create_buffer_byte_field(const char *src_buf, size_t byte_offset, const char *name); void acpigen_write_create_buffer_word_field(const char *src_buf, size_t byte_offset, const char *name); void acpigen_write_create_buffer_dword_field(const char *src_buf, size_t byte_offset, const char *name);