2.15 [Depex] Section
This section is used for specifying a Depex expression, not a binary file. In the "As Built" INF files, this section contains a comment that lists the full dependency expression, including Depex statements AND'd from library instances linked against a module.
Binary .depex files are listed in [Binaries] sections of the INF files.
Having a common [Depex] section and architectural [Depex] sections is prohibited. Having multiple module type modifiers for common and architectural sections is permitted. For example, [Depex.common.DXE_DRIVER, Depex.common.DXE_RUNTIME_DRIVER] is valid.
This section can be used with an inheritance from libraries, by supporting logical AND'ing of the different Depex expressions together. Since more than one type of dependency expression may be required for modules DXE/SMM modules, as well as components of type COMBINED_PEIM_DRIVER (not supported by the EDK II build system), section modifier tags have been defined. For module types that prohibit the use of a [Depex] section, all [Depex] sections from library instances must be ignored. These are only required if more than one dependency expression is required for a module.
The format of the depex section tag is:
Depex[.<Arch>[.<ModuleType>]]
Additionally, the rules for specifying DEPEX sections are as follows.
If the Module is a Library, then a
[Depex]section is optional.If the Module is a Library with a MODULE_TYPE of BASE, the generic (i.e., [Depex]) and generic with only architectural modifier entries (i.e., [Depex.IA32]) are not permitted. It is permitted to have a Depex section if one ModuleType modifier is specified (i.e., [Depex.common.PEIM).
If the ModuleType is
USER_DEFINED, then a[Depex]section is optional. If a PEI, SMM or DXE DEPEX section is required, the user must specify a ModuleType ofPEIMto generate aPEI_DEPEXsection, a ModuleType ofDXE_DRIVERto generate aDXE_DEPEXsection, or a ModuleType ofDXE_SMM_DRIVERto generate anSMM_DEPEXsection.If the ModuleType is
SEC,UEFI_APPLICATION,UEFI_DRIVER,PEI_CORE,SMM_CORE,DXE_CORE,HOST_APPLICATION, no[Depex]sections are permitted and all library class[Depex]sections are ignored.Module types
PEIM,DXE_DRIVER,DXE_RUNTIME_DRIVER,DXE_SAL_DRIVERandDXE_SMM_DRIVERrequire a[Depex]section unless the dependencies are specified by aPEI_DEPEX,DXE_DEPEXorSMM_DEPEXin the[Binaries]section.
The Depex section headers start with one of the following:
[Depex]
[Depex.IA32]
[Depex.X64]
[Depex.EBC]
[Depex.common]When generating the "As Built" binary INF during a build, the complete dependency expression, including dependencies from library instances, will be listed in comments.
The following are examples of Depex section:
[Depex]
TRUE
[Depex.IA32.DXE_DRIVER, Depex.IA32.DXE_RUNTIME_DRIVER]
gEfiPcdProtocolGuidLast updated
Was this helpful?