efiui.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef _EFI_UI_H
  2. #define _EFI_UI_H
  3. /*++
  4. Copyright (c) 200 Intel Corporation
  5. Module Name:
  6. EfiUi.h
  7. Abstract:
  8. Protocol used to build User Interface (UI) stuff.
  9. This protocol is just data. It is a multi dimentional array.
  10. For each string there is an array of UI_STRING_ENTRY. Each string
  11. is for a different language translation of the same string. The list
  12. is terminated by a NULL UiString. There can be any number of
  13. UI_STRING_ENTRY arrays. A NULL array terminates the list. A NULL array
  14. entry contains all zeros.
  15. Thus the shortest possible EFI_UI_PROTOCOL has three UI_STRING_ENTRY.
  16. The String, it's NULL terminator, and the NULL terminator for the entire
  17. thing.
  18. Revision History
  19. --*/
  20. #define EFI_UI_INTERFACE_PROTOCOL_GUID \
  21. { 0x32dd7981, 0x2d27, 0x11d4, {0xbc, 0x8b, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
  22. #define EFI_UI_PROTOCOL EFI_UI_INTERFACE_PROTOCOL_GUID
  23. typedef enum {
  24. UiDeviceString,
  25. UiVendorString,
  26. UiMaxString
  27. } UI_STRING_TYPE;
  28. typedef struct {
  29. ISO_639_2 *LangCode;
  30. CHAR16 *UiString;
  31. } UI_STRING_ENTRY;
  32. #define EFI_UI_INTERFACE_PROTOCOL_VERSION 0x00010000
  33. #define EFI_UI_VERSION EFI_UI_INTERFACE_PROTOCOL_VERSION
  34. typedef struct _EFI_UI_INTERFACE_PROTOCOL {
  35. UINT32 Version;
  36. UI_STRING_ENTRY *Entry;
  37. } EFI_UI_INTERFACE_PROTOCOL;
  38. typedef struct _EFI_UI_INTERFACE_PROTOCOL _UI_INTERFACE;
  39. typedef EFI_UI_INTERFACE_PROTOCOL UI_INTERFACE;
  40. #endif