/** @file\r
MDE UEFI library functions and macros\r
\r
- Copyright (c) 2006, Intel Corporation \r
+ Copyright (c) 2006 - 2007, 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
IN EFI_TPL NotifyTpl,\r
IN EFI_EVENT_NOTIFY NotifyFunction,\r
IN VOID *NotifyContext, OPTIONAL\r
- OUT VOID *Registration\r
+ OUT VOID **Registration\r
);\r
\r
/**\r
IN EFI_TPL NotifyTpl,\r
IN EFI_EVENT_NOTIFY NotifyFunction,\r
IN CONST VOID *NotifyContext, OPTIONAL\r
- OUT VOID *Registration OPTIONAL\r
+ OUT VOID *Registration OPTIONAL\r
);\r
\r
/**\r
IN CONST EFI_GUID *Name\r
);\r
\r
+/** \r
+ Returns the current TPL.\r
+\r
+ This function returns the current TPL. There is no EFI service to directly \r
+ retrieve the current TPL. Instead, the RaiseTPL() function is used to raise \r
+ the TPL to TPL_HIGH_LEVEL. This will return the current TPL. The TPL level \r
+ can then immediately be restored back to the current TPL level with a call \r
+ to RestoreTPL().\r
+\r
+ @param VOID\r
+\r
+ @retvale EFI_TPL The current TPL.\r
+\r
+**/\r
+EFI_TPL\r
+EFIAPI\r
+EfiGetCurrentTpl (\r
+ VOID\r
+ );\r
+\r
/**\r
This function initializes a basic mutual exclusion lock to the released state \r
and returns the lock. Each lock provides mutual exclusion access at its task \r
\r
\r
/**\r
- This function raises the system¡¯s current task priority level to the task \r
+ This function raises the system's current task priority level to the task \r
priority level of the mutual exclusion lock. Then, it places the lock in the \r
acquired state.\r
\r
);\r
\r
/**\r
- This function raises the system¡¯s current task priority level to the task \r
+ This function raises the system's current task priority level to the task \r
priority level of the mutual exclusion lock. Then, it attempts to place the \r
lock in the acquired state.\r
\r
\r
/**\r
This function transitions a mutual exclusion lock from the acquired state to \r
- the released state, and restores the system¡¯s task priority level to its \r
+ the released state, and restores the system's task priority level to its \r
previous level.\r
\r
@param Lock A pointer to the lock to release.\r
IN EFI_LOCK *Lock\r
);\r
\r
+/**
+ Tests whether a controller is managed by a specific driver.
+
+ This function tests whether a specific driver manages ControllerHandle by\r
+ opening on DriverBindingHandle a protocol specified by ProtocolGuid with\r
+ attribute EFI_OPEN_PROTOCOL_BY_DRIVER. This library function is used to\r
+ implement the Component Name Protocol for EFI Drivers.\r
+ If ProtocolGuid is NULL, then ASSERT().\r
+
+ @param ControllerHandle A handle for a controller to test.
+ @param DriverBindingHandle Specifies the driver binding handle for the
+ driver.
+ @param ProtocolGuid Supplies GUID for the protocol opened by the
+ driver on the controller.
+
+ @retval EFI_SUCCESS ControllerHandle is managed by the specific
+ driver.
+ @retval EFI_UNSUPPORTED ControllerHandle is not managed by the specific
+ driver.
+
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+EfiTestManagedDevice (\r
+ IN CONST EFI_HANDLE ControllerHandle,\r
+ IN CONST EFI_HANDLE DriverBindingHandle,\r
+ IN CONST EFI_GUID *ProtocolGuid\r
+ );\r
+\r
+/**
+ Tests whether a child handle is a children device of the controller.
+
+ This function tests whether ChildHandle is one of the children of
+ ControllerHandle which are consuming a protocol specified by ProtocolGuid
+ with the attribute bit EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER set. This
+ library function is used to implement the Component Name Protocol for EFI
+ Drivers.
+ If ProtocolGuid is NULL, then ASSERT().
+
+ @param ControllerHandle A handle for a (parent) controller to test.
+ @param ChildHandle A child handle to test.
+ @param ConsumsedGuid Supplies GUID for the protocol consumed by
+ children from controller.
+
+ @retval EFI_SUCCESS ChildHandle is a child of the ControllerHandle.
+ @retval EFI_UNSUPPORTED ChildHandle is not a child of the
+ ControllerHandle.
+
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+EfiTestChildHandle (\r
+ IN CONST EFI_HANDLE ControllerHandle,\r
+ IN CONST EFI_HANDLE ChildHandle,\r
+ IN CONST EFI_GUID *ProtocolGuid\r
+ );\r
+\r
/**\r
This function looks up a Unicode string in UnicodeStringTable. If Language is \r
a member of SupportedLanguages and a Unicode string is found in UnicodeStringTable\r
IN CONST MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FvDevicePathNode\r
);\r
\r
-\r
#endif\r