arch/x86/acpigen: Add helpers for Store() and If (Lequal (...))
This change adds the following acpigen helpers: a. acpigen_write_store_op_to_namestr: This generates ACPI code for storing an ACPI OP to name string b. acpigen_write_if_lequal_namestr_int: This generates ACPI code for checking if operand1 and operand2 are equal where operand1 is namestring and operand2 is an integer. Change-Id: I84c158361c0725c2927f06be35391e61f627a453 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/40783 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
f510c75d64
commit
2c213d35b0
|
@ -1186,6 +1186,14 @@ void acpigen_write_store_ops(uint8_t src, uint8_t dst)
|
||||||
acpigen_emit_byte(dst);
|
acpigen_emit_byte(dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Store (src, "namestr") */
|
||||||
|
void acpigen_write_store_op_to_namestr(uint8_t src, const char *dst)
|
||||||
|
{
|
||||||
|
acpigen_write_store();
|
||||||
|
acpigen_emit_byte(src);
|
||||||
|
acpigen_emit_namestring(dst);
|
||||||
|
}
|
||||||
|
|
||||||
/* Or (arg1, arg2, res) */
|
/* Or (arg1, arg2, res) */
|
||||||
void acpigen_write_or(uint8_t arg1, uint8_t arg2, uint8_t res)
|
void acpigen_write_or(uint8_t arg1, uint8_t arg2, uint8_t res)
|
||||||
{
|
{
|
||||||
|
@ -1274,6 +1282,20 @@ void acpigen_write_if_lequal_op_int(uint8_t op, uint64_t val)
|
||||||
acpigen_write_integer(val);
|
acpigen_write_integer(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Generates ACPI code for checking if operand1 and operand2 are equal, where,
|
||||||
|
* operand1 is namestring and operand2 is an integer.
|
||||||
|
*
|
||||||
|
* If (Lequal ("namestr", val))
|
||||||
|
*/
|
||||||
|
void acpigen_write_if_lequal_namestr_int(const char *namestr, uint64_t val)
|
||||||
|
{
|
||||||
|
acpigen_write_if();
|
||||||
|
acpigen_emit_byte(LEQUAL_OP);
|
||||||
|
acpigen_emit_namestring(namestr);
|
||||||
|
acpigen_write_integer(val);
|
||||||
|
}
|
||||||
|
|
||||||
void acpigen_write_else(void)
|
void acpigen_write_else(void)
|
||||||
{
|
{
|
||||||
acpigen_emit_byte(ELSE_OP);
|
acpigen_emit_byte(ELSE_OP);
|
||||||
|
|
|
@ -351,6 +351,7 @@ void acpigen_write_power_res(const char *name, uint8_t level, uint16_t order,
|
||||||
void acpigen_write_sleep(uint64_t sleep_ms);
|
void acpigen_write_sleep(uint64_t sleep_ms);
|
||||||
void acpigen_write_store(void);
|
void acpigen_write_store(void);
|
||||||
void acpigen_write_store_ops(uint8_t src, uint8_t dst);
|
void acpigen_write_store_ops(uint8_t src, uint8_t dst);
|
||||||
|
void acpigen_write_store_op_to_namestr(uint8_t src, const char *dst);
|
||||||
void acpigen_write_or(uint8_t arg1, uint8_t arg2, uint8_t res);
|
void acpigen_write_or(uint8_t arg1, uint8_t arg2, uint8_t res);
|
||||||
void acpigen_write_xor(uint8_t arg1, uint8_t arg2, uint8_t res);
|
void acpigen_write_xor(uint8_t arg1, uint8_t arg2, uint8_t res);
|
||||||
void acpigen_write_and(uint8_t arg1, uint8_t arg2, uint8_t res);
|
void acpigen_write_and(uint8_t arg1, uint8_t arg2, uint8_t res);
|
||||||
|
@ -361,6 +362,7 @@ void acpigen_write_debug_op(uint8_t op);
|
||||||
void acpigen_write_if(void);
|
void acpigen_write_if(void);
|
||||||
void acpigen_write_if_and(uint8_t arg1, uint8_t arg2);
|
void acpigen_write_if_and(uint8_t arg1, uint8_t arg2);
|
||||||
void acpigen_write_if_lequal_op_int(uint8_t op, uint64_t val);
|
void acpigen_write_if_lequal_op_int(uint8_t op, uint64_t val);
|
||||||
|
void acpigen_write_if_lequal_namestr_int(const char *namestr, uint64_t val);
|
||||||
void acpigen_write_else(void);
|
void acpigen_write_else(void);
|
||||||
void acpigen_write_to_buffer(uint8_t src, uint8_t dst);
|
void acpigen_write_to_buffer(uint8_t src, uint8_t dst);
|
||||||
void acpigen_write_to_integer(uint8_t src, uint8_t dst);
|
void acpigen_write_to_integer(uint8_t src, uint8_t dst);
|
||||||
|
|
Loading…
Reference in New Issue