mirror of
https://git.proxmox.com/git/efi-boot-shim
synced 2025-07-15 07:00:04 +00:00
67 lines
1.2 KiB
C
67 lines
1.2 KiB
C
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
/*
|
|
* ucs2.h - UCS-2 string functions
|
|
* Copyright Red Hat, Inc
|
|
* Copyright Peter Jones <pjones@redhat.com>
|
|
*/
|
|
|
|
#ifndef SHIM_UCS2_H
|
|
#define SHIM_UCS2_H
|
|
|
|
#include <stdbool.h>
|
|
|
|
static inline INTN
|
|
__attribute__((unused))
|
|
StrCaseCmp(CHAR16 *s0, CHAR16 *s1)
|
|
{
|
|
CHAR16 c0, c1;
|
|
while (1) {
|
|
if (*s0 == L'\0' || *s1 == L'\0')
|
|
return *s1 - *s0;
|
|
c0 = (*s0 >= L'a' && *s0 <= L'z') ? *s0 - 32 : *s0;
|
|
c1 = (*s1 >= L'a' && *s1 <= L'z') ? *s1 - 32 : *s1;
|
|
if (c0 != c1)
|
|
return c1 - c0;
|
|
s0++;
|
|
s1++;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
static inline INTN
|
|
__attribute__((unused))
|
|
StrnCaseCmp(CHAR16 *s0, CHAR16 *s1, int n)
|
|
{
|
|
CHAR16 c0, c1;
|
|
int x = 0;
|
|
while (n > x++) {
|
|
if (*s0 == L'\0' || *s1 == L'\0')
|
|
return *s1 - *s0;
|
|
c0 = (*s0 >= L'a' && *s0 <= L'z') ? *s0 - 32 : *s0;
|
|
c1 = (*s1 >= L'a' && *s1 <= L'z') ? *s1 - 32 : *s1;
|
|
if (c0 != c1)
|
|
return c1 - c0;
|
|
s0++;
|
|
s1++;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
static inline UINTN
|
|
__attribute__((unused))
|
|
StrCSpn(const CHAR16 *s, const CHAR16 *reject)
|
|
{
|
|
UINTN ret;
|
|
|
|
for (ret = 0; s[ret] != L'\0'; ret++) {
|
|
int i;
|
|
for (i = 0; reject[i] != L'\0'; i++) {
|
|
if (reject[i] == s[ret])
|
|
return ret;
|
|
}
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
#endif /* SHIM_UCS2_H */
|