diff options
| author | Jung-uk Kim <jkim@FreeBSD.org> | 2017-06-29 18:42:13 +0000 |
|---|---|---|
| committer | Jung-uk Kim <jkim@FreeBSD.org> | 2017-06-29 18:42:13 +0000 |
| commit | 744d47ba98ced2e2a7d3aff2f894136544386e34 (patch) | |
| tree | 917f6a025e019c7b80e50a45fa783593b4e3c19e /source/include | |
| parent | c457a42be4fca72c51fdca569271b62213d01a37 (diff) | |
Import ACPICA 20170629.vendor/acpica/20170629
Notes
svn path=/vendor-sys/acpica/dist/; revision=320476
svn path=/vendor-sys/acpica/20170629/; revision=320477; tag=vendor/acpica/20170629
Diffstat (limited to 'source/include')
| -rw-r--r-- | source/include/acapps.h | 4 | ||||
| -rw-r--r-- | source/include/aclocal.h | 14 | ||||
| -rw-r--r-- | source/include/acobject.h | 10 | ||||
| -rw-r--r-- | source/include/acpixf.h | 15 | ||||
| -rw-r--r-- | source/include/actables.h | 8 | ||||
| -rw-r--r-- | source/include/actbl.h | 15 | ||||
| -rw-r--r-- | source/include/actbl2.h | 16 | ||||
| -rw-r--r-- | source/include/platform/acenv.h | 5 | ||||
| -rw-r--r-- | source/include/platform/aclinux.h | 5 |
9 files changed, 73 insertions, 19 deletions
diff --git a/source/include/acapps.h b/source/include/acapps.h index 6ef98550601c..4ca3e80fb31e 100644 --- a/source/include/acapps.h +++ b/source/include/acapps.h @@ -226,6 +226,10 @@ AcGetAllTablesFromFile ( UINT8 GetOnlyAmlTables, ACPI_NEW_TABLE_DESC **ReturnListHead); +void +AcDeleteTableList ( + ACPI_NEW_TABLE_DESC *ListHead); + BOOLEAN AcIsFileBinary ( FILE *File); diff --git a/source/include/aclocal.h b/source/include/aclocal.h index 1d94a59198fe..399e4c0691ca 100644 --- a/source/include/aclocal.h +++ b/source/include/aclocal.h @@ -328,6 +328,7 @@ typedef struct acpi_namespace_node #define ANOBJ_EVALUATED 0x20 /* Set on first evaluation of node */ #define ANOBJ_ALLOCATED_BUFFER 0x40 /* Method AML buffer is dynamic (InstallMethod) */ +#define IMPLICIT_EXTERNAL 0x02 /* iASL only: This object created implicitly via External */ #define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */ #define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */ #define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */ @@ -1146,7 +1147,7 @@ typedef struct acpi_parse_obj_named /* This version is used by the iASL compiler only */ -#define ACPI_MAX_PARSEOP_NAME 20 +#define ACPI_MAX_PARSEOP_NAME 20 typedef struct acpi_parse_obj_asl { @@ -1190,11 +1191,12 @@ typedef union acpi_parse_object typedef struct asl_comment_state { - UINT8 CommentType; - UINT32 SpacesBefore; - ACPI_PARSE_OBJECT *Latest_Parse_Node; - ACPI_PARSE_OBJECT *ParsingParenBraceNode; - BOOLEAN CaptureComments; + UINT8 CommentType; + UINT32 SpacesBefore; + ACPI_PARSE_OBJECT *LatestParseOp; + ACPI_PARSE_OBJECT *ParsingParenBraceNode; + BOOLEAN CaptureComments; + } ASL_COMMENT_STATE; diff --git a/source/include/acobject.h b/source/include/acobject.h index 25d749637250..f03760977ea0 100644 --- a/source/include/acobject.h +++ b/source/include/acobject.h @@ -241,7 +241,9 @@ typedef struct acpi_object_integer UINT32 Length; -typedef struct acpi_object_string /* Null terminated, ASCII characters only */ +/* Null terminated, ASCII characters only */ + +typedef struct acpi_object_string { ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_BUFFER_INFO (char) /* String in AML stream or allocated string */ @@ -359,8 +361,9 @@ typedef struct acpi_object_method union acpi_operand_object *NotifyList[2]; /* Handlers for system/device notifies */\ union acpi_operand_object *Handler; /* Handler for Address space */ +/* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */ -typedef struct acpi_object_notify_common /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */ +typedef struct acpi_object_notify_common { ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO @@ -431,8 +434,9 @@ typedef struct acpi_object_thermal_zone UINT8 StartFieldBitOffset;/* Bit offset within first field datum (0-63) */\ UINT8 AccessLength; /* For serial regions/fields */ +/* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */ -typedef struct acpi_object_field_common /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */ +typedef struct acpi_object_field_common { ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO diff --git a/source/include/acpixf.h b/source/include/acpixf.h index 934e668369b0..7aad838661fd 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20170531 +#define ACPI_CA_VERSION 0x20170629 #include "acconfig.h" #include "actypes.h" @@ -270,13 +270,14 @@ ACPI_INIT_GLOBAL (UINT8, AcpiGbl_CreateOsiMethod, TRUE); ACPI_INIT_GLOBAL (UINT8, AcpiGbl_UseDefaultRegisterWidths, TRUE); /* - * Whether or not to verify the table checksum before installation. Set - * this to TRUE to verify the table checksum before install it to the table - * manager. Note that enabling this option causes errors to happen in some - * OSPMs during early initialization stages. Default behavior is to do such - * verification. + * Whether or not to validate (map) an entire table to verify + * checksum/duplication in early stage before install. Set this to TRUE to + * allow early table validation before install it to the table manager. + * Note that enabling this option causes errors to happen in some OSPMs + * during early initialization stages. Default behavior is to allow such + * validation. */ -ACPI_INIT_GLOBAL (UINT8, AcpiGbl_VerifyTableChecksum, TRUE); +ACPI_INIT_GLOBAL (UINT8, AcpiGbl_EnableTableValidation, TRUE); /* * Optionally enable output from the AML Debug Object. diff --git a/source/include/actables.h b/source/include/actables.h index 8f5a3948c1dd..05a69ffebb38 100644 --- a/source/include/actables.h +++ b/source/include/actables.h @@ -206,7 +206,8 @@ AcpiTbValidateTempTable ( ACPI_STATUS AcpiTbVerifyTempTable ( ACPI_TABLE_DESC *TableDesc, - char *Signature); + char *Signature, + UINT32 *TableIndex); BOOLEAN AcpiTbIsTableLoaded ( @@ -303,6 +304,11 @@ AcpiTbUnloadTable ( UINT32 TableIndex); void +AcpiTbNotifyTable ( + UINT32 Event, + void *Table); + +void AcpiTbTerminate ( void); diff --git a/source/include/actbl.h b/source/include/actbl.h index ea522cf9be9a..b72c3bfb303c 100644 --- a/source/include/actbl.h +++ b/source/include/actbl.h @@ -517,12 +517,27 @@ typedef struct acpi_table_desc } ACPI_TABLE_DESC; +/* + * Maximum value of the ValidationCount field in ACPI_TABLE_DESC. + * When reached, ValidationCount cannot be changed any more and the table will + * be permanently regarded as validated. + * + * This is to prevent situations in which unbalanced table get/put operations + * may cause premature table unmapping in the OS to happen. + * + * The maximum validation count can be defined to any value, but should be + * greater than the maximum number of OS early stage mapping slots to avoid + * leaking early stage table mappings to the late stage. + */ +#define ACPI_MAX_TABLE_VALIDATIONS ACPI_UINT16_MAX + /* Masks for Flags field above */ #define ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL (0) /* Virtual address, external maintained */ #define ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL (1) /* Physical address, internally mapped */ #define ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL (2) /* Virtual address, internallly allocated */ #define ACPI_TABLE_ORIGIN_MASK (3) +#define ACPI_TABLE_IS_VERIFIED (4) #define ACPI_TABLE_IS_LOADED (8) diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 80495d8fa9c0..1e91ffc51699 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -874,7 +874,7 @@ typedef struct acpi_ibft_target * IORT - IO Remapping Table * * Conforms to "IO Remapping Table System Software on ARM Platforms", - * Document number: ARM DEN 0049B, October 2015 + * Document number: ARM DEN 0049C, May 2017 * ******************************************************************************/ @@ -1013,6 +1013,8 @@ typedef struct acpi_iort_smmu #define ACPI_IORT_SMMU_V2 0x00000001 /* Generic SMMUv2 */ #define ACPI_IORT_SMMU_CORELINK_MMU400 0x00000002 /* ARM Corelink MMU-400 */ #define ACPI_IORT_SMMU_CORELINK_MMU500 0x00000003 /* ARM Corelink MMU-500 */ +#define ACPI_IORT_SMMU_CORELINK_MMU401 0x00000004 /* ARM Corelink MMU-401 */ +#define ACPI_IORT_SMMU_CAVIUM_THUNDERX 0x00000005 /* Cavium ThunderX SMMUv2 */ /* Masks for Flags field above */ @@ -1036,18 +1038,28 @@ typedef struct acpi_iort_smmu_v3 UINT32 Flags; UINT32 Reserved; UINT64 VatosAddress; - UINT32 Model; /* O: generic SMMUv3 */ + UINT32 Model; UINT32 EventGsiv; UINT32 PriGsiv; UINT32 GerrGsiv; UINT32 SyncGsiv; + UINT8 Pxm; + UINT8 Reserved1; + UINT16 Reserved2; } ACPI_IORT_SMMU_V3; +/* Values for Model field above */ + +#define ACPI_IORT_SMMU_V3_GENERIC 0x00000000 /* Generic SMMUv3 */ +#define ACPI_IORT_SMMU_V3_HISILICON_HI161X 0x00000001 /* HiSilicon Hi161x SMMUv3 */ +#define ACPI_IORT_SMMU_V3_CAVIUM_CN99XX 0x00000002 /* Cavium CN99xx SMMUv3 */ + /* Masks for Flags field above */ #define ACPI_IORT_SMMU_V3_COHACC_OVERRIDE (1) #define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (1<<1) +#define ACPI_IORT_SMMU_V3_PXM_VALID (1<<3) /******************************************************************************* diff --git a/source/include/platform/acenv.h b/source/include/platform/acenv.h index 5bec576b13fb..df4048e004bf 100644 --- a/source/include/platform/acenv.h +++ b/source/include/platform/acenv.h @@ -398,6 +398,11 @@ #define ACPI_INLINE #endif +/* Use ordered initialization if compiler doesn't support designated. */ +#ifndef ACPI_STRUCT_INIT +#define ACPI_STRUCT_INIT(field, value) value +#endif + /* * Configurable calling conventions: * diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h index 2c520ee1a5d0..b287e4d9373f 100644 --- a/source/include/platform/aclinux.h +++ b/source/include/platform/aclinux.h @@ -287,6 +287,11 @@ #define ACPI_MSG_BIOS_ERROR KERN_ERR "ACPI BIOS Error (bug): " #define ACPI_MSG_BIOS_WARNING KERN_WARNING "ACPI BIOS Warning (bug): " +/* + * Linux wants to use designated initializers for function pointer structs. + */ +#define ACPI_STRUCT_INIT(field, value) .field = value + #else /* !__KERNEL__ */ #define ACPI_USE_STANDARD_HEADERS |
