## @file
# CI configuration for MdePkg
#
# Copyright (c) Microsoft Corporation
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
# Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
{
    ## options defined .pytool/Plugin/LicenseCheck
    "LicenseCheck": {
        "IgnoreFiles": []
    },
    "EccCheck": {
        ## Exception sample looks like below:
        ## "ExceptionList": [
        ##     "<ErrorID>", "<KeyWord>"
        ## ]
        "ExceptionList": [
            "9005", "@VDD",
            "8005", "gST",
            "8005", "gBS",
            "8005", "gDS",
            "8005", "gDS",
            "8002", "va_list",
            "8005", "EFI_BLUETOOTH_LE_SCAN_CALLBACK_INFORMATION.RSSI",
            "8005", "void",
            "8005", "va_list.__ap",
            "8005", "__stack_chk_guard",
            "8001", "MSG_IPv6_DP",
            "8001", "MSG_IPv4_DP",
            "8001", "DEFAULT_ToS",
            "8001", "EFI_SERIAL_IO_PROTOCOL_REVISION1p1",
            "8001", "EFI_ABS_AltActive",
            "8001", "EFI_ABSP_SupportsAltActive",
            "8001", "_ReadWriteBarrier",
            "8001", "__va_copy",
            "8003", "__va_copy",
            "7007", "_EFI_LEGACY_SPI_CONTROLLER_PROTOCOL",
            "7007", "_EFI_LEGACY_SPI_FLASH_PROTOCOL",
            "7007", "_EFI_SPI_NOR_FLASH_PROTOCOL",
            "7007", "_EFI_SPI_HC_PROTOCOL",
            "8002", "aligned (",
            "4002", "_ReturnAddress"
        ],
        ## Both file path and directory path are accepted.
        "IgnoreFiles": [
            "Include/IndustryStandard/Acpi64.h",
            "Include/IndustryStandard/Tpm12.h",
            "Include/IndustryStandard/Tpm20.h",
            "Include/IndustryStandard/IoRemappingTable.h",
            "Include/IndustryStandard/UefiTcgPlatform.h",
            "Include/Library/PcdLib.h",
            "Include/Library/SafeIntLib.h",
            "Test/UnitTest/Library/BaseSafeIntLib/TestBaseSafeIntLib.c"
        ]
    },
    ## options defined ci/Plugin/CompilerPlugin
    "CompilerPlugin": {
        "DscPath": "MdePkg.dsc"
    },

    ## options defined ci/Plugin/HostUnitTestCompilerPlugin
    "HostUnitTestCompilerPlugin": {
        "DscPath": "Test/MdePkgHostTest.dsc"
    },

    ## options defined ci/Plugin/CharEncodingCheck
    "CharEncodingCheck": {
        "IgnoreFiles": []
    },

    ## options defined ci/Plugin/DependencyCheck
    "DependencyCheck": {
        "AcceptableDependencies": [
            "MdePkg/MdePkg.dec"
        ],
        # For host based unit tests
        "AcceptableDependencies-HOST_APPLICATION":[
            "UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec"
        ],
        # For UEFI shell based apps
        "AcceptableDependencies-UEFI_APPLICATION":[],
        "IgnoreInf": []
    },

    ## options defined ci/Plugin/DscCompleteCheck
    "DscCompleteCheck": {
        "IgnoreInf": [""],
        "DscPath": "MdePkg.dsc"
    },

    ## options defined ci/Plugin/HostUnitTestDscCompleteCheck
    "HostUnitTestDscCompleteCheck": {
        "IgnoreInf": [""],
        "DscPath": "Test/MdePkgHostTest.dsc"
    },

    ## options defined ci/Plugin/GuidCheck
    "GuidCheck": {
        "IgnoreGuidName": [
            "gEfiFirmwareVolumeTopFileGuid" # sec modules must be set to this guid
        ],
        "IgnoreGuidValue": ["00000000-0000-0000-0000-000000000000"],
        "IgnoreFoldersAndFiles": [],
        "IgnoreDuplicates": [
            "gEfiFirmwareVolumeBlockProtocolGuid=gEfiFirmwareVolumeBlock2ProtocolGuid",
            "gEfiMmAccessProtocolGuid=gEfiSmmAccess2ProtocolGuid",
            "gEfiSmmCommunicationProtocolGuid=gEfiMmCommunicationProtocolGuid",
            "gEfiMmPciRootBridgeIoProtocolGuid=gEfiSmmPciRootBridgeIoProtocolGuid",
            "gEfiTrEEProtocolGuid=gEfiTcg2ProtocolGuid",
            "gEfiSmmPowerButtonDispatch2ProtocolGuid=gEfiMmPowerButtonDispatchProtocolGuid",
            "gEfiSmmBase2ProtocolGuid=gEfiMmBaseProtocolGuid",
            "gEfiSmmUsbDispatch2ProtocolGuid=gEfiMmUsbDispatchProtocolGuid",
            "gEfiSmmCpuProtocolGuid=gEfiMmCpuProtocolGuid",
            "gEfiAcpiTableGuid=gEfiAcpi20TableGuid",
            "gEfiSmmControl2ProtocolGuid=gEfiMmControlProtocolGuid",
            "gEfiSmmStandbyButtonDispatch2ProtocolGuid=gEfiMmStandbyButtonDispatchProtocolGuid",
            "gEfiSmmStatusCodeProtocolGuid=gEfiMmStatusCodeProtocolGuid",
            "gEfiDxeSmmReadyToLockProtocolGuid=gEfiDxeMmReadyToLockProtocolGuid",
            "gEfiSmmIoTrapDispatch2ProtocolGuid=gEfiMmIoTrapDispatchProtocolGuid",
            "gEfiSmmReadyToLockProtocolGuid=gEfiMmReadyToLockProtocolGuid",
            "gEfiSmmSxDispatch2ProtocolGuid=gEfiMmSxDispatchProtocolGuid",
            "gEfiPeiCapsulePpiGuid=gPeiCapsulePpiGuid",
            "gEfiSmmCpuIo2ProtocolGuid=gEfiMmCpuIoProtocolGuid",
            "gEfiSmmRscHandlerProtocolGuid=gEfiMmRscHandlerProtocolGuid",
            "gEfiSmmConfigurationProtocolGuid=gEfiMmConfigurationProtocolGuid",
            "gEfiSmmGpiDispatch2ProtocolGuid=gEfiMmGpiDispatchProtocolGuid",
            "gEfiSmmEndOfDxeProtocolGuid=gEfiMmEndOfDxeProtocolGuid",
            "gEfiSmmSwDispatch2ProtocolGuid=gEfiMmSwDispatchProtocolGuid",
            "gEfiDebugPortProtocolGuid=gEfiDebugPortVariableGuid=gEfiDebugPortDevicePathGuid", ## is this a bug
            "gEfiProcessorSpecificErrorSectionGuid=gEfiIa32X64ProcessorErrorSectionGuid",  ## is this a bug
            "gEfiSmmPeriodicTimerDispatch2ProtocolGuid=gEfiMmPeriodicTimerDispatchProtocolGuid",
            "gEfiPeiMmAccessPpiGuid=gPeiSmmAccessPpiGuid",
            "gPeiSmmControlPpiGuid=gEfiPeiMmControlPpiGuid",
            "gEfiPeiMmCommunicationPpiGuid=gEfiPeiSmmCommunicationPpiGuid",
            ]
    },

    ## options defined ci/Plugin/LibraryClassCheck
    "LibraryClassCheck": {
        "IgnoreHeaderFile": []
    },

    ## options defined ci/Plugin/SpellCheck
    "SpellCheck": {
        "AuditOnly": True,           # Fails test but run in AuditOnly mode to collect log
        "IgnoreFiles": [],           # use gitignore syntax to ignore errors in matching files
        "ExtendWords": [],           # words to extend to the dictionary for this package
        "IgnoreStandardPaths": [],   # Standard Plugin defined paths that should be ignore
        "AdditionalIncludePaths": [] # Additional paths to spell check (wildcards supported)
    }
}
