summaryrefslogtreecommitdiffstats
path: root/qemu/roms/ipxe/src/include/ipxe/efi/Protocol/HiiDatabase.h
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/ipxe/src/include/ipxe/efi/Protocol/HiiDatabase.h')
-rw-r--r--qemu/roms/ipxe/src/include/ipxe/efi/Protocol/HiiDatabase.h533
1 files changed, 0 insertions, 533 deletions
diff --git a/qemu/roms/ipxe/src/include/ipxe/efi/Protocol/HiiDatabase.h b/qemu/roms/ipxe/src/include/ipxe/efi/Protocol/HiiDatabase.h
deleted file mode 100644
index cbc0108b0..000000000
--- a/qemu/roms/ipxe/src/include/ipxe/efi/Protocol/HiiDatabase.h
+++ /dev/null
@@ -1,533 +0,0 @@
-/** @file
- The file provides Database manager for HII-related data
- structures.
-
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials are licensed and made available under
-the terms and conditions of the BSD License that accompanies this distribution.
-The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php.
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#ifndef __HII_DATABASE_H__
-#define __HII_DATABASE_H__
-
-FILE_LICENCE ( BSD3 );
-
-#define EFI_HII_DATABASE_PROTOCOL_GUID \
- { 0xef9fc172, 0xa1b2, 0x4693, { 0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42 } }
-
-
-typedef struct _EFI_HII_DATABASE_PROTOCOL EFI_HII_DATABASE_PROTOCOL;
-
-
-///
-/// EFI_HII_DATABASE_NOTIFY_TYPE.
-///
-typedef UINTN EFI_HII_DATABASE_NOTIFY_TYPE;
-
-#define EFI_HII_DATABASE_NOTIFY_NEW_PACK 0x00000001
-#define EFI_HII_DATABASE_NOTIFY_REMOVE_PACK 0x00000002
-#define EFI_HII_DATABASE_NOTIFY_EXPORT_PACK 0x00000004
-#define EFI_HII_DATABASE_NOTIFY_ADD_PACK 0x00000008
-/**
-
- Functions which are registered to receive notification of
- database events have this prototype. The actual event is encoded
- in NotifyType. The following table describes how PackageType,
- PackageGuid, Handle, and Package are used for each of the
- notification types.
-
- @param PackageType Package type of the notification.
-
- @param PackageGuid If PackageType is
- EFI_HII_PACKAGE_TYPE_GUID, then this is
- the pointer to the GUID from the Guid
- field of EFI_HII_PACKAGE_GUID_HEADER.
- Otherwise, it must be NULL.
-
- @param Package Points to the package referred to by the notification.
-
- @param Handle The handle of the package
- list which contains the specified package.
-
- @param NotifyType The type of change concerning the
- database. See
- EFI_HII_DATABASE_NOTIFY_TYPE.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_DATABASE_NOTIFY)(
- IN UINT8 PackageType,
- IN CONST EFI_GUID *PackageGuid,
- IN CONST EFI_HII_PACKAGE_HEADER *Package,
- IN EFI_HII_HANDLE Handle,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType
-);
-
-/**
-
- This function adds the packages in the package list to the
- database and returns a handle. If there is a
- EFI_DEVICE_PATH_PROTOCOL associated with the DriverHandle, then
- this function will create a package of type
- EFI_PACKAGE_TYPE_DEVICE_PATH and add it to the package list. For
- each package in the package list, registered functions with the
- notification type NEW_PACK and having the same package type will
- be called. For each call to NewPackageList(), there should be a
- corresponding call to
- EFI_HII_DATABASE_PROTOCOL.RemovePackageList().
-
- @param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
-
- @param PackageList A pointer to an EFI_HII_PACKAGE_LIST_HEADER structure.
-
- @param DriverHandle Associate the package list with this EFI handle.
- If a NULL is specified, this data will not be associate
- with any drivers and cannot have a callback induced.
-
- @param Handle A pointer to the EFI_HII_HANDLE instance.
-
- @retval EFI_SUCCESS The package list associated with the
- Handle was added to the HII database.
-
- @retval EFI_OUT_OF_RESOURCES Unable to allocate necessary
- resources for the new database
- contents.
-
- @retval EFI_INVALID_PARAMETER PackageList is NULL, or Handle is NULL.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_DATABASE_NEW_PACK)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList,
- IN EFI_HANDLE DriverHandle, OPTIONAL
- OUT EFI_HII_HANDLE *Handle
-);
-
-
-/**
-
- This function removes the package list that is associated with a
- handle Handle from the HII database. Before removing the
- package, any registered functions with the notification type
- REMOVE_PACK and the same package type will be called. For each
- call to EFI_HII_DATABASE_PROTOCOL.NewPackageList(), there should
- be a corresponding call to RemovePackageList.
-
- @param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
-
- @param Handle The handle that was registered to the data
- that is requested for removal.
-
- @retval EFI_SUCCESS The data associated with the Handle was
- removed from the HII database.
- @retval EFI_NOT_FOUND The specified Handle is not in database.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_DATABASE_REMOVE_PACK)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HII_HANDLE Handle
-);
-
-
-/**
-
- This function updates the existing package list (which has the
- specified Handle) in the HII databases, using the new package
- list specified by PackageList. The update process has the
- following steps: Collect all the package types in the package
- list specified by PackageList. A package type consists of the
- Type field of EFI_HII_PACKAGE_HEADER and, if the Type is
- EFI_HII_PACKAGE_TYPE_GUID, the Guid field, as defined in
- EFI_HII_PACKAGE_GUID_HEADER. Iterate through the packages within
- the existing package list in the HII database specified by
- Handle. If a package's type matches one of the collected types collected
- in step 1, then perform the following steps:
- - Call any functions registered with the notification type
- REMOVE_PACK.
- - Remove the package from the package list and the HII
- database.
- Add all of the packages within the new package list specified
- by PackageList, using the following steps:
- - Add the package to the package list and the HII database.
- - Call any functions registered with the notification type
- ADD_PACK.
-
- @param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
-
- @param Handle The handle that was registered to the data
- that is requested for removal.
-
- @param PackageList A pointer to an EFI_HII_PACKAGE_LIST
- package.
-
- @retval EFI_SUCCESS The HII database was successfully updated.
-
- @retval EFI_OUT_OF_RESOURCES Unable to allocate enough memory
- for the updated database.
-
- @retval EFI_INVALID_PARAMETER PackageList was NULL.
- @retval EFI_NOT_FOUND The specified Handle is not in database.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_DATABASE_UPDATE_PACK)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HII_HANDLE Handle,
- IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList
-);
-
-
-/**
-
- This function returns a list of the package handles of the
- specified type that are currently active in the database. The
- pseudo-type EFI_HII_PACKAGE_TYPE_ALL will cause all package
- handles to be listed.
-
- @param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
-
- @param PackageType Specifies the package type of the packages
- to list or EFI_HII_PACKAGE_TYPE_ALL for
- all packages to be listed.
-
- @param PackageGuid If PackageType is
- EFI_HII_PACKAGE_TYPE_GUID, then this is
- the pointer to the GUID which must match
- the Guid field of
- EFI_HII_PACKAGE_GUID_HEADER. Otherwise, it
- must be NULL.
-
- @param HandleBufferLength On input, a pointer to the length
- of the handle buffer. On output,
- the length of the handle buffer
- that is required for the handles found.
-
- @param Handle An array of EFI_HII_HANDLE instances returned.
-
- @retval EFI_SUCCESS The matching handles are outputed successfully.
- HandleBufferLength is updated with the actual length.
- @retval EFI_BUFFER_TOO_SMALL The HandleBufferLength parameter
- indicates that Handle is too
- small to support the number of
- handles. HandleBufferLength is
- updated with a value that will
- enable the data to fit.
- @retval EFI_NOT_FOUND No matching handle could be found in database.
- @retval EFI_INVALID_PARAMETER HandleBufferLength was NULL.
- @retval EFI_INVALID_PARAMETER The value referenced by HandleBufferLength was not
- zero and Handle was NULL.
- @retval EFI_INVALID_PARAMETER PackageType is not a EFI_HII_PACKAGE_TYPE_GUID but
- PackageGuid is not NULL, PackageType is a EFI_HII_
- PACKAGE_TYPE_GUID but PackageGuid is NULL.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_DATABASE_LIST_PACKS)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN UINT8 PackageType,
- IN CONST EFI_GUID *PackageGuid,
- IN OUT UINTN *HandleBufferLength,
- OUT EFI_HII_HANDLE *Handle
-);
-
-/**
-
- This function will export one or all package lists in the
- database to a buffer. For each package list exported, this
- function will call functions registered with EXPORT_PACK and
- then copy the package list to the buffer. The registered
- functions may call EFI_HII_DATABASE_PROTOCOL.UpdatePackageList()
- to modify the package list before it is copied to the buffer. If
- the specified BufferSize is too small, then the status
- EFI_OUT_OF_RESOURCES will be returned and the actual package
- size will be returned in BufferSize.
-
- @param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
-
-
- @param Handle An EFI_HII_HANDLE that corresponds to the
- desired package list in the HII database to
- export or NULL to indicate all package lists
- should be exported.
-
- @param BufferSize On input, a pointer to the length of the
- buffer. On output, the length of the
- buffer that is required for the exported
- data.
-
- @param Buffer A pointer to a buffer that will contain the
- results of the export function.
-
-
- @retval EFI_SUCCESS Package exported.
-
- @retval EFI_OUT_OF_RESOURCES BufferSize is too small to hold the package.
-
- @retval EFI_NOT_FOUND The specifiecd Handle could not be found in the
- current database.
-
- @retval EFI_INVALID_PARAMETER BufferSize was NULL.
-
- @retval EFI_INVALID_PARAMETER The value referenced by BufferSize was not zero
- and Buffer was NULL.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_DATABASE_EXPORT_PACKS)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HII_HANDLE Handle,
- IN OUT UINTN *BufferSize,
- OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
-);
-
-
-/**
-
-
- This function registers a function which will be called when
- specified actions related to packages of the specified type
- occur in the HII database. By registering a function, other
- HII-related drivers are notified when specific package types
- are added, removed or updated in the HII database. Each driver
- or application which registers a notification should use
- EFI_HII_DATABASE_PROTOCOL.UnregisterPackageNotify() before
- exiting.
-
-
- @param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
-
- @param PackageType The package type. See
- EFI_HII_PACKAGE_TYPE_x in EFI_HII_PACKAGE_HEADER.
-
- @param PackageGuid If PackageType is
- EFI_HII_PACKAGE_TYPE_GUID, then this is
- the pointer to the GUID which must match
- the Guid field of
- EFI_HII_PACKAGE_GUID_HEADER. Otherwise, it
- must be NULL.
-
- @param PackageNotifyFn Points to the function to be called
- when the event specified by
- NotificationType occurs. See
- EFI_HII_DATABASE_NOTIFY.
-
- @param NotifyType Describes the types of notification which
- this function will be receiving. See
- EFI_HII_DATABASE_NOTIFY_TYPE for a
- list of types.
-
- @param NotifyHandle Points to the unique handle assigned to
- the registered notification. Can be used
- in EFI_HII_DATABASE_PROTOCOL.UnregisterPack
- to stop notifications.
-
-
- @retval EFI_SUCCESS Notification registered successfully.
-
- @retval EFI_OUT_OF_RESOURCES Unable to allocate necessary
- data structures.
-
- @retval EFI_INVALID_PARAMETER PackageGuid is not NULL when
- PackageType is not
- EFI_HII_PACKAGE_TYPE_GUID.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_DATABASE_REGISTER_NOTIFY)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN UINT8 PackageType,
- IN CONST EFI_GUID *PackageGuid,
- IN EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- OUT EFI_HANDLE *NotifyHandle
-);
-
-
-/**
-
- Removes the specified HII database package-related notification.
-
- @param This A pointer to the EFI_HII_DATABASE_PROTOCOL instance.
-
- @param NotificationHandle The handle of the notification
- function being unregistered.
-
- @retval EFI_SUCCESS Successsfully unregistered the notification.
-
- @retval EFI_NOT_FOUND The incoming notification handle does not exist
- in the current hii database.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_DATABASE_UNREGISTER_NOTIFY)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HANDLE NotificationHandle
-);
-
-
-/**
-
- This routine retrieves an array of GUID values for each keyboard
- layout that was previously registered in the system.
-
- @param This A pointer to the EFI_HII_PROTOCOL instance.
-
- @param KeyGuidBufferLength On input, a pointer to the length
- of the keyboard GUID buffer. On
- output, the length of the handle
- buffer that is required for the
- handles found.
-
- @param KeyGuidBuffer An array of keyboard layout GUID
- instances returned.
-
- @retval EFI_SUCCESS KeyGuidBuffer was updated successfully.
-
- @retval EFI_BUFFER_TOO_SMALL The KeyGuidBufferLength
- parameter indicates that
- KeyGuidBuffer is too small to
- support the number of GUIDs.
- KeyGuidBufferLength is updated
- with a value that will enable
- the data to fit.
- @retval EFI_INVALID_PARAMETER The KeyGuidBufferLength is NULL.
- @retval EFI_INVALID_PARAMETER The value referenced by
- KeyGuidBufferLength is not
- zero and KeyGuidBuffer is NULL.
- @retval EFI_NOT_FOUND There was no keyboard layout.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_FIND_KEYBOARD_LAYOUTS)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN OUT UINT16 *KeyGuidBufferLength,
- OUT EFI_GUID *KeyGuidBuffer
-);
-
-
-/**
-
- This routine retrieves the requested keyboard layout. The layout
- is a physical description of the keys on a keyboard, and the
- character(s) that are associated with a particular set of key
- strokes.
-
- @param This A pointer to the EFI_HII_PROTOCOL instance.
-
- @param KeyGuid A pointer to the unique ID associated with a
- given keyboard layout. If KeyGuid is NULL then
- the current layout will be retrieved.
-
- @param KeyboardLayoutLength On input, a pointer to the length of the
- KeyboardLayout buffer. On output, the length of
- the data placed into KeyboardLayout.
-
- @param KeyboardLayout A pointer to a buffer containing the
- retrieved keyboard layout.
-
- @retval EFI_SUCCESS The keyboard layout was retrieved
- successfully.
-
- @retval EFI_NOT_FOUND The requested keyboard layout was not found.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_GET_KEYBOARD_LAYOUT)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_GUID *KeyGuid,
- IN OUT UINT16 *KeyboardLayoutLength,
- OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout
-);
-
-/**
-
- This routine sets the default keyboard layout to the one
- referenced by KeyGuid. When this routine is called, an event
- will be signaled of the EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID
- group type. This is so that agents which are sensitive to the
- current keyboard layout being changed can be notified of this
- change.
-
- @param This A pointer to the EFI_HII_PROTOCOL instance.
-
- @param KeyGuid A pointer to the unique ID associated with a
- given keyboard layout.
-
- @retval EFI_SUCCESS The current keyboard layout was successfully set.
-
- @retval EFI_NOT_FOUND The referenced keyboard layout was not
- found, so action was taken.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_SET_KEYBOARD_LAYOUT)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_GUID *KeyGuid
-);
-
-/**
-
- Return the EFI handle associated with a package list.
-
- @param This A pointer to the EFI_HII_PROTOCOL instance.
-
- @param PackageListHandle An EFI_HII_HANDLE that corresponds
- to the desired package list in the
- HIIdatabase.
-
- @param DriverHandle On return, contains the EFI_HANDLE which
- was registered with the package list in
- NewPackageList().
-
- @retval EFI_SUCCESS The DriverHandle was returned successfully.
-
- @retval EFI_INVALID_PARAMETER The PackageListHandle was not valid.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_HII_DATABASE_GET_PACK_HANDLE)(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageListHandle,
- OUT EFI_HANDLE *DriverHandle
-);
-
-///
-/// Database manager for HII-related data structures.
-///
-struct _EFI_HII_DATABASE_PROTOCOL {
- EFI_HII_DATABASE_NEW_PACK NewPackageList;
- EFI_HII_DATABASE_REMOVE_PACK RemovePackageList;
- EFI_HII_DATABASE_UPDATE_PACK UpdatePackageList;
- EFI_HII_DATABASE_LIST_PACKS ListPackageLists;
- EFI_HII_DATABASE_EXPORT_PACKS ExportPackageLists;
- EFI_HII_DATABASE_REGISTER_NOTIFY RegisterPackageNotify;
- EFI_HII_DATABASE_UNREGISTER_NOTIFY UnregisterPackageNotify;
- EFI_HII_FIND_KEYBOARD_LAYOUTS FindKeyboardLayouts;
- EFI_HII_GET_KEYBOARD_LAYOUT GetKeyboardLayout;
- EFI_HII_SET_KEYBOARD_LAYOUT SetKeyboardLayout;
- EFI_HII_DATABASE_GET_PACK_HANDLE GetPackageListHandle;
-};
-
-extern EFI_GUID gEfiHiiDatabaseProtocolGuid;
-
-#endif
-
-