acpi/acpigen.h: Add more intuitive AML package closing functions

Until now every AML package had to be closed using acpigen_pop_len().
This commit introduces set of package closing functions corresponding
with their opening function names. For example acpigen_write_if()
opens if-statement package, acpigen_write_if_end() closes it.
Now acpigen_write_else() closes previously opened acpigen_write_if(),
so acpigen_pop_len() is not required before it.

Signed-off-by: Jakub Czapiga <jacz@semihalf.com>
Change-Id: Icfdc3804cd93bde049cd11dec98758b3a639eafd
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50910
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lance Zhao
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Jakub Czapiga
2021-02-19 11:44:22 +01:00
committed by Patrick Georgi
parent 7f4c30c1d5
commit 61fcb7e965
13 changed files with 30 additions and 16 deletions

View File

@@ -1422,8 +1422,10 @@ void acpigen_write_if_lequal_namestr_int(const char *namestr, uint64_t val)
acpigen_write_integer(val);
}
/* Closes previously opened if statement and generates ACPI code for else statement. */
void acpigen_write_else(void)
{
acpigen_pop_len();
acpigen_emit_byte(ELSE_OP);
acpigen_write_len_f();
}

View File

@@ -22,7 +22,6 @@ static void i2c_hid_func0_cb(void *arg)
acpigen_write_if_lequal_op_int(LOCAL2_OP, 0x1);
/* Return (Buffer (One) { 0x3 }) */
acpigen_write_return_singleton_buffer(0x3);
acpigen_pop_len(); /* Pop : If */
/* Else */
acpigen_write_else();
/* Return (Buffer (One) { 0x0 }) */