33 OUT UINT32 *PortBitMap
38 UINTN S3InitDevicesLength;
41 UINTN DevicePathInstLength;
52 S3InitDevicesLength =
sizeof (DummyData);
54 Status =
RestoreLockBox (&gS3StorageDeviceInitListGuid, &DummyData, &S3InitDevicesLength);
55 if (Status != EFI_BUFFER_TOO_SMALL) {
59 if (S3InitDevices ==
NULL) {
63 Status =
RestoreLockBox (&gS3StorageDeviceInitListGuid, S3InitDevices, &S3InitDevicesLength);
64 if (EFI_ERROR (Status)) {
78 &DevicePathInstLength,
81 if (EFI_ERROR (Status)) {
85 DevicePathInst = S3InitDevices;
88 if (HcDevicePathLength >= DevicePathInstLength) {
105 while (DevicePathInst->
Type != END_DEVICE_PATH_TYPE) {
120 *PortBitMap |= (UINT32)BIT0 << SataDeviceNode->
HBAPortNumber;
127 }
while (!EntireEnd);
UINT8 AhciGetNumberOfPortsFromMap(IN UINT32 PortBitMap)
EFI_STATUS GetDevicePathInstanceSize(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, OUT UINTN *InstanceSize, OUT BOOLEAN *EntireDevicePathEnd)
UINT8 AhciS3GetEumeratePorts(IN EFI_DEVICE_PATH_PROTOCOL *HcDevicePath, IN UINTN HcDevicePathLength, OUT UINT32 *PortBitMap)
INTN EFIAPI CompareMem(IN CONST VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
#define MESSAGING_DEVICE_PATH
EFI_DEVICE_PATH_PROTOCOL *EFIAPI NextDevicePathNode(IN CONST VOID *Node)
RETURN_STATUS EFIAPI RestoreLockBox(IN GUID *Guid, IN VOID *Buffer OPTIONAL, IN OUT UINTN *Length OPTIONAL)
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
UINT16 PortMultiplierPortNumber