On Fri, 23 Jan 2015 10:32:57 +0200 Marcel Apfelbaum <mar...@redhat.com> wrote:
> On 01/22/2015 04:49 PM, Igor Mammedov wrote: > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > > --- > > hw/acpi/acpi-build-utils.c | 32 ++++++++++++++++++++++++++++++++ > > include/hw/acpi/acpi-build-utils.h | 5 +++++ > > 2 files changed, 37 insertions(+) > > > > diff --git a/hw/acpi/acpi-build-utils.c b/hw/acpi/acpi-build-utils.c > > index df5880f..6e10712 100644 > > --- a/hw/acpi/acpi-build-utils.c > > +++ b/hw/acpi/acpi-build-utils.c > > @@ -348,6 +348,38 @@ AcpiAml acpi_name_decl(const char *name, AcpiAml val) > > return var; > > } > Hi Igor, > Very nice series!!! > > > > > +/* 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; > > +} > Maybe we can have a little code reuse and use something like: > > static AcpiAml acpi_arg(int idx) > { > AcpiAml var = aml_allocate_internal(0, NON_BLOCK); > build_append_byte(var.buf, 0x68 + idx); /* ARG<idx> op */ > return var; > } > > and then: > > AcpiAml acpi_arg0(void) > { > return acpi_arg(0); > } > ... > > I did the same with the local vars. > What do you think? sure lets use it, and take Michael's suggest dropping wrappers and just use plain acpi_arg(X) > Thanks, > Marcel > > > + > > +/* 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-build-utils.h > > b/include/hw/acpi/acpi-build-utils.h > > index 9e9ef1a..18d9efa 100644 > > --- a/include/hw/acpi/acpi-build-utils.h > > +++ b/include/hw/acpi/acpi-build-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); > > >