acpigen: Add helper functions for strings
Add helper function to emit a string into the SSDT AML bytestream with a NULL terminator. Also add a helper function to emit the string OpCode followed by the string itself. acpigen_emit_string(string) /* Raw string output */ acpigen_write_string(string) /* OpCode followed by raw string */ Change-Id: I4a3a8728066e0c41d7ad6429fad983e6ae6962fe Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://review.coreboot.org/14793 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins)
This commit is contained in:
parent
9ccae7558d
commit
56b69aa9c7
|
@ -141,6 +141,12 @@ void acpigen_write_name_qword(const char *name, uint64_t val)
|
|||
acpigen_write_qword(val);
|
||||
}
|
||||
|
||||
void acpigen_write_name_string(const char *name, const char *string)
|
||||
{
|
||||
acpigen_write_name(name);
|
||||
acpigen_write_string(string);
|
||||
}
|
||||
|
||||
void acpigen_emit_stream(const char *data, int size)
|
||||
{
|
||||
int i;
|
||||
|
@ -149,6 +155,18 @@ void acpigen_emit_stream(const char *data, int size)
|
|||
}
|
||||
}
|
||||
|
||||
void acpigen_emit_string(const char *string)
|
||||
{
|
||||
acpigen_emit_stream(string, string ? 0 : strlen(string));
|
||||
acpigen_emit_byte('\0'); /* NUL */
|
||||
}
|
||||
|
||||
void acpigen_write_string(const char *string)
|
||||
{
|
||||
acpigen_emit_byte(0x0d);
|
||||
acpigen_emit_string(string);
|
||||
}
|
||||
|
||||
/*
|
||||
* The naming conventions for ACPI namespace names are a bit tricky as
|
||||
* each element has to be 4 chars wide (»All names are a fixed 32 bits.«)
|
||||
|
|
|
@ -32,12 +32,15 @@ void acpigen_emit_byte(unsigned char data);
|
|||
void acpigen_emit_word(unsigned int data);
|
||||
void acpigen_emit_dword(unsigned int data);
|
||||
void acpigen_emit_stream(const char *data, int size);
|
||||
void acpigen_emit_string(const char *string);
|
||||
void acpigen_emit_namestring(const char *namepath);
|
||||
void acpigen_emit_eisaid(const char *eisaid);
|
||||
void acpigen_write_word(unsigned int data);
|
||||
void acpigen_write_dword(unsigned int data);
|
||||
void acpigen_write_qword(uint64_t data);
|
||||
void acpigen_write_string(const char *string);
|
||||
void acpigen_write_name(const char *name);
|
||||
void acpigen_write_name_string(const char *name, const char *string);
|
||||
void acpigen_write_name_dword(const char *name, uint32_t val);
|
||||
void acpigen_write_name_qword(const char *name, uint64_t val);
|
||||
void acpigen_write_name_byte(const char *name, uint8_t val);
|
||||
|
|
Loading…
Reference in New Issue