Check in patch to refine DevicePath Module and USB2HostController Module.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1117 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8 2006-07-27 08:50:08 +00:00
parent 778cedfb9f
commit ffac4bcb25
12 changed files with 433 additions and 630 deletions

View File

@ -479,7 +479,7 @@ EhciDriverBindingStart (
//
// Create AsyncRequest Polling Timer
//
Status = CreatePollingTimer (HcDev, AsyncRequestMoniter);
Status = CreatePollingTimer (HcDev, (EFI_EVENT_NOTIFY) AsyncRequestMoniter);
if (EFI_ERROR (Status)) {
Status = EFI_OUT_OF_RESOURCES;
goto deinit_memory_management;
@ -886,7 +886,7 @@ EhciReset (
//
Status = SetFrameListBaseAddr (
HcDev,
(UINT32) GET_0B_TO_31B (HcDev->PeriodicFrameListBuffer)
GET_0B_TO_31B (HcDev->PeriodicFrameListBuffer)
);
if (EFI_ERROR (Status)) {
Status = EFI_DEVICE_ERROR;

View File

@ -192,11 +192,10 @@ extern EFI_COMPONENT_NAME_PROTOCOL gEhciComponentName;
#define OUTPUT_PACKET_ID 0xE1
#define ERROR_PACKET_ID 0x55
#define bit(a) 1 << (a)
#define GET_0B_TO_31B(Addr) (((UINTN) Addr) & (0xffffffff))
#define GET_32B_TO_63B(Addr) ((((UINTN) Addr) >> 32) & (0xffffffff))
#define bit(a) 1 << (a)
#define GET_0B_TO_31B(Addr) (UINT32) (UINTN) (Addr)
#define GET_32B_TO_63B(Addr) (UINT32) (RShiftU64(((UINT64) (UINTN) (Addr)), 32) & 0xffffffff)
//
// Ehci Data and Ctrl Structures
@ -326,7 +325,7 @@ typedef struct _EHCI_QTD_ENTITY EHCI_QTD_ENTITY;
typedef struct _EHCI_QH_ENTITY EHCI_QH_ENTITY;
typedef struct _EHCI_ASYNC_REQUEST EHCI_ASYNC_REQUEST;
typedef struct _EHCI_QTD_ENTITY {
struct _EHCI_QTD_ENTITY {
EHCI_QTD_HW Qtd;
UINT32 TotalBytes;
UINT32 StaticTotalBytes;
@ -335,9 +334,9 @@ typedef struct _EHCI_QTD_ENTITY {
EHCI_QTD_ENTITY *Next;
EHCI_QTD_ENTITY *AltNext;
EHCI_QH_ENTITY *SelfQh;
} EHCI_QTD_ENTITY;
};
typedef struct _EHCI_QH_ENTITY {
struct _EHCI_QH_ENTITY {
EHCI_QH_HW Qh;
EHCI_QH_ENTITY *Next;
EHCI_QH_ENTITY *Prev;
@ -346,7 +345,7 @@ typedef struct _EHCI_QH_ENTITY {
EHCI_QTD_ENTITY *AltQtdPtr;
UINTN Interval;
UINT8 TransferType;
} EHCI_QH_ENTITY;
};
#define GET_QH_ENTITY_ADDR(a) ((EHCI_QH_ENTITY *) a)
#define GET_QTD_ENTITY_ADDR(a) ((EHCI_QTD_ENTITY *) a)
@ -359,19 +358,14 @@ typedef struct _EHCI_QH_ENTITY {
#define USB2_HC_DEV_SIGNATURE EFI_SIGNATURE_32 ('e', 'h', 'c', 'i')
typedef struct _LIST_HEAD {
struct _LIST_HEAD *pre;
struct _LIST_HEAD *next;
} LIST_HEAD;
typedef struct _EHCI_ASYNC_REQUEST {
struct _EHCI_ASYNC_REQUEST {
UINT8 TransferType;
EFI_ASYNC_USB_TRANSFER_CALLBACK CallBackFunc;
VOID *Context;
EHCI_ASYNC_REQUEST *Prev;
EHCI_ASYNC_REQUEST *Next;
EHCI_QH_ENTITY *QhPtr;
} EHCI_ASYNC_REQUEST;
};
typedef struct _MEMORY_MANAGE_HEADER {
UINT8 *BitArrayPtr;

View File

@ -261,7 +261,7 @@ Returns:
Status = AllocMemInMemoryBlock (
TempHeaderPtr,
Pool,
(VOID **) Pool,
RealAllocSize / 32
);
if (!EFI_ERROR (Status)) {
@ -302,7 +302,7 @@ Returns:
Status = AllocMemInMemoryBlock (
NewMemoryHeader,
Pool,
(VOID **) Pool,
RealAllocSize / 32
);
if (!EFI_ERROR (Status)) {

View File

@ -1386,7 +1386,7 @@ Returns:
Value = NULL;
if (!HwQtdPtr->AltNextQtdTerminate) {
Value = (EHCI_QTD_HW *) GET_0B_TO_31B (HwQtdPtr->AltNextQtdPointer << 5);
Value = (EHCI_QTD_HW *) (UINTN) GET_0B_TO_31B (HwQtdPtr->AltNextQtdPointer << 5);
}
return Value;
@ -1417,7 +1417,7 @@ Returns:
Value = NULL;
if (!HwQtdPtr->NextQtdTerminate) {
Value = (EHCI_QTD_HW *) GET_0B_TO_31B (HwQtdPtr->NextQtdPointer << 5);
Value = (EHCI_QTD_HW *) (UINTN) GET_0B_TO_31B (HwQtdPtr->NextQtdPointer << 5);
}
return Value;
@ -1727,7 +1727,7 @@ Returns:
//
// Not Null FrameList
//
FindQhHwPtr = (EHCI_QH_HW *) GET_0B_TO_31B (FrameEntryPtr->LinkPointer << 5);
FindQhHwPtr = (EHCI_QH_HW *) (UINTN) GET_0B_TO_31B (FrameEntryPtr->LinkPointer << 5);
FindQhPtr = (EHCI_QH_ENTITY *) GET_QH_ENTITY_ADDR (FindQhHwPtr);
//
// FindQh is Left/Right to Qh
@ -1742,12 +1742,12 @@ Returns:
//
if (NULL != FindQhPtr->Next) {
FindQhPtr->Next->Prev = QhPtr;
QhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(FindQhPtr->Next->Qh) >> 5);
QhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(FindQhPtr->Next->Qh)) >> 5);
QhPtr->Qh.SelectType = QH_SELECT_TYPE;
QhPtr->Qh.QhTerminate = FALSE;
}
FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);
FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN)&(QhPtr->Qh)) >> 5);
FindQhPtr->Qh.SelectType = QH_SELECT_TYPE;
FindQhPtr->Qh.QhTerminate = FALSE;
@ -1762,7 +1762,7 @@ Returns:
//
// Qh is the First one in Frame[0] List
//
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);
FrameEntryPtr->SelectType = QH_SELECT_TYPE;
FrameEntryPtr->LinkTerminate = FALSE;
} else {
@ -1770,12 +1770,12 @@ Returns:
// Qh is not the First one in Frame[0] List
//
FindQhPtr->Prev->Next = QhPtr;
FindQhPtr->Prev->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);
FindQhPtr->Prev->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);
FindQhPtr->Prev->Qh.SelectType = QH_SELECT_TYPE;
FindQhPtr->Prev->Qh.QhTerminate = FALSE;
}
QhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(FindQhPtr->Qh) >> 5);
QhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(FindQhPtr->Qh)) >> 5);
QhPtr->Qh.SelectType = QH_SELECT_TYPE;
QhPtr->Qh.QhTerminate = FALSE;
@ -1786,7 +1786,7 @@ Returns:
//
// Link Qh after FindQh, Qh is the Last one
//
FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);
FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);
FindQhPtr->Prev->Qh.SelectType = QH_SELECT_TYPE;
FindQhPtr->Qh.QhTerminate = FALSE;
@ -1798,7 +1798,7 @@ Returns:
//
// Null FrameList
//
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);
FrameEntryPtr->SelectType = QH_SELECT_TYPE;
FrameEntryPtr->LinkTerminate = FALSE;
}
@ -1812,7 +1812,7 @@ Returns:
FrameIndex += QhPtr->Interval;
while (FrameIndex < HcDev->PeriodicFrameListLength) {
FrameEntryPtr = (FRAME_LIST_ENTRY *) (FrameEntryPtr + QhPtr->Interval);
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);
FrameEntryPtr->SelectType = QH_SELECT_TYPE;
FrameEntryPtr->LinkTerminate = FALSE;
FrameIndex += QhPtr->Interval;
@ -1825,7 +1825,7 @@ Returns:
while (FrameIndex < HcDev->PeriodicFrameListLength) {
FrameEntryPtr = (FRAME_LIST_ENTRY *) (FrameEntryPtr + QhPtr->Interval);
if ((FrameIndex % QhPtr->Prev->Interval) != 0) {
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);
FrameEntryPtr->SelectType = QH_SELECT_TYPE;
FrameEntryPtr->LinkTerminate = FALSE;
}
@ -1843,7 +1843,7 @@ Returns:
//
// Not Null FrameList
//
FindQhHwPtr = (EHCI_QH_HW *) GET_0B_TO_31B (FrameEntryPtr->LinkPointer << 5);
FindQhHwPtr = (EHCI_QH_HW *) (UINTN) GET_0B_TO_31B (FrameEntryPtr->LinkPointer << 5);
FindQhPtr = (EHCI_QH_ENTITY *) GET_QH_ENTITY_ADDR (FindQhHwPtr);
//
// FindQh is Last Qh in the Asynchronous List, Link Qh after FindQh
@ -1852,7 +1852,7 @@ Returns:
FindQhPtr = FindQhPtr->Next;
}
FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);
FindQhPtr->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);
FindQhPtr->Qh.SelectType = QH_SELECT_TYPE;
FindQhPtr->Qh.QhTerminate = FALSE;
@ -1862,7 +1862,7 @@ Returns:
//
// Null FrameList
//
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Qh) >> 5);
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Qh)) >> 5);
FrameEntryPtr->SelectType = QH_SELECT_TYPE;
FrameEntryPtr->LinkTerminate = FALSE;
}
@ -1929,7 +1929,7 @@ Returns:
}
} else {
while (FrameIndex < HcDev->PeriodicFrameListLength) {
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Next->Qh) >> 5);
FrameEntryPtr->LinkPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Next->Qh)) >> 5);
FrameEntryPtr->SelectType = QH_SELECT_TYPE;
FrameEntryPtr->LinkTerminate = FALSE;
FrameEntryPtr += Interval;
@ -1949,7 +1949,7 @@ Returns:
QhPtr->Prev->Qh.SelectType = 0;
QhPtr->Prev->Qh.QhTerminate = TRUE;
} else {
QhPtr->Prev->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (&(QhPtr->Next->Qh) >> 5);
QhPtr->Prev->Qh.QhHorizontalPointer = (UINT32) GET_0B_TO_31B (((UINTN) &(QhPtr->Next->Qh)) >> 5);
QhPtr->Prev->Qh.SelectType = QH_SELECT_TYPE;
QhPtr->Prev->Qh.QhTerminate = FALSE;
}
@ -3026,7 +3026,7 @@ Returns:
}
QtdHwPtr = &(AsyncRequestPtr->QhPtr->FirstQtdPtr->Qtd);
ReceiveBuffer = (UINT8 *) GET_0B_TO_31B ((QtdHwPtr->BufferPointer0 << 12) | AsyncRequestPtr->QhPtr->FirstQtdPtr->StaticCurrentOffset);
ReceiveBuffer = (UINT8 *) (UINTN) GET_0B_TO_31B ((QtdHwPtr->BufferPointer0 << 12) | AsyncRequestPtr->QhPtr->FirstQtdPtr->StaticCurrentOffset);
CopyMem (
ProcessBuffer,
ReceiveBuffer,

View File

@ -2374,6 +2374,74 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<FfsFormatKey>BS_DRIVER</FfsFormatKey>
</ModuleSaBuildOptions>
</ModuleSA>
<ModuleSA SupArchList="IA32 X64 IPF" PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674" ModuleGuid="9B680FCE-AD6B-4F3A-B60B-F59899003443">
<Libraries>
<Instance ModuleGuid="ff5c7a2c-ab7a-4366-8616-11c6e53247b6" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="3a004ba5-efe0-4a61-9f1a-267a46ae5ba9" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="fd44e603-002a-4b29-9f5f-529e815b6165" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="331deb15-454b-48d8-9b74-70d01f3f3556" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="3ddc3b12-99ea-4364-b315-6310a2050be5" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="bda39d3a-451b-4350-8266-81ab10fa0523" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="27d67720-ea68-48ae-93da-a3a074c90e30" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="4674739d-3195-4fb2-8094-ac1d22d00194" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="a86fbfca-0183-4eeb-aa8a-762e3b7da1f3" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="91c1677a-e57f-4191-8b8e-eb7711a716e0" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
</Libraries>
<PcdBuildDefinition>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
<Token>0x00000001</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT32</DatumType>
<MaxDatumSize>4</MaxDatumSize>
<Value>1000000</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumAsciiStringLength</C_Name>
<Token>0x00000002</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT32</DatumType>
<MaxDatumSize>4</MaxDatumSize>
<Value>1000000</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugPropertyMask</C_Name>
<Token>0x00000005</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT8</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>0x0f</Value>
</PcdData>
<PcdData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdDebugPrintErrorLevel</C_Name>
<Token>0x00000006</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT32</DatumType>
<MaxDatumSize>4</MaxDatumSize>
<Value>0x80000000</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdReportStatusCodePropertyMask</C_Name>
<Token>0x00000007</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT8</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>0x07</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugClearMemoryValue</C_Name>
<Token>0x00000008</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT8</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>0xAF</Value>
</PcdData>
</PcdBuildDefinition>
<ModuleSaBuildOptions>
<FvBinding>FV_RECOVERY</FvBinding>
<FfsFormatKey>BS_DRIVER</FfsFormatKey>
</ModuleSaBuildOptions>
</ModuleSA>
<ModuleSA SupArchList="IA32" PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674" ModuleGuid="96B5C032-DF4C-4b6e-8232-438DCF448D0E">
<Libraries>
<Instance ModuleGuid="ff5c7a2c-ab7a-4366-8616-11c6e53247b6" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
@ -3561,6 +3629,98 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<FfsFormatKey>BS_DRIVER</FfsFormatKey>
</ModuleSaBuildOptions>
</ModuleSA>
<ModuleSA SupArchList="IA32 X64 IPF" PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674" ModuleGuid="BDFE430E-8F2A-4db0-9991-6F856594777E">
<Libraries>
<Instance ModuleGuid="ff5c7a2c-ab7a-4366-8616-11c6e53247b6" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="f1bbe03d-2f28-4dee-bec7-d98d7a30c36a" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="3a004ba5-efe0-4a61-9f1a-267a46ae5ba9" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="331deb15-454b-48d8-9b74-70d01f3f3556" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="52af22ae-9901-4484-8cdc-622dd5838b09" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="3ddc3b12-99ea-4364-b315-6310a2050be5" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="bda39d3a-451b-4350-8266-81ab10fa0523" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="50bcb105-6634-441d-b403-659110a03ad2" PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674"/>
<Instance ModuleGuid="27d67720-ea68-48ae-93da-a3a074c90e30" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="4674739d-3195-4fb2-8094-ac1d22d00194" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
</Libraries>
<PcdBuildDefinition>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumUnicodeStringLength</C_Name>
<Token>0x00000001</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT32</DatumType>
<MaxDatumSize>4</MaxDatumSize>
<Value>1000000</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumAsciiStringLength</C_Name>
<Token>0x00000002</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT32</DatumType>
<MaxDatumSize>4</MaxDatumSize>
<Value>1000000</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdSpinLockTimeout</C_Name>
<Token>0x00000004</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT32</DatumType>
<MaxDatumSize>4</MaxDatumSize>
<Value>10000000</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdMaximumLinkedListLength</C_Name>
<Token>0x00000003</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT32</DatumType>
<MaxDatumSize>4</MaxDatumSize>
<Value>1000000</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdReportStatusCodePropertyMask</C_Name>
<Token>0x00000007</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT8</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>0x07</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugPropertyMask</C_Name>
<Token>0x00000005</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT8</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>0x0f</Value>
</PcdData>
<PcdData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdDebugPrintErrorLevel</C_Name>
<Token>0x00000006</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT32</DatumType>
<MaxDatumSize>4</MaxDatumSize>
<Value>0x80000000</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdDebugClearMemoryValue</C_Name>
<Token>0x00000008</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT8</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>0xAF</Value>
</PcdData>
<PcdData ItemType="FIXED_AT_BUILD">
<C_Name>PcdPerformanceLibraryPropertyMask</C_Name>
<Token>0x00000009</Token>
<TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT8</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>0</Value>
</PcdData>
</PcdBuildDefinition>
<ModuleSaBuildOptions>
<FvBinding>FV_MAIN</FvBinding>
<FfsFormatKey>BS_DRIVER</FfsFormatKey>
</ModuleSaBuildOptions>
</ModuleSA>
<ModuleSA SupArchList="IA32" PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674" ModuleGuid="0167CCC4-D0F7-4f21-A3EF-9E64B7CDCE8B">
<Libraries>
<Instance ModuleGuid="ff5c7a2c-ab7a-4366-8616-11c6e53247b6" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>

View File

@ -20,8 +20,6 @@ Abstract:
--*/
#include <Uefi/UefiSpec.h>
#include <Protocol/DevicePath.h>
#include "DevicePath.h"
DEVICE_PATH_DRIVER_PRIVATE_DATA mPrivateData;
@ -29,27 +27,6 @@ DEVICE_PATH_DRIVER_PRIVATE_DATA mPrivateData;
EFI_GUID mEfiDevicePathMessagingUartFlowControlGuid = DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL;
EFI_GUID mEfiDevicePathMessagingSASGuid = DEVICE_PATH_MESSAGING_SAS;
STATIC EFI_DEVICE_PATH_UTILITIES_PROTOCOL mDevicePathUtilitiesProtocol = {
GetDevicePathSize,
DuplicateDevicePath,
AppendDevicePath,
AppendDeviceNode,
AppendDevicePathInstance,
GetNextDevicePathInstance,
IsDevicePathMultiInstance,
CreateDeviceNode
};
STATIC EFI_DEVICE_PATH_TO_TEXT_PROTOCOL mDevicePathToTextProtocol = {
ConvertDeviceNodeToText,
ConvertDevicePathToText
};
STATIC EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL mDevicePathFromTextProtocol = {
ConvertTextToDeviceNode,
ConvertTextToDevicePath
};
EFI_STATUS
EFIAPI
DevicePathEntryPoint (
@ -75,14 +52,14 @@ DevicePathEntryPoint (
mPrivateData.Signature = DEVICE_PATH_DRIVER_SIGNATURE;
mPrivateData.DevicePathUtilities.GetDevicePathSize = GetDevicePathSize;
mPrivateData.DevicePathUtilities.DuplicateDevicePath = DuplicateDevicePath;
mPrivateData.DevicePathUtilities.AppendDevicePath = AppendDevicePath;
mPrivateData.DevicePathUtilities.AppendDeviceNode = AppendDeviceNode;
mPrivateData.DevicePathUtilities.AppendDevicePathInstance = AppendDevicePathInstance;
mPrivateData.DevicePathUtilities.GetNextDevicePathInstance = GetNextDevicePathInstance;
mPrivateData.DevicePathUtilities.IsDevicePathMultiInstance = IsDevicePathMultiInstance;
mPrivateData.DevicePathUtilities.CreateDeviceNode = CreateDeviceNode;
mPrivateData.DevicePathUtilities.GetDevicePathSize = GetDevicePathSizeProtocolInterface;
mPrivateData.DevicePathUtilities.DuplicateDevicePath = DuplicateDevicePathProtocolInterface;
mPrivateData.DevicePathUtilities.AppendDevicePath = AppendDevicePathProtocolInterface;
mPrivateData.DevicePathUtilities.AppendDeviceNode = AppendDeviceNodeProtocolInterface;
mPrivateData.DevicePathUtilities.AppendDevicePathInstance = AppendDevicePathInstanceProtocolInterface;
mPrivateData.DevicePathUtilities.GetNextDevicePathInstance = GetNextDevicePathInstanceProtocolInterface;
mPrivateData.DevicePathUtilities.IsDevicePathMultiInstance = IsDevicePathMultiInstanceProtocolInterface;
mPrivateData.DevicePathUtilities.CreateDeviceNode = CreateDeviceNodeProtocolInterface;
mPrivateData.DevicePathToText.ConvertDeviceNodeToText = ConvertDeviceNodeToText;
mPrivateData.DevicePathToText.ConvertDevicePathToText = ConvertDevicePathToText;

View File

@ -247,7 +247,7 @@ ConvertTextToDevicePath (
;
UINTN
GetDevicePathSize (
GetDevicePathSizeProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
/*++
@ -265,7 +265,7 @@ GetDevicePathSize (
;
EFI_DEVICE_PATH_PROTOCOL *
DuplicateDevicePath (
DuplicateDevicePathProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
/*++
@ -284,7 +284,7 @@ DuplicateDevicePath (
;
EFI_DEVICE_PATH_PROTOCOL *
AppendDevicePath (
AppendDevicePathProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *Src1,
IN CONST EFI_DEVICE_PATH_PROTOCOL *Src2
)
@ -306,7 +306,7 @@ AppendDevicePath (
;
EFI_DEVICE_PATH_PROTOCOL *
AppendDeviceNode (
AppendDeviceNodeProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN CONST EFI_DEVICE_PATH_PROTOCOL *DeviceNode
)
@ -328,7 +328,7 @@ AppendDeviceNode (
;
EFI_DEVICE_PATH_PROTOCOL *
AppendDevicePathInstance (
AppendDevicePathInstanceProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance
)
@ -349,7 +349,7 @@ AppendDevicePathInstance (
;
EFI_DEVICE_PATH_PROTOCOL *
GetNextDevicePathInstance (
GetNextDevicePathInstanceProtocolInterface (
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathInstance,
OUT UINTN *DevicePathInstanceSize
)
@ -374,7 +374,7 @@ GetNextDevicePathInstance (
;
BOOLEAN
IsDevicePathMultiInstance (
IsDevicePathMultiInstanceProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
/*++
@ -393,7 +393,7 @@ IsDevicePathMultiInstance (
;
EFI_DEVICE_PATH_PROTOCOL *
CreateDeviceNode (
CreateDeviceNodeProtocolInterface (
IN UINT8 NodeType,
IN UINT8 NodeSubType,
IN UINT16 NodeLength

View File

@ -56,6 +56,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
<LibraryClass Usage="ALWAYS_CONSUMED">
<Keyword>UefiBootServicesTableLib</Keyword>
</LibraryClass>
<LibraryClass Usage="ALWAYS_CONSUMED">
<Keyword>DevicePathLib</Keyword>
</LibraryClass>
</LibraryClassDefinitions>
<SourceFiles>
<Filename>DevicePath.c</Filename>

View File

@ -19,7 +19,6 @@ Abstract:
--*/
#include <protocol/DevicePathFromText.h>
#include "DevicePath.h"
CHAR16 *
@ -574,6 +573,7 @@ Returns:
{
UINTN Length;
*Data = 0;
Length = sizeof (UINT64);
HexStringToBuf ((UINT8 *) Data, &Length, TrimHexStr (Str), NULL);
}
@ -618,7 +618,7 @@ Returns:
Char = *(str++);
while (Char) {
if (Char >= '0' && Char <= '9') {
if (Rvalue > High || Rvalue == High && Char - '0' > (INTN) Low) {
if ((Rvalue > High || Rvalue == High) && (Char - '0' > (INTN) Low)) {
return (UINTN) -1;
}
@ -1298,7 +1298,7 @@ DevPathFromTextVenPcAnsi (
MESSAGING_DEVICE_PATH,
MSG_VENDOR_DP,
sizeof (VENDOR_DEVICE_PATH));
Vendor->Guid = gEfiPcAnsiGuid;
CopyGuid (&Vendor->Guid, &gEfiPcAnsiGuid);
return (EFI_DEVICE_PATH_PROTOCOL *) Vendor;
}
@ -1314,7 +1314,7 @@ DevPathFromTextVenVt100 (
MESSAGING_DEVICE_PATH,
MSG_VENDOR_DP,
sizeof (VENDOR_DEVICE_PATH));
Vendor->Guid = gEfiVT100Guid;
CopyGuid (&Vendor->Guid, &gEfiVT100Guid);
return (EFI_DEVICE_PATH_PROTOCOL *) Vendor;
}
@ -1330,7 +1330,7 @@ DevPathFromTextVenVt100Plus (
MESSAGING_DEVICE_PATH,
MSG_VENDOR_DP,
sizeof (VENDOR_DEVICE_PATH));
Vendor->Guid = gEfiVT100PlusGuid;
CopyGuid (&Vendor->Guid, &gEfiVT100PlusGuid);
return (EFI_DEVICE_PATH_PROTOCOL *) Vendor;
}
@ -1346,7 +1346,7 @@ DevPathFromTextVenUtf8 (
MESSAGING_DEVICE_PATH,
MSG_VENDOR_DP,
sizeof (VENDOR_DEVICE_PATH));
Vendor->Guid = gEfiVTUTF8Guid;
CopyGuid (&Vendor->Guid, &gEfiVTUTF8Guid);
return (EFI_DEVICE_PATH_PROTOCOL *) Vendor;
}
@ -1366,7 +1366,7 @@ DevPathFromTextUartFlowCtrl (
sizeof (UART_FLOW_CONTROL_DEVICE_PATH)
);
UartFlowControl->Guid = mEfiDevicePathMessagingUartFlowControlGuid;
CopyGuid (&UartFlowControl->Guid, &mEfiDevicePathMessagingUartFlowControlGuid);
if (StrCmp (ValueStr, L"XonXoff") == 0) {
UartFlowControl->FlowControlMap = 2;
} else if (StrCmp (ValueStr, L"Hardware") == 0) {
@ -1409,7 +1409,7 @@ DevPathFromTextSAS (
sizeof (SAS_DEVICE_PATH)
);
Sas->Guid = mEfiDevicePathMessagingSASGuid;
CopyGuid (&Sas->Guid, &mEfiDevicePathMessagingSASGuid);
Xtoi64 (AddressStr, &Sas->SasAddress);
Xtoi64 (LunStr, &Sas->Lun);
Sas->RelativeTargetPort = (UINT16) Xtoi (RTPStr);
@ -1455,7 +1455,7 @@ DevPathFromTextDebugPort (
sizeof (VENDOR_DEFINED_MESSAGING_DEVICE_PATH)
);
Vend->Guid = gEfiDebugPortProtocolGuid;
CopyGuid (&Vend->Guid, &gEfiDebugPortProtocolGuid);
return (EFI_DEVICE_PATH_PROTOCOL *) Vend;
}
@ -2166,8 +2166,8 @@ DevPathFromTextBBS (
Bbs->DeviceType = BBS_TYPE_UNKNOWN;
}
AsciiStr = Bbs->String;
StrToAscii (IdStr, &AsciiStr);
AsciiStr = (UINT8 *) Bbs->String;
StrToAscii (IdStr, (CHAR8 **) &AsciiStr);
Bbs->StatusFlag = (UINT16) Xtoi (FlagsStr);
@ -2175,120 +2175,63 @@ DevPathFromTextBBS (
}
DEVICE_PATH_FROM_TEXT_TABLE DevPathFromTextTable[] = {
L"Pci",
DevPathFromTextPci,
L"PcCard",
DevPathFromTextPcCard,
L"MemoryMapped",
DevPathFromTextMemoryMapped,
L"VenHw",
DevPathFromTextVenHw,
L"Ctrl",
DevPathFromTextCtrl,
L"Acpi",
DevPathFromTextAcpi,
L"PciRoot",
DevPathFromTextPciRoot,
L"Floppy",
DevPathFromTextFloppy,
L"Keyboard",
DevPathFromTextKeyboard,
L"Serial",
DevPathFromTextSerial,
L"ParallelPort",
DevPathFromTextParallelPort,
L"AcpiEx",
DevPathFromTextAcpiEx,
L"AcpiExp",
DevPathFromTextAcpiExp,
L"Ata",
DevPathFromTextAta,
L"Scsi",
DevPathFromTextScsi,
L"Fibre",
DevPathFromTextFibre,
L"I1394",
DevPathFromText1394,
L"USB",
DevPathFromTextUsb,
L"I2O",
DevPathFromTextI2O,
L"Infiniband",
DevPathFromTextInfiniband,
L"VenMsg",
DevPathFromTextVenMsg,
L"VenPcAnsi",
DevPathFromTextVenPcAnsi,
L"VenVt100",
DevPathFromTextVenVt100,
L"VenVt100Plus",
DevPathFromTextVenVt100Plus,
L"VenUtf8",
DevPathFromTextVenUtf8,
L"UartFlowCtrl",
DevPathFromTextUartFlowCtrl,
L"SAS",
DevPathFromTextSAS,
L"DebugPort",
DevPathFromTextDebugPort,
L"MAC",
DevPathFromTextMAC,
L"IPv4",
DevPathFromTextIPv4,
L"IPv6",
DevPathFromTextIPv6,
L"Uart",
DevPathFromTextUart,
L"UsbClass",
DevPathFromTextUsbClass,
L"UsbAudio",
DevPathFromTextUsbAudio,
L"UsbCDCControl",
DevPathFromTextUsbCDCControl,
L"UsbHID",
DevPathFromTextUsbHID,
L"UsbImage",
DevPathFromTextUsbImage,
L"UsbPrinter",
DevPathFromTextUsbPrinter,
L"UsbMassStorage",
DevPathFromTextUsbMassStorage,
L"UsbHub",
DevPathFromTextUsbHub,
L"UsbCDCData",
DevPathFromTextUsbCDCData,
L"UsbSmartCard",
DevPathFromTextUsbSmartCard,
L"UsbVideo",
DevPathFromTextUsbVideo,
L"UsbDiagnostic",
DevPathFromTextUsbDiagnostic,
L"UsbWireless",
DevPathFromTextUsbWireless,
L"UsbDeviceFirmwareUpdate",
DevPathFromTextUsbDeviceFirmwareUpdate,
L"UsbIrdaBridge",
DevPathFromTextUsbIrdaBridge,
L"UsbTestAndMeasurement",
DevPathFromTextUsbTestAndMeasurement,
L"UsbWwid",
DevPathFromTextUsbWwid,
L"Unit",
DevPathFromTextUnit,
L"iSCSI",
DevPathFromTextiSCSI,
L"HD",
DevPathFromTextHD,
L"CDROM",
DevPathFromTextCDROM,
L"VenMEDIA",
DevPathFromTextVenMEDIA,
L"Media",
DevPathFromTextMedia,
L"BBS",
DevPathFromTextBBS,
NULL,
NULL
{L"Pci", DevPathFromTextPci},
{L"PcCard", DevPathFromTextPcCard},
{L"MemoryMapped", DevPathFromTextMemoryMapped},
{L"VenHw", DevPathFromTextVenHw},
{L"Ctrl", DevPathFromTextCtrl},
{L"Acpi", DevPathFromTextAcpi},
{L"PciRoot", DevPathFromTextPciRoot},
{L"Floppy", DevPathFromTextFloppy},
{L"Keyboard", DevPathFromTextKeyboard},
{L"Serial", DevPathFromTextSerial},
{L"ParallelPort", DevPathFromTextParallelPort},
{L"AcpiEx", DevPathFromTextAcpiEx},
{L"AcpiExp", DevPathFromTextAcpiExp},
{L"Ata", DevPathFromTextAta},
{L"Scsi", DevPathFromTextScsi},
{L"Fibre", DevPathFromTextFibre},
{L"I1394", DevPathFromText1394},
{L"USB", DevPathFromTextUsb},
{L"I2O", DevPathFromTextI2O},
{L"Infiniband", DevPathFromTextInfiniband},
{L"VenMsg", DevPathFromTextVenMsg},
{L"VenPcAnsi", DevPathFromTextVenPcAnsi},
{L"VenVt100", DevPathFromTextVenVt100},
{L"VenVt100Plus", DevPathFromTextVenVt100Plus},
{L"VenUtf8", DevPathFromTextVenUtf8},
{L"UartFlowCtrl", DevPathFromTextUartFlowCtrl},
{L"SAS", DevPathFromTextSAS},
{L"DebugPort", DevPathFromTextDebugPort},
{L"MAC", DevPathFromTextMAC},
{L"IPv4", DevPathFromTextIPv4},
{L"IPv6", DevPathFromTextIPv6},
{L"Uart", DevPathFromTextUart},
{L"UsbClass", DevPathFromTextUsbClass},
{L"UsbAudio", DevPathFromTextUsbAudio},
{L"UsbCDCControl", DevPathFromTextUsbCDCControl},
{L"UsbHID", DevPathFromTextUsbHID},
{L"UsbImage", DevPathFromTextUsbImage},
{L"UsbPrinter", DevPathFromTextUsbPrinter},
{L"UsbMassStorage", DevPathFromTextUsbMassStorage},
{L"UsbHub", DevPathFromTextUsbHub},
{L"UsbCDCData", DevPathFromTextUsbCDCData},
{L"UsbSmartCard", DevPathFromTextUsbSmartCard},
{L"UsbVideo", DevPathFromTextUsbVideo},
{L"UsbDiagnostic", DevPathFromTextUsbDiagnostic},
{L"UsbWireless", DevPathFromTextUsbWireless},
{L"UsbDeviceFirmwareUpdate", DevPathFromTextUsbDeviceFirmwareUpdate},
{L"UsbIrdaBridge", DevPathFromTextUsbIrdaBridge},
{L"UsbTestAndMeasurement", DevPathFromTextUsbTestAndMeasurement},
{L"UsbWwid", DevPathFromTextUsbWwid},
{L"Unit", DevPathFromTextUnit},
{L"iSCSI", DevPathFromTextiSCSI},
{L"HD", DevPathFromTextHD},
{L"CDROM", DevPathFromTextCDROM},
{L"VenMEDIA", DevPathFromTextVenMEDIA},
{L"Media", DevPathFromTextMedia},
{L"BBS", DevPathFromTextBBS},
{NULL, NULL}
};
EFI_DEVICE_PATH_PROTOCOL *
@ -2413,7 +2356,7 @@ ConvertTextToDevicePath (
gBS->FreePool (ParamStr);
}
NewDevicePath = AppendDeviceNode (DevicePath, DeviceNode);
NewDevicePath = AppendDeviceNodeProtocolInterface (DevicePath, DeviceNode);
gBS->FreePool (DevicePath);
gBS->FreePool (DeviceNode);
DevicePath = NewDevicePath;
@ -2422,7 +2365,7 @@ ConvertTextToDevicePath (
DeviceNode = (EFI_DEVICE_PATH_PROTOCOL *) AllocatePool (END_DEVICE_PATH_LENGTH);
SetDevicePathInstanceEndNode (DeviceNode);
NewDevicePath = AppendDeviceNode (DevicePath, DeviceNode);
NewDevicePath = AppendDeviceNodeProtocolInterface (DevicePath, DeviceNode);
gBS->FreePool (DevicePath);
gBS->FreePool (DeviceNode);
DevicePath = NewDevicePath;

View File

@ -19,7 +19,6 @@ Abstract:
--*/
#include <protocol/DevicePathToText.h>
#include "DevicePath.h"
EFI_DEVICE_PATH_PROTOCOL *
@ -372,7 +371,7 @@ DevPathToTextController (
CatPrint (
Str,
L"Ctrl(%x)",
(UINT16 *)Controller->ControllerNumber
Controller->ControllerNumber
);
}
@ -423,7 +422,7 @@ DevPathToTextAcpi (
}
}
#define NextStrA(a) ((UINT8 *) (((UINT8 *) (a)) + AsciiStrLen (a) + 1))
#define NextStrA(a) ((UINT8 *) (((UINT8 *) (a)) + AsciiStrLen ((CHAR8 *) (a)) + 1))
VOID
DevPathToTextExtAcpi (
@ -1257,102 +1256,38 @@ DevPathToTextNodeUnknown (
}
DEVICE_PATH_TO_TEXT_TABLE DevPathToTextTable[] = {
HARDWARE_DEVICE_PATH,
HW_PCI_DP,
DevPathToTextPci,
HARDWARE_DEVICE_PATH,
HW_PCCARD_DP,
DevPathToTextPccard,
HARDWARE_DEVICE_PATH,
HW_MEMMAP_DP,
DevPathToTextMemMap,
HARDWARE_DEVICE_PATH,
HW_VENDOR_DP,
DevPathToTextVendor,
HARDWARE_DEVICE_PATH,
HW_CONTROLLER_DP,
DevPathToTextController,
ACPI_DEVICE_PATH,
ACPI_DP,
DevPathToTextAcpi,
ACPI_DEVICE_PATH,
ACPI_EXTENDED_DP,
DevPathToTextExtAcpi,
MESSAGING_DEVICE_PATH,
MSG_ATAPI_DP,
DevPathToTextAtapi,
MESSAGING_DEVICE_PATH,
MSG_SCSI_DP,
DevPathToTextScsi,
MESSAGING_DEVICE_PATH,
MSG_FIBRECHANNEL_DP,
DevPathToTextFibre,
MESSAGING_DEVICE_PATH,
MSG_1394_DP,
DevPathToText1394,
MESSAGING_DEVICE_PATH,
MSG_USB_DP,
DevPathToTextUsb,
MESSAGING_DEVICE_PATH,
MSG_USB_WWID_DP,
DevPathToTextUsbWWID,
MESSAGING_DEVICE_PATH,
MSG_DEVICE_LOGICAL_UNIT_DP,
DevPathToTextLogicalUnit,
MESSAGING_DEVICE_PATH,
MSG_USB_CLASS_DP,
DevPathToTextUsbClass,
MESSAGING_DEVICE_PATH,
MSG_I2O_DP,
DevPathToTextI2O,
MESSAGING_DEVICE_PATH,
MSG_MAC_ADDR_DP,
DevPathToTextMacAddr,
MESSAGING_DEVICE_PATH,
MSG_IPv4_DP,
DevPathToTextIPv4,
MESSAGING_DEVICE_PATH,
MSG_IPv6_DP,
DevPathToTextIPv6,
MESSAGING_DEVICE_PATH,
MSG_INFINIBAND_DP,
DevPathToTextInfiniBand,
MESSAGING_DEVICE_PATH,
MSG_UART_DP,
DevPathToTextUart,
MESSAGING_DEVICE_PATH,
MSG_VENDOR_DP,
DevPathToTextVendor,
MESSAGING_DEVICE_PATH,
MSG_ISCSI_DP,
DevPathToTextiSCSI,
MEDIA_DEVICE_PATH,
MEDIA_HARDDRIVE_DP,
DevPathToTextHardDrive,
MEDIA_DEVICE_PATH,
MEDIA_CDROM_DP,
DevPathToTextCDROM,
MEDIA_DEVICE_PATH,
MEDIA_VENDOR_DP,
DevPathToTextVendor,
MEDIA_DEVICE_PATH,
MEDIA_FILEPATH_DP,
DevPathToTextFilePath,
MEDIA_DEVICE_PATH,
MEDIA_PROTOCOL_DP,
DevPathToTextMediaProtocol,
MEDIA_DEVICE_PATH,
MEDIA_FILEPATH_DP,
DevPathToTextFilePath,
BBS_DEVICE_PATH,
BBS_BBS_DP,
DevPathToTextBBS,
END_DEVICE_PATH_TYPE,
END_INSTANCE_DEVICE_PATH_SUBTYPE,
DevPathToTextEndInstance,
0,
0,
NULL
{HARDWARE_DEVICE_PATH, HW_PCI_DP, DevPathToTextPci},
{HARDWARE_DEVICE_PATH, HW_PCCARD_DP, DevPathToTextPccard},
{HARDWARE_DEVICE_PATH, HW_MEMMAP_DP, DevPathToTextMemMap},
{HARDWARE_DEVICE_PATH, HW_VENDOR_DP, DevPathToTextVendor},
{HARDWARE_DEVICE_PATH, HW_CONTROLLER_DP, DevPathToTextController},
{ACPI_DEVICE_PATH, ACPI_DP, DevPathToTextAcpi},
{ACPI_DEVICE_PATH, ACPI_EXTENDED_DP, DevPathToTextExtAcpi},
{MESSAGING_DEVICE_PATH, MSG_ATAPI_DP, DevPathToTextAtapi},
{MESSAGING_DEVICE_PATH, MSG_SCSI_DP, DevPathToTextScsi},
{MESSAGING_DEVICE_PATH, MSG_FIBRECHANNEL_DP, DevPathToTextFibre},
{MESSAGING_DEVICE_PATH, MSG_1394_DP, DevPathToText1394},
{MESSAGING_DEVICE_PATH, MSG_USB_DP, DevPathToTextUsb},
{MESSAGING_DEVICE_PATH, MSG_USB_WWID_DP, DevPathToTextUsbWWID},
{MESSAGING_DEVICE_PATH, MSG_DEVICE_LOGICAL_UNIT_DP, DevPathToTextLogicalUnit},
{MESSAGING_DEVICE_PATH, MSG_USB_CLASS_DP, DevPathToTextUsbClass},
{MESSAGING_DEVICE_PATH, MSG_I2O_DP, DevPathToTextI2O},
{MESSAGING_DEVICE_PATH, MSG_MAC_ADDR_DP, DevPathToTextMacAddr},
{MESSAGING_DEVICE_PATH, MSG_IPv4_DP, DevPathToTextIPv4},
{MESSAGING_DEVICE_PATH, MSG_IPv6_DP, DevPathToTextIPv6},
{MESSAGING_DEVICE_PATH, MSG_INFINIBAND_DP, DevPathToTextInfiniBand},
{MESSAGING_DEVICE_PATH, MSG_UART_DP, DevPathToTextUart},
{MESSAGING_DEVICE_PATH, MSG_VENDOR_DP, DevPathToTextVendor},
{MESSAGING_DEVICE_PATH, MSG_ISCSI_DP, DevPathToTextiSCSI},
{MEDIA_DEVICE_PATH, MEDIA_HARDDRIVE_DP, DevPathToTextHardDrive},
{MEDIA_DEVICE_PATH, MEDIA_CDROM_DP, DevPathToTextCDROM},
{MEDIA_DEVICE_PATH, MEDIA_VENDOR_DP, DevPathToTextVendor},
{MEDIA_DEVICE_PATH, MEDIA_FILEPATH_DP, DevPathToTextFilePath},
{MEDIA_DEVICE_PATH, MEDIA_PROTOCOL_DP, DevPathToTextMediaProtocol},
{MEDIA_DEVICE_PATH, MEDIA_FILEPATH_DP, DevPathToTextFilePath},
{BBS_DEVICE_PATH, BBS_BBS_DP, DevPathToTextBBS},
{END_DEVICE_PATH_TYPE, END_INSTANCE_DEVICE_PATH_SUBTYPE, DevPathToTextEndInstance},
{0, 0, NULL}
};
CHAR16 *

View File

@ -19,12 +19,10 @@ Abstract:
--*/
#include <protocol/DevicePathUtilities.h>
#include <protocol/DevicePath.h>
#include "DevicePath.h"
UINTN
GetDevicePathSize (
GetDevicePathSizeProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
/*++
@ -40,28 +38,11 @@ GetDevicePathSize (
--*/
{
CONST EFI_DEVICE_PATH_PROTOCOL *Start;
if (DevicePath == NULL) {
return 0;
}
//
// Search for the end of the device path structure
//
Start = (EFI_DEVICE_PATH_PROTOCOL *) DevicePath;
while (!IsDevicePathEnd (DevicePath)) {
DevicePath = NextDevicePathNode (DevicePath);
}
//
// Compute the size and add back in the size of the end device path structure
//
return ((UINTN) DevicePath - (UINTN) Start) + sizeof (EFI_DEVICE_PATH_PROTOCOL);
return GetDevicePathSize (DevicePath);
}
EFI_DEVICE_PATH_PROTOCOL *
DuplicateDevicePath (
DuplicateDevicePathProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
/*++
@ -78,31 +59,11 @@ DuplicateDevicePath (
--*/
{
EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
UINTN Size;
if (DevicePath == NULL) {
return NULL;
}
//
// Compute the size
//
Size = GetDevicePathSize (DevicePath);
if (Size == 0) {
return NULL;
}
//
// Allocate space for duplicate device path
//
NewDevicePath = AllocateCopyPool (Size, (VOID *) DevicePath);
return NewDevicePath;
return DuplicateDevicePath (DevicePath);
}
EFI_DEVICE_PATH_PROTOCOL *
AppendDevicePath (
AppendDevicePathProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *Src1,
IN CONST EFI_DEVICE_PATH_PROTOCOL *Src2
)
@ -122,48 +83,11 @@ AppendDevicePath (
--*/
{
UINTN Size;
UINTN Size1;
UINTN Size2;
EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
EFI_DEVICE_PATH_PROTOCOL *SecondDevicePath;
//
// If there's only 1 path, just duplicate it
//
if (Src1 == NULL) {
ASSERT (!IsDevicePathUnpacked (Src2));
return DuplicateDevicePath (Src2);
}
if (Src2 == NULL) {
ASSERT (!IsDevicePathUnpacked (Src1));
return DuplicateDevicePath (Src1);
}
//
// Allocate space for the combined device path. It only has one end node of
// length EFI_DEVICE_PATH_PROTOCOL
//
Size1 = GetDevicePathSize (Src1);
Size2 = GetDevicePathSize (Src2);
Size = Size1 + Size2 - sizeof (EFI_DEVICE_PATH_PROTOCOL);
NewDevicePath = AllocateCopyPool (Size, (VOID *) Src1);
if (NewDevicePath != NULL) {
//
// Over write Src1 EndNode and do the copy
//
SecondDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) ((CHAR8 *) NewDevicePath + (Size1 - sizeof (EFI_DEVICE_PATH_PROTOCOL)));
CopyMem (SecondDevicePath, (VOID *) Src2, Size2);
}
return NewDevicePath;
return AppendDevicePath (Src1, Src2);
}
EFI_DEVICE_PATH_PROTOCOL *
AppendDeviceNode (
AppendDeviceNodeProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN CONST EFI_DEVICE_PATH_PROTOCOL *DeviceNode
)
@ -183,41 +107,11 @@ AppendDeviceNode (
--*/
{
EFI_DEVICE_PATH_PROTOCOL *Temp;
EFI_DEVICE_PATH_PROTOCOL *NextNode;
EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
UINTN NodeLength;
if ((DevicePath == NULL) || (DeviceNode == NULL)) {
return NULL;
}
//
// Build a Node that has a terminator on it
//
NodeLength = DevicePathNodeLength (DeviceNode);
Temp = AllocateCopyPool (NodeLength + sizeof (EFI_DEVICE_PATH_PROTOCOL), (VOID *) DeviceNode);
if (Temp == NULL) {
return NULL;
}
//
// Add and end device path node to convert Node to device path
//
NextNode = NextDevicePathNode (Temp);
SetDevicePathEndNode (NextNode);
//
// Append device paths
//
NewDevicePath = AppendDevicePath (DevicePath, Temp);
gBS->FreePool (Temp);
return NewDevicePath;
return AppendDevicePathNode (DevicePath, DeviceNode);
}
EFI_DEVICE_PATH_PROTOCOL *
AppendDevicePathInstance (
AppendDevicePathInstanceProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance
)
@ -236,42 +130,11 @@ AppendDevicePathInstance (
--*/
{
UINT8 *Ptr;
EFI_DEVICE_PATH_PROTOCOL *DevPath;
UINTN SrcSize;
UINTN InstanceSize;
if (DevicePathInstance == NULL) {
return NULL;
}
if (DevicePath == NULL) {
return DuplicateDevicePath (DevicePathInstance);
}
SrcSize = GetDevicePathSize (DevicePath);
InstanceSize = GetDevicePathSize (DevicePathInstance);
Ptr = AllocateCopyPool (SrcSize + InstanceSize, (VOID *) DevicePath);
if (Ptr != NULL) {
DevPath = (EFI_DEVICE_PATH_PROTOCOL *) (Ptr + (SrcSize - sizeof (EFI_DEVICE_PATH_PROTOCOL)));
//
// Convert the End to an End Instance, since we are
// appending another instacne after this one its a good
// idea.
//
DevPath->SubType = END_INSTANCE_DEVICE_PATH_SUBTYPE;
DevPath = NextDevicePathNode (DevPath);
CopyMem (DevPath, (VOID *) DevicePathInstance, InstanceSize);
}
return (EFI_DEVICE_PATH_PROTOCOL *) Ptr;
return AppendDevicePathInstance (DevicePath, DevicePathInstance);
}
EFI_DEVICE_PATH_PROTOCOL *
GetNextDevicePathInstance (
GetNextDevicePathInstanceProtocolInterface (
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathInstance,
OUT UINTN *DevicePathInstanceSize
)
@ -294,56 +157,11 @@ GetNextDevicePathInstance (
--*/
{
EFI_DEVICE_PATH_PROTOCOL *DevPath;
EFI_DEVICE_PATH_PROTOCOL *ReturnValue;
UINT8 Temp;
if (*DevicePathInstance == NULL) {
if (DevicePathInstanceSize != NULL) {
*DevicePathInstanceSize = 0;
}
return NULL;
}
//
// Find the end of the device path instance
//
DevPath = *DevicePathInstance;
while (!IsDevicePathEndType (DevPath)) {
DevPath = NextDevicePathNode (DevPath);
}
//
// Compute the size of the device path instance
//
if (DevicePathInstanceSize != NULL) {
*DevicePathInstanceSize = ((UINTN) DevPath - (UINTN) (*DevicePathInstance)) + sizeof (EFI_DEVICE_PATH_PROTOCOL);
}
//
// Make a copy and return the device path instance
//
Temp = DevPath->SubType;
DevPath->SubType = END_ENTIRE_DEVICE_PATH_SUBTYPE;
ReturnValue = DuplicateDevicePath (*DevicePathInstance);
DevPath->SubType = Temp;
//
// If DevPath is the end of an entire device path, then another instance
// does not follow, so *DevicePath is set to NULL.
//
if (DevicePathSubType (DevPath) == END_ENTIRE_DEVICE_PATH_SUBTYPE) {
*DevicePathInstance = NULL;
} else {
*DevicePathInstance = NextDevicePathNode (DevPath);
}
return ReturnValue;
return GetNextDevicePathInstance (DevicePathInstance, DevicePathInstanceSize);
}
BOOLEAN
IsDevicePathMultiInstance (
IsDevicePathMultiInstanceProtocolInterface (
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
/*++
@ -360,26 +178,11 @@ IsDevicePathMultiInstance (
--*/
{
CONST EFI_DEVICE_PATH_PROTOCOL *Node;
if (DevicePath == NULL) {
return FALSE;
}
Node = DevicePath;
while (!IsDevicePathEnd (Node)) {
if (EfiIsDevicePathEndInstance (Node)) {
return TRUE;
}
Node = NextDevicePathNode (Node);
}
return FALSE;
return IsDevicePathMultiInstance (DevicePath);
}
EFI_DEVICE_PATH_PROTOCOL *
CreateDeviceNode (
CreateDeviceNodeProtocolInterface (
IN UINT8 NodeType,
IN UINT8 NodeSubType,
IN UINT16 NodeLength
@ -404,18 +207,5 @@ CreateDeviceNode (
--*/
{
EFI_DEVICE_PATH_PROTOCOL *Node;
if (NodeLength < sizeof (EFI_DEVICE_PATH_PROTOCOL)) {
return NULL;
}
Node = (EFI_DEVICE_PATH_PROTOCOL *) AllocateZeroPool ((UINTN) NodeLength);
if (Node != NULL) {
Node->Type = NodeType;
Node->SubType = NodeSubType;
SetDevicePathNodeLength (Node, NodeLength);
}
return Node;
return CreateDeviceNode (NodeType, NodeSubType, NodeLength);
}

View File

@ -566,46 +566,46 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<MaxDatumSize>1</MaxDatumSize>
<Value>TRUE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseSerial</C_Name>
<Token>0x00010022</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseSerial</C_Name>
<Token>0x00010022</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseMemory</C_Name>
<Token>0x00010023</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseMemory</C_Name>
<Token>0x00010023</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseOEM</C_Name>
<Token>0x00010024</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseOEM</C_Name>
<Token>0x00010024</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>TRUE</Value>
</PcdData>
<PcdData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdStatusCodeMemorySize</C_Name>
<Token>0x00010025</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT16</DatumType>
<Value>TRUE</Value>
</PcdData>
<PcdData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdStatusCodeMemorySize</C_Name>
<Token>0x00010025</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT16</DatumType>
<MaxDatumSize>2</MaxDatumSize>
<Value>1</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdNt32StatusCodeLibUseForPei</C_Name>
<Token>0x0000100b</Token>
<TokenSpaceGuidCName>gEfiEdkNt32PkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<Value>1</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdNt32StatusCodeLibUseForPei</C_Name>
<Token>0x0000100b</Token>
<TokenSpaceGuidCName>gEfiEdkNt32PkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>TRUE</Value>
</PcdData>
<Value>TRUE</Value>
</PcdData>
</PcdBuildDefinition>
<ModuleSaBuildOptions>
<FvBinding>FV_RECOVERY</FvBinding>
@ -2463,94 +2463,94 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<MaxDatumSize>1</MaxDatumSize>
<Value>TRUE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseEfiSerial</C_Name>
<Token>0x00010026</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseEfiSerial</C_Name>
<Token>0x00010026</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseHardSerial</C_Name>
<Token>0x00010027</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseHardSerial</C_Name>
<Token>0x00010027</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseRuntimeMemory</C_Name>
<Token>0x00010028</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseRuntimeMemory</C_Name>
<Token>0x00010028</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseDataHub</C_Name>
<Token>0x00010029</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseDataHub</C_Name>
<Token>0x00010029</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseOEM</C_Name>
<Token>0x00010024</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeUseOEM</C_Name>
<Token>0x00010024</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>TRUE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeReplayInSerial</C_Name>
<Token>0x0001002a</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<Value>TRUE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeReplayInSerial</C_Name>
<Token>0x0001002a</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeReplayInRuntimeMemory</C_Name>
<Token>0x0001002b</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeReplayInRuntimeMemory</C_Name>
<Token>0x0001002b</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeReplayInDataHub</C_Name>
<Token>0x0001002c</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeReplayInDataHub</C_Name>
<Token>0x0001002c</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeReplayInOEM</C_Name>
<Token>0x0001002c</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdStatusCodeReplayInOEM</C_Name>
<Token>0x0001002c</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<PcdData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdStatusCodeRuntimeMemorySize</C_Name>
<Token>0x0001002d</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT16</DatumType>
</PcdData>
<PcdData ItemType="PATCHABLE_IN_MODULE">
<C_Name>PcdStatusCodeRuntimeMemorySize</C_Name>
<Token>0x0001002d</Token>
<TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>UINT16</DatumType>
<MaxDatumSize>2</MaxDatumSize>
<Value>128</Value>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdNt32StatusCodeLibUseForPei</C_Name>
<Token>0x0000100b</Token>
<TokenSpaceGuidCName>gEfiEdkNt32PkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
</PcdData>
<PcdData ItemType="FEATURE_FLAG">
<C_Name>PcdNt32StatusCodeLibUseForPei</C_Name>
<Token>0x0000100b</Token>
<TokenSpaceGuidCName>gEfiEdkNt32PkgTokenSpaceGuid</TokenSpaceGuidCName>
<DatumType>BOOLEAN</DatumType>
<MaxDatumSize>1</MaxDatumSize>
<Value>FALSE</Value>
</PcdData>
<Value>FALSE</Value>
</PcdData>
</PcdBuildDefinition>
<ModuleSaBuildOptions>
<FvBinding>FV_RECOVERY</FvBinding>
@ -3682,6 +3682,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<Instance ModuleGuid="27d67720-ea68-48ae-93da-a3a074c90e30" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="4674739d-3195-4fb2-8094-ac1d22d00194" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="a86fbfca-0183-4eeb-aa8a-762e3b7da1f3" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
<Instance ModuleGuid="91c1677a-e57f-4191-8b8e-eb7711a716e0" PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>
</Libraries>
<PcdBuildDefinition>
<PcdData ItemType="FIXED_AT_BUILD">