aml-build.c (d0dddab40e472ba62b5f43f11cc7dba085dabe71) aml-build.c (910e4069710d854757c8fe8921dcff5b62dcd960)
1/* Support for generating ACPI tables and passing them to Guests
2 *
3 * Copyright (C) 2015 Red Hat Inc
4 *
5 * Author: Michael S. Tsirkin <mst@redhat.com>
6 * Author: Igor Mammedov <imammedo@redhat.com>
7 *
8 * This program is free software; you can redistribute it and/or modify

--- 620 unchanged lines hidden (view full) ---

629 if (dst) {
630 aml_append(var, dst);
631 } else {
632 build_append_byte(var->buf, 0x00 /* NullNameOp */);
633 }
634 return var;
635}
636
1/* Support for generating ACPI tables and passing them to Guests
2 *
3 * Copyright (C) 2015 Red Hat Inc
4 *
5 * Author: Michael S. Tsirkin <mst@redhat.com>
6 * Author: Igor Mammedov <imammedo@redhat.com>
7 *
8 * This program is free software; you can redistribute it and/or modify

--- 620 unchanged lines hidden (view full) ---

629 if (dst) {
630 aml_append(var, dst);
631 } else {
632 build_append_byte(var->buf, 0x00 /* NullNameOp */);
633 }
634 return var;
635}
636
637/* ACPI 2.0a: 17.2.4.4 Type 2 Opcodes Encoding: DefToDecimalString */
638Aml *aml_to_decimalstring(Aml *src, Aml *dst)
639{
640 Aml *var = aml_opcode(0x97 /* ToDecimalStringOp */);
641 aml_append(var, src);
642 if (dst) {
643 aml_append(var, dst);
644 } else {
645 build_append_byte(var->buf, 0x00 /* NullNameOp */);
646 }
647 return var;
648}
649
637/* ACPI 1.0b: 16.2.5.4 Type 2 Opcodes Encoding: DefStore */
638Aml *aml_store(Aml *val, Aml *target)
639{
640 Aml *var = aml_opcode(0x70 /* StoreOp */);
641 aml_append(var, val);
642 aml_append(var, target);
643 return var;
644}

--- 185 unchanged lines hidden (view full) ---

830 aml_append(var, arg1);
831 aml_append(var, arg2);
832 aml_append(var, arg3);
833 aml_append(var, arg4);
834 aml_append(var, arg5);
835 return var;
836}
837
650/* ACPI 1.0b: 16.2.5.4 Type 2 Opcodes Encoding: DefStore */
651Aml *aml_store(Aml *val, Aml *target)
652{
653 Aml *var = aml_opcode(0x70 /* StoreOp */);
654 aml_append(var, val);
655 aml_append(var, target);
656 return var;
657}

--- 185 unchanged lines hidden (view full) ---

843 aml_append(var, arg1);
844 aml_append(var, arg2);
845 aml_append(var, arg3);
846 aml_append(var, arg4);
847 aml_append(var, arg5);
848 return var;
849}
850
851/* helper to call method with 5 arguments */
852Aml *aml_call6(const char *method, Aml *arg1, Aml *arg2, Aml *arg3, Aml *arg4,
853 Aml *arg5, Aml *arg6)
854{
855 Aml *var = aml_alloc();
856 build_append_namestring(var->buf, "%s", method);
857 aml_append(var, arg1);
858 aml_append(var, arg2);
859 aml_append(var, arg3);
860 aml_append(var, arg4);
861 aml_append(var, arg5);
862 aml_append(var, arg6);
863 return var;
864}
865
838/*
839 * ACPI 5.0: 6.4.3.8.1 GPIO Connection Descriptor
840 * Type 1, Large Item Name 0xC
841 */
842
843static Aml *aml_gpio_connection(AmlGpioConnectionType type,
844 AmlConsumerAndProducer con_and_pro,
845 uint8_t flags, AmlPinConfig pin_config,

--- 1429 unchanged lines hidden ---
866/*
867 * ACPI 5.0: 6.4.3.8.1 GPIO Connection Descriptor
868 * Type 1, Large Item Name 0xC
869 */
870
871static Aml *aml_gpio_connection(AmlGpioConnectionType type,
872 AmlConsumerAndProducer con_and_pro,
873 uint8_t flags, AmlPinConfig pin_config,

--- 1429 unchanged lines hidden ---