+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2006, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- Library.h\r
-\r
-Abstract:\r
-\r
-Revision History\r
-\r
---*/\r
-\r
-#ifndef _DXE_LIBRARY_H_\r
-#define _DXE_LIBRARY_H_\r
-\r
-\r
-VOID\r
-CoreReportProgressCode (\r
- IN EFI_STATUS_CODE_VALUE Value\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Report status code of type EFI_PROGRESS_CODE by caller ID gEfiDxeServicesTableGuid.\r
- \r
-Arguments:\r
-\r
- Value - Describes the class/subclass/operation of the hardware or software entity \r
- that the Status Code relates to. \r
- \r
-Returns:\r
-\r
- None\r
-\r
---*/\r
-;\r
-\r
-VOID\r
-CoreReportProgressCodeSpecific (\r
- IN EFI_STATUS_CODE_VALUE Value,\r
- IN EFI_HANDLE Handle\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Report status code of type EFI_PROGRESS_CODE by caller ID gEfiDxeServicesTableGuid, \r
- with a handle as additional information.\r
- \r
-Arguments:\r
-\r
- Value - Describes the class/subclass/operation of the hardware or software entity \r
- that the Status Code relates to. \r
- \r
- Handle - Additional information.\r
- \r
-Returns:\r
-\r
- None\r
-\r
---*/\r
-;\r
-\r
-VOID\r
-CoreAcquireLock (\r
- IN EFI_LOCK *Lock\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Raising to the task priority level of the mutual exclusion\r
- lock, and then acquires ownership of the lock.\r
- \r
-Arguments:\r
-\r
- Lock - The lock to acquire\r
- \r
-Returns:\r
-\r
- Lock owned\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-CoreAcquireLockOrFail (\r
- IN EFI_LOCK *Lock\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Initialize a basic mutual exclusion lock. Each lock\r
- provides mutual exclusion access at it's task priority\r
- level. Since there is no-premption (at any TPL) or\r
- multiprocessor support, acquiring the lock only consists\r
- of raising to the locks TPL.\r
- \r
-Arguments:\r
-\r
- Lock - The EFI_LOCK structure to initialize\r
- \r
-Returns:\r
-\r
- EFI_SUCCESS - Lock Owned.\r
- EFI_ACCESS_DENIED - Reentrant Lock Acquisition, Lock not Owned.\r
-\r
---*/\r
-;\r
-\r
-VOID\r
-CoreReleaseLock (\r
- IN EFI_LOCK *Lock\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Releases ownership of the mutual exclusion lock, and\r
- restores the previous task priority level.\r
- \r
-Arguments:\r
-\r
- Lock - The lock to release\r
- \r
-Returns:\r
-\r
- Lock unowned\r
-\r
---*/\r
-;\r
-\r
-//\r
-// Device Path functions\r
-//\r
-\r
-UINTN\r
-CoreDevicePathSize (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Calculate the size of a whole device path. \r
- \r
-Arguments:\r
-\r
- DevicePath - The pointer to the device path data.\r
- \r
-Returns:\r
-\r
- Size of device path data structure..\r
-\r
---*/\r
-;\r
-\r
-BOOLEAN\r
-CoreIsDevicePathMultiInstance (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
- )\r
-/*++\r
-\r
-Routine Description:\r
- Return TRUE is this is a multi instance device path.\r
-\r
-Arguments:\r
- DevicePath - A pointer to a device path data structure.\r
-\r
-\r
-Returns:\r
- TRUE - If DevicePath is multi instance. FALSE - If DevicePath is not multi\r
- instance.\r
-\r
---*/\r
-;\r
-\r
-\r
-EFI_DEVICE_PATH_PROTOCOL *\r
-CoreDuplicateDevicePath (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
- )\r
-/*++\r
-\r
-Routine Description:\r
- Duplicate a new device path data structure from the old one.\r
-\r
-Arguments:\r
- DevicePath - A pointer to a device path data structure.\r
-\r
-Returns:\r
- A pointer to the new allocated device path data.\r
- Caller must free the memory used by DevicePath if it is no longer needed.\r
-\r
---*/\r
-;\r
-\r
-EFI_DEVICE_PATH_PROTOCOL *\r
-CoreAppendDevicePath (\r
- IN EFI_DEVICE_PATH_PROTOCOL *Src1,\r
- IN EFI_DEVICE_PATH_PROTOCOL *Node\r
- )\r
-/*++\r
-\r
-Routine Description:\r
- Function is used to append a Src1 and Src2 together.\r
-\r
-Arguments:\r
- Src1 - A pointer to a device path data structure.\r
-\r
- Node - A pointer to a device path data structure.\r
-\r
-Returns:\r
-\r
- A pointer to the new device path is returned.\r
- NULL is returned if space for the new device path could not be allocated from pool.\r
- It is up to the caller to free the memory used by Src1 and Src2 if they are no longer needed.\r
-\r
---*/\r
-;\r
-\r
-VOID *\r
-CoreAllocateBootServicesPool (\r
- IN UINTN AllocationSize\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Allocate pool of type EfiBootServicesData, the size is specified with AllocationSize.\r
- \r
-Arguments:\r
-\r
- AllocationSize - Size to allocate.\r
- \r
-Returns:\r
-\r
- Pointer of the allocated pool.\r
-\r
---*/\r
-;\r
-\r
-VOID *\r
-CoreAllocateZeroBootServicesPool (\r
- IN UINTN AllocationSize\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Allocate pool of type EfiBootServicesData and zero it, the size is specified with AllocationSize.\r
- \r
-Arguments:\r
-\r
- AllocationSize - Size to allocate.\r
- \r
-Returns:\r
-\r
- Pointer of the allocated pool.\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-CoreGetConfigTable (\r
- IN EFI_GUID *Guid,\r
- IN OUT VOID **Table\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Find a config table by name in system table's ConfigurationTable.\r
-\r
-Arguments:\r
-\r
- Guid - The table name to look for\r
- \r
- Table - Pointer of the config table\r
-\r
-Returns: \r
-\r
- EFI_NOT_FOUND - Could not find the table in system table's ConfigurationTable.\r
- \r
- EFI_SUCCESS - Table successfully found.\r
-\r
---*/\r
-;\r
-\r
-VOID *\r
-CoreAllocateRuntimeCopyPool (\r
- IN UINTN AllocationSize,\r
- IN VOID *Buffer\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Allocate pool of specified size with EfiRuntimeServicesData type, and copy specified buffer to this pool.\r
- \r
-Arguments:\r
-\r
- AllocationSize - Size to allocate.\r
- \r
- Buffer - Specified buffer that will be copy to the allocated pool\r
- \r
-Returns:\r
-\r
- Pointer of the allocated pool.\r
-\r
---*/\r
-;\r
-\r
-VOID *\r
-CoreAllocateRuntimePool (\r
- IN UINTN AllocationSize\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Allocate pool of type EfiRuntimeServicesData, the size is specified with AllocationSize.\r
- \r
-Arguments:\r
-\r
- AllocationSize - Size to allocate.\r
- \r
-Returns:\r
-\r
- Pointer of the allocated pool.\r
-\r
---*/\r
-;\r
-\r
-VOID *\r
-CoreAllocateCopyPool (\r
- IN UINTN AllocationSize,\r
- IN VOID *Buffer\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Allocate pool of specified size with EfiBootServicesData type, and copy specified buffer to this pool.\r
- \r
-Arguments:\r
-\r
- AllocationSize - Size to allocate.\r
- \r
- Buffer - Specified buffer that will be copy to the allocated pool\r
- \r
-Returns:\r
-\r
- Pointer of the allocated pool.\r
-\r
---*/\r
-;\r
-\r
-EFI_EVENT\r
-CoreCreateProtocolNotifyEvent (\r
- IN EFI_GUID *ProtocolGuid,\r
- IN EFI_TPL NotifyTpl,\r
- IN EFI_EVENT_NOTIFY NotifyFunction,\r
- IN VOID *NotifyContext,\r
- OUT VOID **Registration,\r
- IN BOOLEAN SignalFlag\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Create a protocol notification event and return it.\r
-\r
-Arguments:\r
-\r
- ProtocolGuid - Protocol to register notification event on.\r
-\r
- NotifyTpl - Maximum TPL to signal the NotifyFunction.\r
-\r
- NotifyFuncition - EFI notification routine.\r
-\r
- NotifyContext - Context passed into Event when it is created.\r
-\r
- Registration - Registration key returned from RegisterProtocolNotify().\r
-\r
- SignalFlag - Boolean value to decide whether kick the event after register or not. \r
-\r
-Returns:\r
-\r
- The EFI_EVENT that has been registered to be signaled when a ProtocolGuid\r
- is added to the system.\r
-\r
---*/\r
-;\r
-\r
-#endif\r