From d2d5d32202f35b3d6b39eb350713e5d2efc9f2b4 Mon Sep 17 00:00:00 2001 From: Jozef Nagy Date: Sun, 31 Mar 2024 20:18:39 +0200 Subject: [PATCH] Implemented Unicode Collation Protocol --- efi.h | 1 + protocols/string_services.h | 70 +++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 protocols/string_services.h diff --git a/efi.h b/efi.h index fced12a..819788f 100644 --- a/efi.h +++ b/efi.h @@ -24,6 +24,7 @@ typedef struct { #include "protocols/loaded_image.h" #include "protocols/media_access.h" #include "protocols/pci_bus.h" +#include "protocols/string_services.h" #include "protocols/uefi_driver_model.h" #endif /* EFI_H */ diff --git a/protocols/string_services.h b/protocols/string_services.h new file mode 100644 index 0000000..9fc891d --- /dev/null +++ b/protocols/string_services.h @@ -0,0 +1,70 @@ +#ifndef EFI_PROTOCOLS_STRING_SERVICES_H +#define EFI_PROTOCOLS_STRING_SERVICES_H + +//// +// Unicode Collation Protocol +/// + +#define EFI_UNICODE_COLLATION_PROTOCOL2_GUID {0xa4c751fc,0x23ae,0x4c3e, {0x92,0xe9,0x49,0x64,0xcf,0x63,0xf3,0x49}} + +typedef struct _EFI_UNICODE_COLLATION_PROTOCOL EFI_UNICODE_COLLATION_PROTOCOL; + +typedef +INTN +(EFIAPI *EFI_UNICODE_COLLATION_STRICOLL)( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN CHAR16 *s1, + IN CHAR16 *s2 +); + +typedef +BOOLEAN +(EFIAPI *EFI_UNICODE_COLLATION_METAIMATCH)( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN CHAR16 *String, + IN CHAR16 *Pattern +); + +typedef +VOID +(EFIAPI *EFI_UNICODE_COLLATION_STRLWR)( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN OUT CHAR16 *String +); + +typedef +VOID +(EFIAPI *EFI_UNICODE_COLLATION_STRUPR)( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN OUT CHAR16 *String +); + +typedef +VOID +(EFIAPI *EFI_UNICODE_COLLATION_FATTOSTR)( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN UINTN FatSize, + IN CHAR8 *Fat, + OUT CHAR16 *String +); + +typedef +BOOLEAN +(EFIAPI *EFI_UNICODE_COLLATION_STRTOFAT)( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN CHAR16 *String, + IN UINTN FatSize, + OUT CHAR8 *Fat +); + +typedef struct _EFI_UNICODE_COLLATION_PROTOCOL { + EFI_UNICODE_COLLATION_STRICOLL StriColl; + EFI_UNICODE_COLLATION_METAIMATCH MetaiMatch; + EFI_UNICODE_COLLATION_STRLWR StrLwr; + EFI_UNICODE_COLLATION_STRUPR StrUpr; + EFI_UNICODE_COLLATION_FATTOSTR FatToStr; + EFI_UNICODE_COLLATION_STRTOFAT StrToFat; + CHAR8 *SupportedLanguages; +} EFI_UNICODE_COLLATION_PROTOCOL; + +#endif /* EFI_PROTOCOLS_STRING_SERVICES_H */