From: Jan Janssen Date: Tue, 24 May 2022 08:57:00 +0000 (+0200) Subject: boot: Add strsize8/16 X-Git-Tag: v252-rc1~892^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=96dc0dd387b37489c36145189a7fd8061ed44129;p=thirdparty%2Fsystemd.git boot: Add strsize8/16 --- diff --git a/src/boot/efi/efi-string.h b/src/boot/efi/efi-string.h index c4973a0d74d..9307810a5b9 100644 --- a/src/boot/efi/efi-string.h +++ b/src/boot/efi/efi-string.h @@ -11,6 +11,14 @@ size_t strnlen16(const char16_t *s, size_t n); size_t strlen8(const char *s); size_t strlen16(const char16_t *s); +static inline size_t strsize8(const char *s) { + return s ? (strlen8(s) + 1) * sizeof(*s) : 0; +} + +static inline size_t strsize16(const char16_t *s) { + return s ? (strlen16(s) + 1) * sizeof(*s) : 0; +} + void strtolower8(char *s); void strtolower16(char16_t *s); diff --git a/src/boot/efi/test-efi-string.c b/src/boot/efi/test-efi-string.c index 2ff8bef3f62..bc033d6fc24 100644 --- a/src/boot/efi/test-efi-string.c +++ b/src/boot/efi/test-efi-string.c @@ -41,6 +41,24 @@ TEST(strnlen16) { assert_se(strnlen16(u"12\0004", 5) == 2); } +TEST(strsize8) { + assert_se(strsize8(NULL) == 0); + assert_se(strsize8("") == 1); + assert_se(strsize8("1") == 2); + assert_se(strsize8("11") == 3); + assert_se(strsize8("123456789") == 10); + assert_se(strsize8("12\0004") == 3); +} + +TEST(strsize16) { + assert_se(strsize16(NULL) == 0); + assert_se(strsize16(u"") == 2); + assert_se(strsize16(u"1") == 4); + assert_se(strsize16(u"11") == 6); + assert_se(strsize16(u"123456789") == 20); + assert_se(strsize16(u"12\0004") == 6); +} + TEST(strtolower8) { char s[] = "\0001234abcDEF!\0zZ";