Author: imp
Date: Thu Apr 18 05:40:50 2019
New Revision: 346346
URL: https://svnweb.freebsd.org/changeset/base/346346

Log:
  Add efi_delenv
  
  Add an interface to remove / delete UEFI variables.

Modified:
  head/stand/efi/include/efilib.h
  head/stand/efi/libefi/efienv.c

Modified: head/stand/efi/include/efilib.h
==============================================================================
--- head/stand/efi/include/efilib.h     Thu Apr 18 05:37:18 2019        
(r346345)
+++ head/stand/efi/include/efilib.h     Thu Apr 18 05:40:50 2019        
(r346346)
@@ -122,6 +122,7 @@ void cpy16to8(const CHAR16 *, char *, size_t);
  * the loader setting / getting FreeBSD specific variables.
  */
 
+EFI_STATUS efi_delenv(EFI_GUID *guid, const char *varname);
 EFI_STATUS efi_freebsd_getenv(const char *v, void *data, __size_t *len);
 EFI_STATUS efi_getenv(EFI_GUID *g, const char *v, void *data, __size_t *len);
 EFI_STATUS efi_global_getenv(const char *v, void *data, __size_t *len);

Modified: head/stand/efi/libefi/efienv.c
==============================================================================
--- head/stand/efi/libefi/efienv.c      Thu Apr 18 05:37:18 2019        
(r346345)
+++ head/stand/efi/libefi/efienv.c      Thu Apr 18 05:40:50 2019        
(r346346)
@@ -103,3 +103,21 @@ efi_setenv_freebsd_wcs(const char *varname, CHAR16 *va
        return (rv);
 }
 
+/*
+ * efi_delenv -- deletes the specified env variable
+ */
+EFI_STATUS
+efi_delenv(EFI_GUID *guid, const char *name)
+{
+       CHAR16 *var;
+       size_t len;
+       EFI_STATUS rv;
+
+       var = NULL;
+       if (utf8_to_ucs2(name, &var, &len) != 0)
+               return (EFI_OUT_OF_RESOURCES);
+
+       rv = RS->SetVariable(var, guid, 0, 0, NULL);
+       free(var);
+       return rv;
+}
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to