Date: Mon, 4 Jan 2021 22:26:01 GMT From: Jung-uk Kim <jkim@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org Subject: git: a4634ed7779f - vendor/acpica - Import ACPICA 20201217. Message-ID: <202101042226.104MQ1WU003434@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch vendor/acpica has been updated by jkim: URL: https://cgit.FreeBSD.org/src/commit/?id=a4634ed7779f0905e3bfeb781e58d40a5bdf9bb7 commit a4634ed7779f0905e3bfeb781e58d40a5bdf9bb7 Author: Jung-uk Kim <jkim@FreeBSD.org> AuthorDate: 2021-01-04 22:20:55 +0000 Commit: Jung-uk Kim <jkim@FreeBSD.org> CommitDate: 2021-01-04 22:20:55 +0000 Import ACPICA 20201217. --- changes.txt | 35 ++++++++++++++++++++++++++++++++ source/compiler/aslanalyze.c | 2 +- source/compiler/aslcompiler.l | 4 ++-- source/compiler/aslerror.c | 2 +- source/compiler/aslmethod.c | 1 + source/compiler/aslparseop.c | 4 ++-- source/compiler/aslwalks.c | 2 +- source/compiler/dtfield.c | 2 +- source/compiler/dttemplate.c | 3 ++- source/components/debugger/dbinput.c | 4 ++-- source/components/debugger/dbobject.c | 2 +- source/components/disassembler/dmwalk.c | 8 ++++---- source/components/dispatcher/dscontrol.c | 2 +- source/components/dispatcher/dsdebug.c | 2 +- source/components/dispatcher/dswexec.c | 3 +-- source/components/dispatcher/dswload.c | 2 +- source/components/dispatcher/dswload2.c | 2 +- source/components/executer/exfldio.c | 2 +- source/components/executer/exresop.c | 4 ++-- source/components/executer/exstore.c | 4 ++-- source/components/hardware/hwgpe.c | 2 +- source/components/parser/psloop.c | 3 +-- source/components/parser/psparse.c | 2 +- source/components/utilities/utdelete.c | 2 +- source/components/utilities/utstrsuppt.c | 4 ++-- source/include/acexcep.h | 10 ++++----- source/include/acpixf.h | 2 +- source/include/actypes.h | 5 +++++ source/include/platform/acgcc.h | 15 ++++++++++++++ source/tools/acpibin/abmain.c | 2 +- source/tools/acpihelp/ahaml.c | 4 ++-- source/tools/acpihelp/ahdecode.c | 8 ++++---- 32 files changed, 102 insertions(+), 47 deletions(-) diff --git a/changes.txt b/changes.txt index e7cc572a0cc3..d27547d31b76 100644 --- a/changes.txt +++ b/changes.txt @@ -1,5 +1,40 @@ ---------------------------------------- +17 December 2020. Summary of changes for version 20201217: +This release is available at https://acpica.org/downloads + + +1) ACPICA kernel-resident subsystem: + +Note: The implementation of ACPI 6.4 is underway, and is expected to be +mostly finished next month, when ACPI 6.4 is released. + +From qzed:- fixed-ae-class-macros. Fix exception code class checks. Added +several new macros, such as ACPI_CNTL_EXCEPTION(Status) in order to +enable this. + +AcpiExec/iASL/AcpiHelp: Added a few changes for support of GCC 10.2.0. +These included a few casts, as well as a null pointer check. + +Fix -Wfallthrough: GCC 7.1 gained -Wimplicit-fallthrough to warn on +implicit fallthrough, as well as __attribute__((__fallthrough__)) and +comments to explicitly denote that cases of fallthrough were intentional. +Clang also supports this warning and statement attribute, but not the +comment form. Added a new macro, ACPI_FALLTHROUGH to support this feature +of GCC. With assistance from @nickdesaulniers. + +2) iASL Compiler/Disassembler and ACPICA tools: + +Added improvement to method call analysis by saving the return type and +relaxing certain cases of type checking. + +iASL Table Compiler: Improved info messages. Added a message to the -T +option for when the default template (DSDT) is used. +Also added a note for when multiple SSDTs are created with a DSDT that +the SSDTs are created in the same file as the DSDT. + + +---------------------------------------- 13 November 2020. Summary of changes for version 20201113: diff --git a/source/compiler/aslanalyze.c b/source/compiler/aslanalyze.c index 63feba2b127b..d2c40eababb5 100644 --- a/source/compiler/aslanalyze.c +++ b/source/compiler/aslanalyze.c @@ -470,7 +470,7 @@ AnCheckMethodReturnValue ( "Method returns [%s], %s operator requires [%s]", AslGbl_StringBuffer, OpInfo->Name, AslGbl_StringBuffer2); - AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, AslGbl_MsgBuffer); + AslError (ASL_WARNING, ASL_MSG_INVALID_TYPE, ArgOp, AslGbl_MsgBuffer); } } diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l index 8e448fb76ead..f77dfc0d7242 100644 --- a/source/compiler/aslcompiler.l +++ b/source/compiler/aslcompiler.l @@ -812,9 +812,9 @@ NamePathTail [.]{NameSeg} "__PATH__" { count (0); return (PARSEOP___PATH__); } "__METHOD__" { count (0); return (PARSEOP___METHOD__); } "__EXPECT__"{ErrorCode} { char *s; - int index = 0; + unsigned int index = 0; count (0); - while (!isdigit (AslCompilertext[index])) + while (!isdigit ((int) AslCompilertext[index])) { index++; } diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c index 150983429b3b..51c8c9b2ba89 100644 --- a/source/compiler/aslerror.c +++ b/source/compiler/aslerror.c @@ -1456,7 +1456,7 @@ AslIsExceptionDisabled ( { return (TRUE); } - /* Fall through */ + ACPI_FALLTHROUGH; case ASL_WARNING: case ASL_REMARK: diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c index 32b4b123f02e..9f5b753b2d17 100644 --- a/source/compiler/aslmethod.c +++ b/source/compiler/aslmethod.c @@ -288,6 +288,7 @@ MtMethodAnalysisWalkBegin ( NextType = Next->Asl.Child; MethodInfo->ValidReturnTypes = MtProcessTypeOp (NextType); + Op->Asl.AcpiBtype |= MethodInfo->ValidReturnTypes; /* Get the ParameterType node */ diff --git a/source/compiler/aslparseop.c b/source/compiler/aslparseop.c index 51ef9b8c413c..6b17689d2e68 100644 --- a/source/compiler/aslparseop.c +++ b/source/compiler/aslparseop.c @@ -414,7 +414,7 @@ TrCreateValuedLeafOp ( for (i = 0; i < ACPI_NAMESEG_SIZE; i++) { - if (islower (Op->Asl.Value.Name[i])) + if (islower ((int) Op->Asl.Value.Name[i])) { AcpiUtStrupr (&Op->Asl.Value.Name[i]); AslError (ASL_REMARK, ASL_MSG_LOWER_CASE_NAMESEG, Op, Op->Asl.Value.Name); @@ -431,7 +431,7 @@ TrCreateValuedLeafOp ( StringPtr = Op->Asl.Value.Name; for (i = 0; *StringPtr; i++) { - if (islower (*StringPtr)) + if (islower ((int) *StringPtr)) { AcpiUtStrupr (&Op->Asl.Value.Name[i]); AslError (ASL_REMARK, ASL_MSG_LOWER_CASE_NAMEPATH, Op, Op->Asl.Value.Name); diff --git a/source/compiler/aslwalks.c b/source/compiler/aslwalks.c index 215544f6a527..66e702640da2 100644 --- a/source/compiler/aslwalks.c +++ b/source/compiler/aslwalks.c @@ -516,7 +516,7 @@ AnOperandTypecheckWalkEnd ( break; } - /* Fallthrough */ + ACPI_FALLTHROUGH; case ARGI_STORE_TARGET: diff --git a/source/compiler/dtfield.c b/source/compiler/dtfield.c index f976bba5255a..9a5729cfe95e 100644 --- a/source/compiler/dtfield.c +++ b/source/compiler/dtfield.c @@ -227,7 +227,7 @@ DtCompileOneField ( break; } - /* Fall through. */ + ACPI_FALLTHROUGH; case DT_FIELD_TYPE_BUFFER: diff --git a/source/compiler/dttemplate.c b/source/compiler/dttemplate.c index 5129138fd904..2262c745147d 100644 --- a/source/compiler/dttemplate.c +++ b/source/compiler/dttemplate.c @@ -255,6 +255,7 @@ DtCreateTemplates ( if (AcpiGbl_Optind < 3) { + fprintf (stderr, "Creating default template: [DSDT]\n"); Status = DtCreateOneTemplateFile (ACPI_SIG_DSDT, 0); goto Exit; } @@ -640,7 +641,7 @@ DtCreateOneTemplate ( { fprintf (stderr, "Created ACPI table templates for [%4.4s] " - "and %u [SSDT], written to \"%s\"\n", + "and %u [SSDT] in same file, written to \"%s\"\n", Signature, TableCount, DisasmFilename); } diff --git a/source/components/debugger/dbinput.c b/source/components/debugger/dbinput.c index 0cc97310fa10..15e9f351b122 100644 --- a/source/components/debugger/dbinput.c +++ b/source/components/debugger/dbinput.c @@ -642,7 +642,7 @@ AcpiDbGetNextToken ( /* Remove any spaces at the beginning, ignore blank lines */ - while (*String && isspace (*String)) + while (*String && isspace ((int) *String)) { String++; } @@ -754,7 +754,7 @@ AcpiDbGetNextToken ( /* Find end of token */ - while (*String && !isspace (*String)) + while (*String && !isspace ((int) *String)) { String++; } diff --git a/source/components/debugger/dbobject.c b/source/components/debugger/dbobject.c index 01d885d03df7..a5af85d6beab 100644 --- a/source/components/debugger/dbobject.c +++ b/source/components/debugger/dbobject.c @@ -201,7 +201,7 @@ AcpiDbDumpMethodInfo ( /* Ignore control codes, they are not errors */ - if ((Status & AE_CODE_MASK) == AE_CODE_CONTROL) + if (ACPI_CNTL_EXCEPTION (Status)) { return; } diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c index 76ef0aacb66c..2359468f142d 100644 --- a/source/components/disassembler/dmwalk.c +++ b/source/components/disassembler/dmwalk.c @@ -400,7 +400,7 @@ AcpiDmBlockType ( return (BLOCK_NONE); } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case AML_PACKAGE_OP: case AML_VARIABLE_PACKAGE_OP: @@ -422,7 +422,7 @@ AcpiDmBlockType ( return (BLOCK_NONE); } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; default: @@ -688,7 +688,7 @@ AcpiDmDescendingOp ( return (AE_OK); } - /* Fallthrough */ + ACPI_FALLTHROUGH; default: @@ -772,7 +772,7 @@ AcpiDmDescendingOp ( AcpiDmNamestring (NextOp->Common.Value.Name); AcpiOsPrintf (", "); - /*lint -fallthrough */ + ACPI_FALLTHROUGH; default: diff --git a/source/components/dispatcher/dscontrol.c b/source/components/dispatcher/dscontrol.c index 4ff0b3823a5d..32632c547e22 100644 --- a/source/components/dispatcher/dscontrol.c +++ b/source/components/dispatcher/dscontrol.c @@ -210,7 +210,7 @@ AcpiDsExecBeginControlOp ( } } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case AML_IF_OP: /* diff --git a/source/components/dispatcher/dsdebug.c b/source/components/dispatcher/dsdebug.c index a7ece9b013bd..68d3fc2fb07a 100644 --- a/source/components/dispatcher/dsdebug.c +++ b/source/components/dispatcher/dsdebug.c @@ -254,7 +254,7 @@ AcpiDsDumpMethodStack ( /* Ignore control codes, they are not errors */ - if ((Status & AE_CODE_MASK) == AE_CODE_CONTROL) + if (ACPI_CNTL_EXCEPTION (Status)) { return_VOID; } diff --git a/source/components/dispatcher/dswexec.c b/source/components/dispatcher/dswexec.c index 3fa7b95bba8e..87e692a0634a 100644 --- a/source/components/dispatcher/dswexec.c +++ b/source/components/dispatcher/dswexec.c @@ -772,8 +772,7 @@ AcpiDsExecEndOp ( break; } - /* Fall through */ - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case AML_INT_EVAL_SUBTREE_OP: diff --git a/source/components/dispatcher/dswload.c b/source/components/dispatcher/dswload.c index 62a4fdca417b..be2f4a2beef8 100644 --- a/source/components/dispatcher/dswload.c +++ b/source/components/dispatcher/dswload.c @@ -375,7 +375,7 @@ AcpiDsLoad1BeginOp ( break; } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; default: diff --git a/source/components/dispatcher/dswload2.c b/source/components/dispatcher/dswload2.c index 0ab715cd139b..76148af324bd 100644 --- a/source/components/dispatcher/dswload2.c +++ b/source/components/dispatcher/dswload2.c @@ -366,7 +366,7 @@ AcpiDsLoad2BeginOp ( break; } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; default: diff --git a/source/components/executer/exfldio.c b/source/components/executer/exfldio.c index 69f9e1a6c5fe..64be8bf1da9f 100644 --- a/source/components/executer/exfldio.c +++ b/source/components/executer/exfldio.c @@ -616,7 +616,7 @@ AcpiExFieldDatumIo ( * RegionField case and write the datum to the Operation Region */ - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case ACPI_TYPE_LOCAL_REGION_FIELD: /* diff --git a/source/components/executer/exresop.c b/source/components/executer/exresop.c index bf43d5d28d7c..b0d1c7409e60 100644 --- a/source/components/executer/exresop.c +++ b/source/components/executer/exresop.c @@ -358,7 +358,7 @@ AcpiExResolveOperands ( TargetOp = AML_DEBUG_OP; - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case ACPI_REFCLASS_ARG: case ACPI_REFCLASS_LOCAL: @@ -422,7 +422,7 @@ AcpiExResolveOperands ( * Else not a string - fall through to the normal Reference * case below */ - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case ARGI_REFERENCE: /* References: */ case ARGI_INTEGER_REF: diff --git a/source/components/executer/exstore.c b/source/components/executer/exstore.c index b374d6faa1e0..d6b9143bbbf9 100644 --- a/source/components/executer/exstore.c +++ b/source/components/executer/exstore.c @@ -248,7 +248,7 @@ AcpiExStore ( return_ACPI_STATUS (AE_OK); } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; default: @@ -585,7 +585,7 @@ AcpiExStoreObjectToNode ( break; } - /* Fallthrough */ + ACPI_FALLTHROUGH; case ACPI_TYPE_DEVICE: case ACPI_TYPE_EVENT: diff --git a/source/components/hardware/hwgpe.c b/source/components/hardware/hwgpe.c index e8ad8926ce11..c7b7a4696794 100644 --- a/source/components/hardware/hwgpe.c +++ b/source/components/hardware/hwgpe.c @@ -254,7 +254,7 @@ AcpiHwLowSetGpe ( return (AE_BAD_PARAMETER); } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case ACPI_GPE_ENABLE: diff --git a/source/components/parser/psloop.c b/source/components/parser/psloop.c index 5b4b0d989bdd..6ccac91012b5 100644 --- a/source/components/parser/psloop.c +++ b/source/components/parser/psloop.c @@ -410,8 +410,7 @@ AcpiPsParseLoop ( */ WalkState->Op = NULL; Status = AcpiDsGetPredicateValue (WalkState, ACPI_TO_POINTER (TRUE)); - if (ACPI_FAILURE (Status) && - ((Status & AE_CODE_MASK) != AE_CODE_CONTROL)) + if (ACPI_FAILURE (Status) && !ACPI_CNTL_EXCEPTION (Status)) { if (Status == AE_AML_NO_RETURN_VALUE) { diff --git a/source/components/parser/psparse.c b/source/components/parser/psparse.c index d935ebc2df76..16458bc3e9d5 100644 --- a/source/components/parser/psparse.c +++ b/source/components/parser/psparse.c @@ -533,7 +533,7 @@ AcpiPsNextParseState ( default: Status = CallbackStatus; - if ((CallbackStatus & AE_CODE_MASK) == AE_CODE_CONTROL) + if (ACPI_CNTL_EXCEPTION (CallbackStatus)) { Status = AE_OK; } diff --git a/source/components/utilities/utdelete.c b/source/components/utilities/utdelete.c index aafd52959379..0e0500a0d20b 100644 --- a/source/components/utilities/utdelete.c +++ b/source/components/utilities/utdelete.c @@ -266,7 +266,7 @@ AcpiUtDeleteInternalObj ( (void) AcpiEvDeleteGpeBlock (Object->Device.GpeBlock); } - /*lint -fallthrough */ + ACPI_FALLTHROUGH; case ACPI_TYPE_PROCESSOR: case ACPI_TYPE_THERMAL: diff --git a/source/components/utilities/utstrsuppt.c b/source/components/utilities/utstrsuppt.c index 153b56e85cff..c0ea049558d8 100644 --- a/source/components/utilities/utstrsuppt.c +++ b/source/components/utilities/utstrsuppt.c @@ -274,7 +274,7 @@ AcpiUtConvertDecimalString ( * 1) Runtime: terminate with no error, per the ACPI spec * 2) Compiler: return an error */ - if (!isdigit (*String)) + if (!isdigit ((int) *String)) { #ifdef ACPI_ASL_COMPILER Status = AE_BAD_DECIMAL_CONSTANT; @@ -336,7 +336,7 @@ AcpiUtConvertHexString ( * 1) Runtime: terminate with no error, per the ACPI spec * 2) Compiler: return an error */ - if (!isxdigit (*String)) + if (!isxdigit ((int) *String)) { #ifdef ACPI_ASL_COMPILER Status = AE_BAD_HEX_CONSTANT; diff --git a/source/include/acexcep.h b/source/include/acexcep.h index 11c81398e915..8cbd75498642 100644 --- a/source/include/acexcep.h +++ b/source/include/acexcep.h @@ -204,11 +204,11 @@ typedef struct acpi_exception_info #define AE_OK (ACPI_STATUS) 0x0000 -#define ACPI_ENV_EXCEPTION(Status) (Status & AE_CODE_ENVIRONMENTAL) -#define ACPI_AML_EXCEPTION(Status) (Status & AE_CODE_AML) -#define ACPI_PROG_EXCEPTION(Status) (Status & AE_CODE_PROGRAMMER) -#define ACPI_TABLE_EXCEPTION(Status) (Status & AE_CODE_ACPI_TABLES) -#define ACPI_CNTL_EXCEPTION(Status) (Status & AE_CODE_CONTROL) +#define ACPI_ENV_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_ENVIRONMENTAL) +#define ACPI_AML_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_AML) +#define ACPI_PROG_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_PROGRAMMER) +#define ACPI_TABLE_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_ACPI_TABLES) +#define ACPI_CNTL_EXCEPTION(Status) (((Status) & AE_CODE_MASK) == AE_CODE_CONTROL) /* diff --git a/source/include/acpixf.h b/source/include/acpixf.h index df45d2dc3ca8..866f22f9d78c 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 0x20201113 +#define ACPI_CA_VERSION 0x20201217 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/actypes.h b/source/include/actypes.h index 48388c2198ed..1f0a189ab4ba 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -1537,5 +1537,10 @@ typedef enum #define ACPI_OPT_END -1 +/* Definitions for explicit fallthrough */ + +#ifndef ACPI_FALLTHROUGH +#define ACPI_FALLTHROUGH do {} while(0) +#endif #endif /* __ACTYPES_H__ */ diff --git a/source/include/platform/acgcc.h b/source/include/platform/acgcc.h index 797fde3386cd..8743332561aa 100644 --- a/source/include/platform/acgcc.h +++ b/source/include/platform/acgcc.h @@ -196,4 +196,19 @@ typedef __builtin_va_list va_list; #define ACPI_USE_NATIVE_MATH64 +/* GCC did not support __has_attribute until 5.1. */ + +#ifndef __has_attribute +#define __has_attribute(x) 0 +#endif + +/* + * Explictly mark intentional explicit fallthrough to silence + * -Wimplicit-fallthrough in GCC 7.1+. + */ + +#if __has_attribute(__fallthrough__) +#define ACPI_FALLTHROUGH __attribute__((__fallthrough__)) +#endif + #endif /* __ACGCC_H__ */ diff --git a/source/tools/acpibin/abmain.c b/source/tools/acpibin/abmain.c index 613408143bb9..c928a1af9333 100644 --- a/source/tools/acpibin/abmain.c +++ b/source/tools/acpibin/abmain.c @@ -234,7 +234,7 @@ main ( AbGbl_DisplayAllMiscompares = TRUE; - /* Fallthrough */ + ACPI_FALLTHROUGH; case 'c': /* Compare Files */ diff --git a/source/tools/acpihelp/ahaml.c b/source/tools/acpihelp/ahaml.c index 83cd86bd900a..f3d1428c2498 100644 --- a/source/tools/acpihelp/ahaml.c +++ b/source/tools/acpihelp/ahaml.c @@ -215,9 +215,9 @@ AhFindAmlOpcode ( } } - if (!Found) + if (!Found && Name) { - printf ("%s, no matching AML operators\n", Name); + printf ("%s, no matching AML opcodes\n", Name); } } diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c index b72db2a800d2..d573ac06ed68 100644 --- a/source/tools/acpihelp/ahdecode.c +++ b/source/tools/acpihelp/ahdecode.c @@ -377,7 +377,7 @@ AhDoSpecialNames ( case 'E': if (Name[2] == 'J') { - if (isdigit (Name[3]) || (Name[3] == 'X')) + if (isdigit ((int) Name[3]) || (Name[3] == 'X')) { /* _EJx */ @@ -386,12 +386,12 @@ AhDoSpecialNames ( } } - /* Fallthrough */ + ACPI_FALLTHROUGH; case 'L': case 'Q': case 'W': - if ((isxdigit (Name[2]) && isxdigit (Name[3])) + if ((isxdigit ((int) Name[2]) && isxdigit ((int) Name[3])) || ((Name[2] == 'X') && (Name[3] == 'X'))) { @@ -405,7 +405,7 @@ AhDoSpecialNames ( case 'A': if ((Name[2] == 'C') || (Name[2] == 'L')) { - if (isdigit (Name[3]) || (Name[3] == 'X')) + if (isdigit ((int) Name[3]) || (Name[3] == 'X')) { /* _ACx or _ALx */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202101042226.104MQ1WU003434>