libsefi/protocols/string_services.h
2024-05-27 21:45:04 +02:00

118 lines
3.3 KiB
C

#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
EFI_INTN
(EFIAPI *EFI_UNICODE_COLLATION_STRICOLL)(
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
IN CHAR16 *s1,
IN CHAR16 *s2
);
typedef
EFI_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 EFI_UINTN FatSize,
IN CHAR8 *Fat,
OUT CHAR16 *String
);
typedef
EFI_BOOLEAN
(EFIAPI *EFI_UNICODE_COLLATION_STRTOFAT)(
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
IN CHAR16 *String,
IN EFI_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;
////
// Regular Expression Protocol
///
#define EFI_REGULAR_EXPRESSION_PROTOCOL_GUID {0xb3f79d9a,0x436c,0xdc11, {0xb0,0x52,0xcd,0x85,0xdf,0x52,0x4c,0xe6}}
// Syntax types
#define EFI_REGEX_SYNTAX_TYPE_POSIX_EXTENDED_GUID {0x5f05b20f,0x4a56,0xc231, {0xfa,0x0b,0xa7,0xb1,0xf1,0x10,0x04,0x1d}}
#define EFI_REGEX_SYNTAX_TYPE_PERL_GUID {0x63e60a51,0x497d,0xd427, {0xc4,0xa5,0xb8,0xab,0xdc,0x3a,0xae,0xb6}}
#define EFI_REGEX_SYNTAX_TYPE_ECMA_262_GUID {0x9a473a4a,0x4ceb,0xb95a, 0x41, {0x5e,0x5b,0xa0,0xbc,0x63,0x9b,0x2e}}
#define EFI_REGEX_SYNTAX_TYPE_POSIX_EXTENDED_ASCII_GUID {0x3fd32128,0x4bb1,0xf632, {0xbe,0x4f,0xba,0xbf,0x85,0xc9,0x36,0x76}}
#define EFI_REGEX_SYNTAX_TYPE_PERL_ASCII_GUID {0x87dfb76d,0x4b58,0xef3a, {0xf7,0xc6,0x16,0xa4,0x2a,0x68,0x28,0x10}}
#define EFI_REGEX_SYNTAX_TYPE_ECMA_262_ASCII_GUID {0xb2284a2f,0x4491,0x6d9d, {0xea,0xb7,0x11,0xb0,0x67,0xd4,0x9b,0x9a}}
typedef struct _EFI_REGULAR_EXPRESSION_PROTOCOL EFI_REGULAR_EXPRESSION_PROTOCOL;
typedef EFI_GUID EFI_REGEX_SYNTAX_TYPE;
typedef struct {
CONST CHAR16 *CapturePtr;
EFI_UINTN Length;
} EFI_REGEX_CAPTURE;
typedef
EFI_STATUS
(EFIAPI *EFI_REGULAR_EXPRESSION_MATCH)(
IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
IN CHAR16 *String,
IN CHAR16 *Pattern,
IN EFI_REGEX_SYNTAX_TYPE *SyntaxType OPTIONAL,
OUT EFI_BOOLEAN *Result,
OUT EFI_REGEX_CAPTURE **Captures OPTIONAL,
OUT EFI_UINTN *CapturesCount
);
typedef
EFI_STATUS
(EFIAPI *EFI_REGULAR_EXPRESSION_GET_INFO)(
IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
IN OUT EFI_UINTN *RegExSyntaxTypeListSize,
OUT EFI_REGEX_SYNTAX_TYPE *RegExSyntaxTypeList
);
typedef struct _EFI_REGULAR_EXPRESSION_PROTOCOL {
EFI_REGULAR_EXPRESSION_MATCH MatchString;
EFI_REGULAR_EXPRESSION_GET_INFO GetInfo;
} EFI_REGULAR_EXPRESSION_PROTOCOL;
#endif /* EFI_PROTOCOLS_STRING_SERVICES_H */