aml-build.c (b55e4b9c0525560577384adfc6d30eb0daa8d7be) aml-build.c (7dd0b070fa09311a0330d0309c8cd9afeb081e79)
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

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

1989 if (priv_num > 0) {
1990 assert(priv_rsrc);
1991 for (i = 0; i < priv_num; i++) {
1992 build_append_int_noprefix(tbl, priv_rsrc[i], 4);
1993 }
1994 }
1995}
1996
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

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

1989 if (priv_num > 0) {
1990 assert(priv_rsrc);
1991 for (i = 0; i < priv_num; i++) {
1992 build_append_int_noprefix(tbl, priv_rsrc[i], 4);
1993 }
1994 }
1995}
1996
1997void build_spcr(GArray *table_data, BIOSLinker *linker,
1998 const AcpiSpcrData *f, const uint8_t rev,
1999 const char *oem_id, const char *oem_table_id)
2000{
2001 AcpiTable table = { .sig = "SPCR", .rev = rev, .oem_id = oem_id,
2002 .oem_table_id = oem_table_id };
2003
2004 acpi_table_begin(&table, table_data);
2005 /* Interface type */
2006 build_append_int_noprefix(table_data, f->interface_type, 1);
2007 /* Reserved */
2008 build_append_int_noprefix(table_data, 0, 3);
2009 /* Base Address */
2010 build_append_gas(table_data, f->base_addr.id, f->base_addr.width,
2011 f->base_addr.offset, f->base_addr.size,
2012 f->base_addr.addr);
2013 /* Interrupt type */
2014 build_append_int_noprefix(table_data, f->interrupt_type, 1);
2015 /* IRQ */
2016 build_append_int_noprefix(table_data, f->pc_interrupt, 1);
2017 /* Global System Interrupt */
2018 build_append_int_noprefix(table_data, f->interrupt, 4);
2019 /* Baud Rate */
2020 build_append_int_noprefix(table_data, f->baud_rate, 1);
2021 /* Parity */
2022 build_append_int_noprefix(table_data, f->parity, 1);
2023 /* Stop Bits */
2024 build_append_int_noprefix(table_data, f->stop_bits, 1);
2025 /* Flow Control */
2026 build_append_int_noprefix(table_data, f->flow_control, 1);
2027 /* Language */
2028 build_append_int_noprefix(table_data, f->language, 1);
2029 /* Terminal Type */
2030 build_append_int_noprefix(table_data, f->terminal_type, 1);
2031 /* PCI Device ID */
2032 build_append_int_noprefix(table_data, f->pci_device_id, 2);
2033 /* PCI Vendor ID */
2034 build_append_int_noprefix(table_data, f->pci_vendor_id, 2);
2035 /* PCI Bus Number */
2036 build_append_int_noprefix(table_data, f->pci_bus, 1);
2037 /* PCI Device Number */
2038 build_append_int_noprefix(table_data, f->pci_device, 1);
2039 /* PCI Function Number */
2040 build_append_int_noprefix(table_data, f->pci_function, 1);
2041 /* PCI Flags */
2042 build_append_int_noprefix(table_data, f->pci_flags, 4);
2043 /* PCI Segment */
2044 build_append_int_noprefix(table_data, f->pci_segment, 1);
2045 /* Reserved */
2046 build_append_int_noprefix(table_data, 0, 4);
2047
2048 acpi_table_end(linker, &table);
2049}
1997/*
1998 * ACPI spec, Revision 6.3
1999 * 5.2.29 Processor Properties Topology Table (PPTT)
2000 */
2001void build_pptt(GArray *table_data, BIOSLinker *linker, MachineState *ms,
2002 const char *oem_id, const char *oem_table_id)
2003{
2004 MachineClass *mc = MACHINE_GET_CLASS(ms);

--- 465 unchanged lines hidden ---
2050/*
2051 * ACPI spec, Revision 6.3
2052 * 5.2.29 Processor Properties Topology Table (PPTT)
2053 */
2054void build_pptt(GArray *table_data, BIOSLinker *linker, MachineState *ms,
2055 const char *oem_id, const char *oem_table_id)
2056{
2057 MachineClass *mc = MACHINE_GET_CLASS(ms);

--- 465 unchanged lines hidden ---