acpi: Add function to simplify If (CondRefOf (..)) sequences
The new function is called acpigen_write_if_cond_refof(), and it must be paired with a following acpigen_write_if_end() call. Change-Id: I6e192a569f550ecb77ad264275d52f219eacaca1 Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/56003 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
committed by
Patrick Georgi
parent
f16a5ec871
commit
c4ca2f6396
@ -1501,6 +1501,21 @@ void acpigen_write_if_lequal_namestr_int(const char *namestr, uint64_t val)
|
||||
acpigen_write_integer(val);
|
||||
}
|
||||
|
||||
/*
|
||||
* Generates ACPI code to check at runtime if an object named `namestring`
|
||||
* exists, and leaves the If scope open to continue execute code when this
|
||||
* is true. NOTE: Requires matching acpigen_write_if_end().
|
||||
*
|
||||
* If (CondRefOf (NAME))
|
||||
*/
|
||||
void acpigen_write_if_cond_ref_of(const char *namestring)
|
||||
{
|
||||
acpigen_write_if();
|
||||
acpigen_emit_ext_op(COND_REFOF_OP);
|
||||
acpigen_emit_namestring(namestring);
|
||||
acpigen_emit_byte(ZERO_OP); /* ignore COND_REFOF_OP destination */
|
||||
}
|
||||
|
||||
/* Closes previously opened if statement and generates ACPI code for else statement. */
|
||||
void acpigen_write_else(void)
|
||||
{
|
||||
|
@ -415,6 +415,8 @@ inline void acpigen_write_if_end(void)
|
||||
{
|
||||
acpigen_pop_len();
|
||||
}
|
||||
/* Emits If (CondRefOf(NAME)) */
|
||||
void acpigen_write_if_cond_ref_of(const char *namestring);
|
||||
void acpigen_write_else(void);
|
||||
void acpigen_write_shiftleft_op_int(uint8_t src_result, uint64_t count);
|
||||
void acpigen_write_to_buffer(uint8_t src, uint8_t dst);
|
||||
|
Reference in New Issue
Block a user