2008-04-08 06:46:45 +02:00
|
|
|
/** @file
|
|
|
|
Head file for Unicode Collation Protocol (English)
|
2007-07-16 07:48:11 +02:00
|
|
|
|
2008-04-08 06:46:45 +02:00
|
|
|
Copyright (c) 2006 - 2008, Intel Corporation. <BR>
|
2007-07-16 07:48:11 +02:00
|
|
|
All rights reserved. This program and the accompanying materials
|
|
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
|
|
which 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.
|
|
|
|
|
2008-04-08 06:46:45 +02:00
|
|
|
**/
|
2007-07-16 07:48:11 +02:00
|
|
|
|
2008-05-14 08:07:07 +02:00
|
|
|
#ifndef _UNICODE_COLLATION_ENG_H_
|
|
|
|
#define _UNICODE_COLLATION_ENG_H_
|
2007-07-16 07:48:11 +02:00
|
|
|
|
|
|
|
|
2007-07-20 08:10:09 +02:00
|
|
|
|
2007-07-16 07:48:11 +02:00
|
|
|
#include <Uefi.h>
|
|
|
|
|
|
|
|
#include <Protocol/UnicodeCollation.h>
|
2007-07-20 08:10:09 +02:00
|
|
|
|
2007-07-16 07:48:11 +02:00
|
|
|
#include <Library/DebugLib.h>
|
|
|
|
#include <Library/UefiDriverEntryPoint.h>
|
|
|
|
#include <Library/UefiBootServicesTableLib.h>
|
2007-10-09 05:11:08 +02:00
|
|
|
#include <Library/PcdLib.h>
|
2007-07-16 07:48:11 +02:00
|
|
|
|
|
|
|
//
|
2008-12-23 17:20:43 +01:00
|
|
|
// Bit mask to indicate the validity of character in FAT file name.
|
2007-07-16 07:48:11 +02:00
|
|
|
//
|
|
|
|
#define CHAR_FAT_VALID 0x01
|
|
|
|
|
2008-12-23 17:20:43 +01:00
|
|
|
//
|
|
|
|
// Maximum FAT table size.
|
|
|
|
//
|
|
|
|
#define MAP_TABLE_SIZE 0x100
|
|
|
|
|
|
|
|
//
|
|
|
|
// Macro to map character a to upper case.
|
|
|
|
//
|
|
|
|
#define TO_UPPER(a) (CHAR16) ((a) <= 0xFF ? mEngUpperMap[a] : (a))
|
|
|
|
|
|
|
|
//
|
|
|
|
// Macro to map character a to lower case.
|
|
|
|
//
|
|
|
|
#define TO_LOWER(a) (CHAR16) ((a) <= 0xFF ? mEngLowerMap[a] : (a))
|
2007-07-16 07:48:11 +02:00
|
|
|
|
|
|
|
//
|
|
|
|
// Prototypes
|
|
|
|
//
|
2008-05-08 05:10:39 +02:00
|
|
|
/**
|
|
|
|
Performs a case-insensitive comparison of two Null-terminated Unicode
|
|
|
|
strings.
|
|
|
|
|
|
|
|
@param This Protocol instance pointer.
|
|
|
|
@param Str1 A pointer to a Null-terminated Unicode string.
|
|
|
|
@param Str2 A pointer to a Null-terminated Unicode string.
|
|
|
|
|
|
|
|
@retval 0 Str1 is equivalent to Str2
|
|
|
|
@retval > 0 Str1 is lexically greater than Str2
|
|
|
|
@retval < 0 Str1 is lexically less than Str2
|
|
|
|
|
|
|
|
**/
|
2007-07-16 07:48:11 +02:00
|
|
|
INTN
|
|
|
|
EFIAPI
|
|
|
|
EngStriColl (
|
2008-05-14 08:07:07 +02:00
|
|
|
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
|
|
|
|
IN CHAR16 *Str1,
|
|
|
|
IN CHAR16 *Str2
|
|
|
|
);
|
2007-07-16 07:48:11 +02:00
|
|
|
|
2008-05-08 05:10:39 +02:00
|
|
|
/**
|
|
|
|
Performs a case-insensitive comparison of a Null-terminated Unicode
|
|
|
|
pattern string and a Null-terminated Unicode string.
|
|
|
|
|
|
|
|
@param This Protocol instance pointer.
|
|
|
|
@param String A pointer to a Null-terminated Unicode string.
|
|
|
|
@param Pattern A pointer to a Null-terminated Unicode pattern string.
|
|
|
|
|
|
|
|
@retval TRUE Pattern was found in String.
|
|
|
|
@retval FALSE Pattern was not found in String.
|
|
|
|
|
|
|
|
**/
|
2007-07-16 07:48:11 +02:00
|
|
|
BOOLEAN
|
|
|
|
EFIAPI
|
|
|
|
EngMetaiMatch (
|
2008-05-14 08:07:07 +02:00
|
|
|
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
|
|
|
|
IN CHAR16 *String,
|
|
|
|
IN CHAR16 *Pattern
|
|
|
|
);
|
2007-07-16 07:48:11 +02:00
|
|
|
|
2008-05-08 05:10:39 +02:00
|
|
|
/**
|
|
|
|
Converts all the Unicode characters in a Null-terminated Unicode string to
|
|
|
|
lower case Unicode characters.
|
|
|
|
|
|
|
|
@param This Protocol instance pointer.
|
|
|
|
@param Str A pointer to a Null-terminated Unicode string.
|
|
|
|
|
|
|
|
**/
|
2007-07-16 07:48:11 +02:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
EngStrLwr (
|
2008-05-14 08:07:07 +02:00
|
|
|
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
|
|
|
|
IN OUT CHAR16 *Str
|
|
|
|
);
|
2007-07-16 07:48:11 +02:00
|
|
|
|
2008-05-08 05:10:39 +02:00
|
|
|
/**
|
|
|
|
Converts all the Unicode characters in a Null-terminated Unicode string to upper
|
|
|
|
case Unicode characters.
|
|
|
|
|
|
|
|
@param This Protocol instance pointer.
|
|
|
|
@param Str A pointer to a Null-terminated Unicode string.
|
|
|
|
|
|
|
|
**/
|
2007-07-16 07:48:11 +02:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
EngStrUpr (
|
2008-05-14 08:07:07 +02:00
|
|
|
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
|
|
|
|
IN OUT CHAR16 *Str
|
|
|
|
);
|
2007-07-16 07:48:11 +02:00
|
|
|
|
2008-05-08 05:10:39 +02:00
|
|
|
/**
|
|
|
|
Converts an 8.3 FAT file name in an OEM character set to a Null-terminated
|
|
|
|
Unicode string.
|
|
|
|
|
|
|
|
@param This Protocol instance pointer.
|
|
|
|
@param FatSize The size of the string Fat in bytes.
|
|
|
|
@param Fat A pointer to a Null-terminated string that contains an 8.3 file
|
|
|
|
name using an OEM character set.
|
|
|
|
@param String A pointer to a Null-terminated Unicode string. The string must
|
|
|
|
be preallocated to hold FatSize Unicode characters.
|
|
|
|
|
|
|
|
**/
|
2007-07-16 07:48:11 +02:00
|
|
|
VOID
|
|
|
|
EFIAPI
|
|
|
|
EngFatToStr (
|
2008-05-14 08:07:07 +02:00
|
|
|
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
|
|
|
|
IN UINTN FatSize,
|
|
|
|
IN CHAR8 *Fat,
|
|
|
|
OUT CHAR16 *String
|
|
|
|
);
|
2007-07-16 07:48:11 +02:00
|
|
|
|
2008-05-08 05:10:39 +02:00
|
|
|
/**
|
|
|
|
Converts a Null-terminated Unicode string to legal characters in a FAT
|
|
|
|
filename using an OEM character set.
|
|
|
|
|
|
|
|
@param This Protocol instance pointer.
|
|
|
|
@param String A pointer to a Null-terminated Unicode string. The string must
|
|
|
|
be preallocated to hold FatSize Unicode characters.
|
|
|
|
@param FatSize The size of the string Fat in bytes.
|
|
|
|
@param Fat A pointer to a Null-terminated string that contains an 8.3 file
|
|
|
|
name using an OEM character set.
|
|
|
|
|
|
|
|
@retval TRUE Fat is a Long File Name
|
|
|
|
@retval FALSE Fat is an 8.3 file name
|
|
|
|
|
|
|
|
**/
|
2007-07-16 07:48:11 +02:00
|
|
|
BOOLEAN
|
|
|
|
EFIAPI
|
|
|
|
EngStrToFat (
|
2008-05-14 08:07:07 +02:00
|
|
|
IN EFI_UNICODE_COLLATION_PROTOCOL *This,
|
|
|
|
IN CHAR16 *String,
|
|
|
|
IN UINTN FatSize,
|
|
|
|
OUT CHAR8 *Fat
|
|
|
|
);
|
2007-07-16 07:48:11 +02:00
|
|
|
|
2008-05-08 05:10:39 +02:00
|
|
|
/**
|
|
|
|
The user Entry Point for English module.
|
|
|
|
|
|
|
|
This function initializes unicode character mapping and then installs Unicode
|
|
|
|
Collation & Unicode Collation 2 Protocols based on the feature flags.
|
|
|
|
|
|
|
|
@param ImageHandle The firmware allocated handle for the EFI image.
|
|
|
|
@param SystemTable A pointer to the EFI System Table.
|
|
|
|
|
|
|
|
@retval EFI_SUCCESS The entry point is executed successfully.
|
|
|
|
@retval other Some error occurs when executing this entry point.
|
|
|
|
|
|
|
|
**/
|
2007-07-16 07:48:11 +02:00
|
|
|
EFI_STATUS
|
|
|
|
EFIAPI
|
|
|
|
InitializeUnicodeCollationEng (
|
|
|
|
IN EFI_HANDLE ImageHandle,
|
|
|
|
IN EFI_SYSTEM_TABLE *SystemTable
|
2008-05-14 08:07:07 +02:00
|
|
|
);
|
2007-07-16 07:48:11 +02:00
|
|
|
|
|
|
|
#endif
|
2008-05-14 08:07:07 +02:00
|
|
|
|