svn commit: r314925 - in head: lib/libefivar sys/boot/efi/include sys/boot/efi/libefi
Warner Losh
imp at FreeBSD.org
Thu Mar 9 00:24:03 UTC 2017
Author: imp
Date: Thu Mar 9 00:24:01 2017
New Revision: 314925
URL: https://svnweb.freebsd.org/changeset/base/314925
Log:
Share UCS2/UTF8 routines between boot loader and userland.
Move the UCS2 to UTF8 routines over into sys/boot/efi and have
libefivar grab them from there.
Sponsored by: Netflix
Added:
head/sys/boot/efi/include/efichar.h
- copied, changed from r314924, head/lib/libefivar/libefivar_int.h
head/sys/boot/efi/libefi/efichar.c
- copied, changed from r314924, head/lib/libefivar/libefivar.c
Deleted:
head/lib/libefivar/libefivar.c
head/lib/libefivar/libefivar_int.h
Modified:
head/lib/libefivar/Makefile
head/lib/libefivar/efivar.c
Modified: head/lib/libefivar/Makefile
==============================================================================
--- head/lib/libefivar/Makefile Wed Mar 8 23:58:10 2017 (r314924)
+++ head/lib/libefivar/Makefile Thu Mar 9 00:24:01 2017 (r314925)
@@ -26,13 +26,19 @@
.include <src.opts.mk>
+EFIBOOT=${SRCTOP}/sys/boot/efi
+
+.PATH: ${EFIBOOT}/libefi
+
PACKAGE=lib${LIB}
LIB= efivar
-SRCS= efivar.c libefivar.c
+SRCS= efivar.c efichar.c
INCS= efivar.h
SHLIB_MAJOR= 1
MAN= efivar.3
+CFLAGS+= -I${EFIBOOT}/include
+
MLINKS+=efivar.3 efi_set_variables_supported.3 \
efivar.3 efi_del_variable.3 \
efivar.3 efi_get_variable.3 \
Modified: head/lib/libefivar/efivar.c
==============================================================================
--- head/lib/libefivar/efivar.c Wed Mar 8 23:58:10 2017 (r314924)
+++ head/lib/libefivar/efivar.c Thu Mar 9 00:24:01 2017 (r314925)
@@ -36,8 +36,7 @@ __FBSDID("$FreeBSD$");
#include <stdlib.h>
#include <string.h>
-#include "efivar.h"
-#include "libefivar_int.h"
+#include "efichar.h"
static int efi_fd = -2;
@@ -174,7 +173,7 @@ efi_get_variable(efi_guid_t guid, const
return -1;
efi_var_reset(&var);
- rv = libefi_utf8_to_ucs2(name, &var.name, &var.namesize);
+ rv = utf8_to_ucs2(name, &var.name, &var.namesize);
if (rv != 0)
goto errout;
var.vendor = guid;
@@ -237,7 +236,7 @@ again:
*buf = 0;
/* GUID zeroed in var_reset */
} else {
- rv = libefi_utf8_to_ucs2(*name, &var.name, &size);
+ rv = utf8_to_ucs2(*name, &var.name, &size);
if (rv != 0)
goto errout;
var.vendor = **guid;
@@ -261,7 +260,7 @@ again:
if (rv == 0) {
*name = NULL; /* XXX */
var.name[var.namesize / sizeof(efi_char)] = 0; /* EFI doesn't NUL terminate */
- rv = libefi_ucs2_to_utf8(var.name, name);
+ rv = ucs2_to_utf8(var.name, name);
if (rv != 0)
goto errout;
retguid = var.vendor;
@@ -359,7 +358,7 @@ efi_set_variable(efi_guid_t guid, const
return -1;
efi_var_reset(&var);
- rv = libefi_utf8_to_ucs2(name, &var.name, &var.namesize);
+ rv = utf8_to_ucs2(name, &var.name, &var.namesize);
if (rv != 0)
goto errout;
var.vendor = guid;
Copied and modified: head/sys/boot/efi/include/efichar.h (from r314924, head/lib/libefivar/libefivar_int.h)
==============================================================================
--- head/lib/libefivar/libefivar_int.h Wed Mar 8 23:58:10 2017 (r314924, copy source)
+++ head/sys/boot/efi/include/efichar.h Thu Mar 9 00:24:01 2017 (r314925)
@@ -26,10 +26,10 @@
* $FreeBSD$
*/
-#ifndef _LIBEFI_INT_H_
-#define _LIBEFI_INT_H_
+#ifndef _BOOT_EFI_EFICHAR_H_
+#define _BOOT_EFI_EFICHAR_H_
-int libefi_ucs2_to_utf8(const efi_char *, char **);
-int libefi_utf8_to_ucs2(const char *, efi_char **, size_t *);
+int ucs2_to_utf8(const efi_char *, char **);
+int utf8_to_ucs2(const char *, efi_char **, size_t *);
-#endif /* _LIBEFI_INT_H_ */
+#endif /* _BOOT_EFI_EFICHAR_H_ */
Copied and modified: head/sys/boot/efi/libefi/efichar.c (from r314924, head/lib/libefivar/libefivar.c)
==============================================================================
--- head/lib/libefivar/libefivar.c Wed Mar 8 23:58:10 2017 (r314924, copy source)
+++ head/sys/boot/efi/libefi/efichar.c Thu Mar 9 00:24:01 2017 (r314925)
@@ -36,9 +36,7 @@ __FBSDID("$FreeBSD$");
#include <sys/efi.h>
#include <machine/efi.h>
-#include "libefivar_int.h"
-
-#include <stdio.h>
+#include "efichar.h"
/*
* If nm were converted to utf8, what what would strlen
@@ -65,7 +63,7 @@ utf8_len_of_ucs2(const efi_char *nm)
}
int
-libefi_ucs2_to_utf8(const efi_char *nm, char **name)
+ucs2_to_utf8(const efi_char *nm, char **name)
{
size_t len, sz;
efi_char c;
@@ -113,7 +111,7 @@ libefi_ucs2_to_utf8(const efi_char *nm,
}
int
-libefi_utf8_to_ucs2(const char *name, efi_char **nmp, size_t *len)
+utf8_to_ucs2(const char *name, efi_char **nmp, size_t *len)
{
efi_char *nm;
size_t sz;
More information about the svn-src-all
mailing list