efi/libstub: Make efi_printk() input argument const char*

To help the compiler figure out that efi_printk() will not modify
the string it is given, make the input argument type const char*.

While at it, simplify the implementation as well.

Suggested-by: Joe Perches <joe@perches.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
Ard Biesheuvel 2020-05-05 10:27:18 +02:00
parent f77767ed5f
commit 0b8d9fc995
2 changed files with 8 additions and 13 deletions

View File

@ -26,20 +26,15 @@ bool __pure __efi_soft_reserve_enabled(void)
return !efi_nosoftreserve;
}
void efi_printk(char *str)
void efi_printk(const char *str)
{
char *s8;
while (*str) {
efi_char16_t ch[] = { *str++, L'\0' };
for (s8 = str; *s8; s8++) {
efi_char16_t ch[2] = { 0 };
ch[0] = *s8;
if (*s8 == '\n') {
efi_char16_t nl[2] = { '\r', 0 };
efi_char16_printk(nl);
}
efi_char16_printk(ch);
if (ch[0] == L'\n')
efi_char16_printk(L"\r\n");
else
efi_char16_printk(ch);
}
}

View File

@ -625,7 +625,7 @@ efi_status_t check_platform_features(void);
void *get_efi_config_table(efi_guid_t guid);
void efi_printk(char *str);
void efi_printk(const char *str);
void efi_free(unsigned long size, unsigned long addr);