aml-build.h (98c710f2d5cdf37f29a267352eb1f3c28cbf369d) aml-build.h (cb51ac2ffe3649eb8f5c65dccc2012f0ba2c6b12)
1#ifndef HW_ACPI_GEN_UTILS_H
2#define HW_ACPI_GEN_UTILS_H
1#ifndef HW_ACPI_AML_BUILD_H
2#define HW_ACPI_AML_BUILD_H
3
4#include "hw/acpi/acpi-defs.h"
5#include "hw/acpi/bios-linker-loader.h"
6
7/* Reserve RAM space for tables: add another order of magnitude. */
8#define ACPI_BUILD_TABLE_MAX_SIZE 0x200000
9
10#define ACPI_BUILD_APPNAME6 "BOCHS "

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

205 MEM_AFFINITY_NON_VOLATILE = (1 << 2),
206} MemoryAffinityFlags;
207
208typedef
209struct AcpiBuildTables {
210 GArray *table_data;
211 GArray *rsdp;
212 GArray *tcpalog;
3
4#include "hw/acpi/acpi-defs.h"
5#include "hw/acpi/bios-linker-loader.h"
6
7/* Reserve RAM space for tables: add another order of magnitude. */
8#define ACPI_BUILD_TABLE_MAX_SIZE 0x200000
9
10#define ACPI_BUILD_APPNAME6 "BOCHS "

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

205 MEM_AFFINITY_NON_VOLATILE = (1 << 2),
206} MemoryAffinityFlags;
207
208typedef
209struct AcpiBuildTables {
210 GArray *table_data;
211 GArray *rsdp;
212 GArray *tcpalog;
213 GArray *vmgenid;
213 BIOSLinker *linker;
214} AcpiBuildTables;
215
216/**
217 * init_aml_allocator:
218 *
219 * Called for initializing API allocator which allow to use
220 * AML API.

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

272Aml *aml_decrement(Aml *arg);
273Aml *aml_index(Aml *arg1, Aml *idx);
274Aml *aml_notify(Aml *arg1, Aml *arg2);
275Aml *aml_call0(const char *method);
276Aml *aml_call1(const char *method, Aml *arg1);
277Aml *aml_call2(const char *method, Aml *arg1, Aml *arg2);
278Aml *aml_call3(const char *method, Aml *arg1, Aml *arg2, Aml *arg3);
279Aml *aml_call4(const char *method, Aml *arg1, Aml *arg2, Aml *arg3, Aml *arg4);
214 BIOSLinker *linker;
215} AcpiBuildTables;
216
217/**
218 * init_aml_allocator:
219 *
220 * Called for initializing API allocator which allow to use
221 * AML API.

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

273Aml *aml_decrement(Aml *arg);
274Aml *aml_index(Aml *arg1, Aml *idx);
275Aml *aml_notify(Aml *arg1, Aml *arg2);
276Aml *aml_call0(const char *method);
277Aml *aml_call1(const char *method, Aml *arg1);
278Aml *aml_call2(const char *method, Aml *arg1, Aml *arg2);
279Aml *aml_call3(const char *method, Aml *arg1, Aml *arg2, Aml *arg3);
280Aml *aml_call4(const char *method, Aml *arg1, Aml *arg2, Aml *arg3, Aml *arg4);
281Aml *aml_call5(const char *method, Aml *arg1, Aml *arg2, Aml *arg3, Aml *arg4,
282 Aml *arg5);
280Aml *aml_gpio_int(AmlConsumerAndProducer con_and_pro,
281 AmlLevelAndEdge edge_level,
282 AmlActiveHighAndLow active_level, AmlShared shared,
283 AmlPinConfig pin_config, uint16_t debounce_timeout,
284 const uint32_t pin_list[], uint32_t pin_count,
285 const char *resource_source_name,
286 const uint8_t *vendor_data, uint16_t vendor_data_len);
287Aml *aml_memory32_fixed(uint32_t addr, uint32_t size,

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

358Aml *aml_create_qword_field(Aml *srcbuf, Aml *index, const char *name);
359Aml *aml_varpackage(uint32_t num_elements);
360Aml *aml_touuid(const char *uuid);
361Aml *aml_unicode(const char *str);
362Aml *aml_refof(Aml *arg);
363Aml *aml_derefof(Aml *arg);
364Aml *aml_sizeof(Aml *arg);
365Aml *aml_concatenate(Aml *source1, Aml *source2, Aml *target);
283Aml *aml_gpio_int(AmlConsumerAndProducer con_and_pro,
284 AmlLevelAndEdge edge_level,
285 AmlActiveHighAndLow active_level, AmlShared shared,
286 AmlPinConfig pin_config, uint16_t debounce_timeout,
287 const uint32_t pin_list[], uint32_t pin_count,
288 const char *resource_source_name,
289 const uint8_t *vendor_data, uint16_t vendor_data_len);
290Aml *aml_memory32_fixed(uint32_t addr, uint32_t size,

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

361Aml *aml_create_qword_field(Aml *srcbuf, Aml *index, const char *name);
362Aml *aml_varpackage(uint32_t num_elements);
363Aml *aml_touuid(const char *uuid);
364Aml *aml_unicode(const char *str);
365Aml *aml_refof(Aml *arg);
366Aml *aml_derefof(Aml *arg);
367Aml *aml_sizeof(Aml *arg);
368Aml *aml_concatenate(Aml *source1, Aml *source2, Aml *target);
369Aml *aml_object_type(Aml *object);
366
370
371void build_append_int_noprefix(GArray *table, uint64_t value, int size);
367void
368build_header(BIOSLinker *linker, GArray *table_data,
369 AcpiTableHeader *h, const char *sig, int len, uint8_t rev,
370 const char *oem_id, const char *oem_table_id);
371void *acpi_data_push(GArray *table_data, unsigned size);
372unsigned acpi_data_len(GArray *table);
373void acpi_add_table(GArray *table_offsets, GArray *table_data);
374void acpi_build_tables_init(AcpiBuildTables *tables);
375void acpi_build_tables_cleanup(AcpiBuildTables *tables, bool mfre);
376void
377build_rsdt(GArray *table_data, BIOSLinker *linker, GArray *table_offsets,
378 const char *oem_id, const char *oem_table_id);
372void
373build_header(BIOSLinker *linker, GArray *table_data,
374 AcpiTableHeader *h, const char *sig, int len, uint8_t rev,
375 const char *oem_id, const char *oem_table_id);
376void *acpi_data_push(GArray *table_data, unsigned size);
377unsigned acpi_data_len(GArray *table);
378void acpi_add_table(GArray *table_offsets, GArray *table_data);
379void acpi_build_tables_init(AcpiBuildTables *tables);
380void acpi_build_tables_cleanup(AcpiBuildTables *tables, bool mfre);
381void
382build_rsdt(GArray *table_data, BIOSLinker *linker, GArray *table_offsets,
383 const char *oem_id, const char *oem_table_id);
384void
385build_xsdt(GArray *table_data, BIOSLinker *linker, GArray *table_offsets,
386 const char *oem_id, const char *oem_table_id);
379
380int
381build_append_named_dword(GArray *array, const char *name_format, ...)
382GCC_FMT_ATTR(2, 3);
383
384void build_srat_memory(AcpiSratMemoryAffinity *numamem, uint64_t base,
385 uint64_t len, int node, MemoryAffinityFlags flags);
386
387#endif
387
388int
389build_append_named_dword(GArray *array, const char *name_format, ...)
390GCC_FMT_ATTR(2, 3);
391
392void build_srat_memory(AcpiSratMemoryAffinity *numamem, uint64_t base,
393 uint64_t len, int node, MemoryAffinityFlags flags);
394
395#endif