Signed-off-by: Igor Mammedov <imamm...@redhat.com> --- hw/acpi/acpi_gen_utils.c | 32 ++++++++++++++++++++++++++++++++ include/hw/acpi/acpi_gen_utils.h | 5 +++++ 2 files changed, 37 insertions(+)
diff --git a/hw/acpi/acpi_gen_utils.c b/hw/acpi/acpi_gen_utils.c index 57614ea..48c0599 100644 --- a/hw/acpi/acpi_gen_utils.c +++ b/hw/acpi/acpi_gen_utils.c @@ -323,6 +323,38 @@ AcpiAml acpi_name_decl(const char *name, AcpiAml val) return var; } +/* ACPI 5.0: 20.2.6.1 Arg Objects Encoding: Arg0Op */ +AcpiAml acpi_arg0(void) +{ + AcpiAml var = aml_allocate_internal(0, NON_BLOCK); + build_append_byte(var.buf, 0x68); /* ARG0 op */ + return var; +} + +/* ACPI 5.0: 20.2.6.1 Arg Objects Encoding: Arg1Op */ +AcpiAml acpi_arg1(void) +{ + AcpiAml var = aml_allocate_internal(0, NON_BLOCK); + build_append_byte(var.buf, 0x69); /* ARG1 op */ + return var; +} + +/* ACPI 5.0: 20.2.6.1 Arg Objects Encoding: Arg2Op */ +AcpiAml acpi_arg2(void) +{ + AcpiAml var = aml_allocate_internal(0, NON_BLOCK); + build_append_byte(var.buf, 0x6A); /* ARG2 op */ + return var; +} + +/* ACPI 5.0: 20.2.6.1 Arg Objects Encoding: Arg3Op */ +AcpiAml acpi_arg3(void) +{ + AcpiAml var = aml_allocate_internal(0, NON_BLOCK); + build_append_byte(var.buf, 0x6B); /* ARG3 op */ + return var; +} + /* ACPI 5.0: 20.2.5.3 Type 1 Opcodes Encoding: DefIfElse */ AcpiAml acpi_if(AcpiAml predicate) { diff --git a/include/hw/acpi/acpi_gen_utils.h b/include/hw/acpi/acpi_gen_utils.h index 9e9ef1a..18d9efa 100644 --- a/include/hw/acpi/acpi_gen_utils.h +++ b/include/hw/acpi/acpi_gen_utils.h @@ -26,6 +26,11 @@ AcpiAml acpi_return(AcpiAml val); AcpiAml acpi_int(const uint64_t val); AcpiAml GCC_FMT_ATTR(1, 2) acpi_name(const char *name_format, ...); AcpiAml acpi_name_decl(const char *name, AcpiAml val); +AcpiAml acpi_arg0(void); +AcpiAml acpi_arg1(void); +AcpiAml acpi_arg2(void); +AcpiAml acpi_arg3(void); + /* Block ASL object primitives */ AcpiAml acpi_if(AcpiAml predicate); AcpiAml acpi_method(const char *name, int arg_count); -- 1.8.3.1