-/** @file
- This section defines the Regular Expression Protocol. This protocol isused to match
- Unicode strings against Regular Expression patterns.
-
-Copyright (c) 2015, 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 __REGULAR_EXPRESSION_PROTOCOL_H__
-#define __REGULAR_EXPRESSION_PROTOCOL_H__
-
-#define EFI_REGULAR_EXPRESSION_PROTOCOL_GUID \
- { \
- 0xB3F79D9A, 0x436C, 0xDC11, {0xB0, 0x52, 0xCD, 0x85, 0xDF, 0x52, 0x4C, 0xE6 } \
- }
-
-#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 } \
- }
-
-typedef struct _EFI_REGULAR_EXPRESSION_PROTOCOL EFI_REGULAR_EXPRESSION_PROTOCOL;
-
-
-typedef struct {
- CONST CHAR16 *CapturePtr; // Pointer to the start of the captured sub-expression
- // within matched String.
-
- UINTN Length; // Length of captured sub-expression.
-} EFI_REGEX_CAPTURE;
-
-typedef EFI_GUID EFI_REGEX_SYNTAX_TYPE;
-
-//
-// Protocol member functions
-//
-/**
- Returns information about the regular expression syntax types supported
- by the implementation.
-
- This A pointer to the EFI_REGULAR_EXPRESSION_PROTOCOL
- instance.
-
- RegExSyntaxTypeListSize On input, the size in bytes of RegExSyntaxTypeList.
- On output with a return code of EFI_SUCCESS, the
- size in bytes of the data returned in
- RegExSyntaxTypeList. On output with a return code
- of EFI_BUFFER_TOO_SMALL, the size of
- RegExSyntaxTypeListrequired to obtain the list.
-
- RegExSyntaxTypeList A caller-allocated memory buffer filled by the
- driver with one EFI_REGEX_SYNTAX_TYPEelement
- for each supported Regular expression syntax
- type. The list must not change across multiple
- calls to the same driver. The first syntax
- type in the list is the default type for the
- driver.
-
- @retval EFI_SUCCESS The regular expression syntax types list
- was returned successfully.
- @retval EFI_UNSUPPORTED The service is not supported by this driver.
- @retval EFI_DEVICE_ERROR The list of syntax types could not be
- retrieved due to a hardware or firmware error.
- @retval EFI_BUFFER_TOO_SMALL The buffer RegExSyntaxTypeList is too small
- to hold the result.
- @retval EFI_INVALID_PARAMETER RegExSyntaxTypeListSize is NULL
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_REGULAR_EXPRESSION_GET_INFO) (
- IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
- IN OUT UINTN *RegExSyntaxTypeListSize,
- OUT EFI_REGEX_SYNTAX_TYPE *RegExSyntaxTypeList
- );
-
-/**
- Checks if the input string matches to the regular expression pattern.
-
- This A pointer to the EFI_REGULAR_EXPRESSION_PROTOCOL instance.
- Type EFI_REGULAR_EXPRESSION_PROTOCOL is defined in Section
- XYZ.
-
- String A pointer to a NULL terminated string to match against the
- regular expression string specified by Pattern.
-
- Pattern A pointer to a NULL terminated string that represents the
- regular expression.
-
- SyntaxType A pointer to the EFI_REGEX_SYNTAX_TYPE that identifies the
- regular expression syntax type to use. May be NULL in which
- case the function will use its default regular expression
- syntax type.
-
- Result On return, points to TRUE if String fully matches against
- the regular expression Pattern using the regular expression
- SyntaxType. Otherwise, points to FALSE.
-
- Captures A Pointer to an array of EFI_REGEX_CAPTURE objects to receive
- the captured groups in the event of a match. The full
- sub-string match is put in Captures[0], and the results of N
- capturing groups are put in Captures[1:N]. If Captures is
- NULL, then this function doesn't allocate the memory for the
- array and does not build up the elements. It only returns the
- number of matching patterns in CapturesCount. If Captures is
- not NULL, this function returns a pointer to an array and
- builds up the elements in the array. CapturesCount is also
- updated to the number of matching patterns found. It is the
- caller's responsibility to free the memory pool in Captures
- and in each CapturePtr in the array elements.
-
- CapturesCount On output, CapturesCount is the number of matching patterns
- found in String. Zero means no matching patterns were found
- in the string.
-
- @retval EFI_SUCCESS The regular expression string matching
- completed successfully.
- @retval EFI_UNSUPPORTED The regular expression syntax specified by
- SyntaxTypeis not supported by this driver.
- @retval EFI_DEVICE_ERROR The regular expression string matching
- failed due to a hardware or firmware error.
- @retval EFI_INVALID_PARAMETER String, Pattern, Result, or CapturesCountis
- NULL.
-
-**/
-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 BOOLEAN *Result,
- OUT EFI_REGEX_CAPTURE **Captures, OPTIONAL
- OUT UINTN *CapturesCount
- );
-
-struct _EFI_REGULAR_EXPRESSION_PROTOCOL {
- EFI_REGULAR_EXPRESSION_MATCH MatchString;
- EFI_REGULAR_EXPRESSION_GET_INFO GetInfo;
-} ;
-
-extern EFI_GUID gEfiRegularExpressionProtocolGuid;
-
-//
-// For regular expression rules specified in the POSIX Extended Regular
-// Expression (ERE) Syntax:
-//
-extern EFI_GUID gEfiRegexSyntaxTypePosixExtendedGuid;
-
-//
-// For regular expression rules specifiedin the ECMA 262 Specification
-//
-extern EFI_GUID gEfiRegexSyntaxTypeEcma262Guid;
-
-//
-// For regular expression rules specified in the Perl standard:
-//
-extern EFI_GUID gEfiRegexSyntaxTypePerlGuid;
-
-#endif
+/** @file\r
+ This section defines the Regular Expression Protocol. This protocol isused to match\r
+ Unicode strings against Regular Expression patterns.\r
+\r
+Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under\r
+the terms and conditions of the BSD License that accompanies this distribution.\r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php.\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef __REGULAR_EXPRESSION_PROTOCOL_H__\r
+#define __REGULAR_EXPRESSION_PROTOCOL_H__\r
+\r
+#define EFI_REGULAR_EXPRESSION_PROTOCOL_GUID \\r
+ { \\r
+ 0xB3F79D9A, 0x436C, 0xDC11, {0xB0, 0x52, 0xCD, 0x85, 0xDF, 0x52, 0x4C, 0xE6 } \\r
+ }\r
+\r
+#define EFI_REGEX_SYNTAX_TYPE_POSIX_EXTENDED_GUID \\r
+ { \\r
+ 0x5F05B20F, 0x4A56, 0xC231, {0xFA, 0x0B, 0xA7, 0xB1, 0xF1, 0x10, 0x04, 0x1D } \\r
+ }\r
+\r
+#define EFI_REGEX_SYNTAX_TYPE_PERL_GUID \\r
+ { \\r
+ 0x63E60A51, 0x497D, 0xD427, {0xC4, 0xA5, 0xB8, 0xAB, 0xDC, 0x3A, 0xAE, 0xB6 } \\r
+ }\r
+\r
+#define EFI_REGEX_SYNTAX_TYPE_ECMA_262_GUID \\r
+ { \\r
+ 0x9A473A4A, 0x4CEB, 0xB95A, {0x41, 0x5E, 0x5B, 0xA0, 0xBC, 0x63, 0x9B, 0x2E } \\r
+ }\r
+\r
+typedef struct _EFI_REGULAR_EXPRESSION_PROTOCOL EFI_REGULAR_EXPRESSION_PROTOCOL;\r
+\r
+\r
+typedef struct {\r
+ CONST CHAR16 *CapturePtr; // Pointer to the start of the captured sub-expression\r
+ // within matched String.\r
+\r
+ UINTN Length; // Length of captured sub-expression.\r
+} EFI_REGEX_CAPTURE;\r
+\r
+typedef EFI_GUID EFI_REGEX_SYNTAX_TYPE;\r
+\r
+//\r
+// Protocol member functions\r
+//\r
+/**\r
+ Returns information about the regular expression syntax types supported\r
+ by the implementation.\r
+\r
+ This A pointer to the EFI_REGULAR_EXPRESSION_PROTOCOL\r
+ instance.\r
+\r
+ RegExSyntaxTypeListSize On input, the size in bytes of RegExSyntaxTypeList.\r
+ On output with a return code of EFI_SUCCESS, the\r
+ size in bytes of the data returned in\r
+ RegExSyntaxTypeList. On output with a return code\r
+ of EFI_BUFFER_TOO_SMALL, the size of\r
+ RegExSyntaxTypeListrequired to obtain the list.\r
+\r
+ RegExSyntaxTypeList A caller-allocated memory buffer filled by the\r
+ driver with one EFI_REGEX_SYNTAX_TYPEelement\r
+ for each supported Regular expression syntax\r
+ type. The list must not change across multiple\r
+ calls to the same driver. The first syntax\r
+ type in the list is the default type for the\r
+ driver.\r
+\r
+ @retval EFI_SUCCESS The regular expression syntax types list\r
+ was returned successfully.\r
+ @retval EFI_UNSUPPORTED The service is not supported by this driver.\r
+ @retval EFI_DEVICE_ERROR The list of syntax types could not be\r
+ retrieved due to a hardware or firmware error.\r
+ @retval EFI_BUFFER_TOO_SMALL The buffer RegExSyntaxTypeList is too small\r
+ to hold the result.\r
+ @retval EFI_INVALID_PARAMETER RegExSyntaxTypeListSize is NULL\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_REGULAR_EXPRESSION_GET_INFO) (\r
+ IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,\r
+ IN OUT UINTN *RegExSyntaxTypeListSize,\r
+ OUT EFI_REGEX_SYNTAX_TYPE *RegExSyntaxTypeList\r
+ );\r
+\r
+/**\r
+ Checks if the input string matches to the regular expression pattern.\r
+\r
+ This A pointer to the EFI_REGULAR_EXPRESSION_PROTOCOL instance.\r
+ Type EFI_REGULAR_EXPRESSION_PROTOCOL is defined in Section\r
+ XYZ.\r
+\r
+ String A pointer to a NULL terminated string to match against the\r
+ regular expression string specified by Pattern.\r
+\r
+ Pattern A pointer to a NULL terminated string that represents the\r
+ regular expression.\r
+\r
+ SyntaxType A pointer to the EFI_REGEX_SYNTAX_TYPE that identifies the\r
+ regular expression syntax type to use. May be NULL in which\r
+ case the function will use its default regular expression\r
+ syntax type.\r
+\r
+ Result On return, points to TRUE if String fully matches against\r
+ the regular expression Pattern using the regular expression\r
+ SyntaxType. Otherwise, points to FALSE.\r
+\r
+ Captures A Pointer to an array of EFI_REGEX_CAPTURE objects to receive\r
+ the captured groups in the event of a match. The full\r
+ sub-string match is put in Captures[0], and the results of N\r
+ capturing groups are put in Captures[1:N]. If Captures is\r
+ NULL, then this function doesn't allocate the memory for the\r
+ array and does not build up the elements. It only returns the\r
+ number of matching patterns in CapturesCount. If Captures is\r
+ not NULL, this function returns a pointer to an array and\r
+ builds up the elements in the array. CapturesCount is also\r
+ updated to the number of matching patterns found. It is the\r
+ caller's responsibility to free the memory pool in Captures\r
+ and in each CapturePtr in the array elements.\r
+\r
+ CapturesCount On output, CapturesCount is the number of matching patterns\r
+ found in String. Zero means no matching patterns were found\r
+ in the string.\r
+\r
+ @retval EFI_SUCCESS The regular expression string matching\r
+ completed successfully.\r
+ @retval EFI_UNSUPPORTED The regular expression syntax specified by\r
+ SyntaxTypeis not supported by this driver.\r
+ @retval EFI_DEVICE_ERROR The regular expression string matching\r
+ failed due to a hardware or firmware error.\r
+ @retval EFI_INVALID_PARAMETER String, Pattern, Result, or CapturesCountis\r
+ NULL.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_REGULAR_EXPRESSION_MATCH) (\r
+ IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,\r
+ IN CHAR16 *String,\r
+ IN CHAR16 *Pattern,\r
+ IN EFI_REGEX_SYNTAX_TYPE *SyntaxType, OPTIONAL\r
+ OUT BOOLEAN *Result,\r
+ OUT EFI_REGEX_CAPTURE **Captures, OPTIONAL\r
+ OUT UINTN *CapturesCount\r
+ );\r
+\r
+struct _EFI_REGULAR_EXPRESSION_PROTOCOL {\r
+ EFI_REGULAR_EXPRESSION_MATCH MatchString;\r
+ EFI_REGULAR_EXPRESSION_GET_INFO GetInfo;\r
+} ;\r
+\r
+extern EFI_GUID gEfiRegularExpressionProtocolGuid;\r
+\r
+//\r
+// For regular expression rules specified in the POSIX Extended Regular\r
+// Expression (ERE) Syntax:\r
+//\r
+extern EFI_GUID gEfiRegexSyntaxTypePosixExtendedGuid;\r
+\r
+//\r
+// For regular expression rules specifiedin the ECMA 262 Specification\r
+//\r
+extern EFI_GUID gEfiRegexSyntaxTypeEcma262Guid;\r
+\r
+//\r
+// For regular expression rules specified in the Perl standard:\r
+//\r
+extern EFI_GUID gEfiRegexSyntaxTypePerlGuid;\r
+\r
+#endif\r