efivars: introduce utf16_strncmp
Introduce utf16_strncmp which is used in the next patch. Semantics should be the same as the strncmp C function. Signed-off-by: Mike Waychison <mikew@google.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
Родитель
a294090839
Коммит
828aa1f00e
|
@ -169,6 +169,24 @@ utf16_strsize(efi_char16_t *data, unsigned long maxlength)
|
||||||
return utf16_strnlen(data, maxlength/sizeof(efi_char16_t)) * sizeof(efi_char16_t);
|
return utf16_strnlen(data, maxlength/sizeof(efi_char16_t)) * sizeof(efi_char16_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
utf16_strncmp(const efi_char16_t *a, const efi_char16_t *b, size_t len)
|
||||||
|
{
|
||||||
|
while (1) {
|
||||||
|
if (len == 0)
|
||||||
|
return 0;
|
||||||
|
if (*a < *b)
|
||||||
|
return -1;
|
||||||
|
if (*a > *b)
|
||||||
|
return 1;
|
||||||
|
if (*a == 0) /* implies *b == 0 */
|
||||||
|
return 0;
|
||||||
|
a++;
|
||||||
|
b++;
|
||||||
|
len--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static efi_status_t
|
static efi_status_t
|
||||||
get_var_data_locked(struct efivars *efivars, struct efi_variable *var)
|
get_var_data_locked(struct efivars *efivars, struct efi_variable *var)
|
||||||
{
|
{
|
||||||
|
|
Загрузка…
Ссылка в новой задаче