mirror of https://github.com/acidanthera/audk.git
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:
parent
778cedfb9f
commit
ffac4bcb25
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 *
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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">
|
||||
|
|
Loading…
Reference in New Issue