acpi/acpigen: generate Create*Field() from name string directly

The following functions are added:

_create_buffer_field
acpigen_write_create_buffer_byte_field
acpigen_write_create_buffer_word_field
acpigen_write_create_buffer_dword_field
acpigen_write_create_buffer_qword_field

These functions are to generate:
CreateByteField (<namestring> , offset, <field name>)
CreateWordField (<namestring> , offset, <field name>)
CreateDWordField (<namestring> , offset, <field name>)
CreateQWordField (<namestring> , offset, <field name>)

NOTE:
There are set of acpigen_write_create_[byte/word/dword/qword]_field
functions already, but the field can only be created from Arg[n] or
Local[n] variable objects. A Name object must be first assigned to such
variable. The new functions here will allow us to create field directly
from Name object.

BUG=none

Signed-off-by: Cliff Huang <cliff.huang@intel.com>
Change-Id: I725f17329c501c80d42034e0f6a2fccb2cef5915
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85197
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Cliff Huang 2024-11-19 14:53:24 -08:00 committed by Subrata Banik
commit 572da7c524
2 changed files with 33 additions and 0 deletions

View file

@ -536,6 +536,10 @@ void acpigen_write_create_byte_field(uint8_t op, size_t byte_offset, const char
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_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);
void acpigen_write_create_buffer_qword_field(const char *src_buf, size_t byte_offset, const char *name);
void acpigen_write_field_name(const char *name, uint32_t size);
/*
* Generate ACPI AML code for _DSM method.