History log of /freebsd-current/usr.sbin/efivar/efivar.c
Revision Date Author Comments
# 1d386b48 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# d0f4e583 22-Feb-2022 Eric van Gyzen <vangyzen@FreeBSD.org>

efivar: handle error when reading --fromfile

The result of read() was stored in an unsigned variable, so the
test for a negative value would never work.

While I'm here, print a better error message for an empty file,
omitting the misleading errno message.

Reported by: Coverity
MFC after: 1 week
Sponsored by: Dell EMC Isilon


# 066b096d 09-Apr-2021 Warner Losh <imp@FreeBSD.org>

efivar: use bool for booleans

Rather than int flags we ++, use booleans for all command line args.
No functional change intended.

Reviewed by: markj@
Sponsored by: Netflix, Inc
Differential Revision: https://reviews.freebsd.org/D29621


# 0292a5c9 09-Apr-2021 Warner Losh <imp@FreeBSD.org>

efivar: Attempt to fix setting/printing/deleting EFI vars with '-' in their name

Due to how we're parsing UUIDs, we were disallowing setting, printing or
deleting any UEFI variable with a '-' in it when you attempted to do that
operation with the exact name (wildcard reporting was unaffected). Fix the
parser to loop over all the dashes in the name and only give up when all
possible matches are exhausted.

Reviewed by: markj@
Sponsored by: Netflix, Inc
Differential Revision: https://reviews.freebsd.org/D29620


# 3c0dcbfc 09-Apr-2021 Warner Losh <imp@FreeBSD.org>

efivar: Add --quiet to not report errors

Add -q/--quiet flag to the command line. With it, errors are not reported at
all. Instead nothing is printed and the exit code is non-zero.

Reviewed by: markj
Sponsored by: Netflix, Inc
Differential Revision: https://reviews.freebsd.org/D29619


# f9f298a2 25-Sep-2020 Warner Losh <imp@FreeBSD.org>

Comment out bogus command line entry

Linux implements -d to mean --print-decimal. We don't implement that
and use -d for --device-path. Note that.


# 52467047 04-Feb-2019 Warner Losh <imp@FreeBSD.org>

Regularize the Netflix copyright

Use recent best practices for Copyright form at the top of
the license:
1. Remove all the All Rights Reserved clauses on our stuff. Where we
piggybacked others, use a separate line to make things clear.
2. Use "Netflix, Inc." everywhere.
3. Use a single line for the copyright for grep friendliness.
4. Use date ranges in all places for our stuff.

Approved by: Netflix Legal (who gave me the form), adrian@ (pmc files)


# e08bb109 26-Oct-2018 Warner Losh <imp@FreeBSD.org>

Implenent --fromfile to read variable values when printing variables

So

./efivar --fromfile Boot0001.bin --print --load-option

will take the value from Boot0001.bin file and then decode it as if it
were a load-option. This is useful for debugging handling of such
variables that may be hanging the boot for some people.

Sponsored by: Netflix, Inc


# f4d8e495 27-Nov-2017 Ed Maste <emaste@FreeBSD.org>

efivar: add missing getopt 'u' option


# 831bec11 10-Nov-2017 Warner Losh <imp@FreeBSD.org>

Simplify the efivar interface a little.

We started out having Linux compatible libefivar interfaces. This was
in anticipation of porting the GPL'd efibootmgr to FreeBSD via a
port. However, since we need that functionality in the base, that port
isn't going to happened. It also appears that efivar is a private
library that's not used much outside a command line util and
efibootmgr. Reduce compatibility with the Linux version a little by
removing the mode parameter to efi_set_variable (which was unused on
FreeBSD, and not set to something useful in the code we'd
written). Also remove some efi error routines that were never
implemented and existed only to placate early GPL efibootmgr porting
experiments.

Suggested by: Matt Williams
Sponsored by: Netflix


# 5709a4b5 07-Sep-2017 Warner Losh <imp@FreeBSD.org>

Create efi utility printing routines

Split out asciidump, utf8dump, bindump, and hexdump into a separate
file efiutil.c. Implement new efi_print_load_option for printing out
the EFI_LOADER_OPTION data structure used to specify different options
to the UEFI boot manager.

Sponsored by: Netflix


# b0da7c79 31-Aug-2017 Warner Losh <imp@FreeBSD.org>

Add UCS2->UTF8 option.

Many UEFI variables are UCS2 strings (some NUL terminated, others
not). Add --utf8 (-u) to convert UCS2 strings to UTF8 before printing.

Sponsored by: Netflix


# 2f2f5c67 08-Mar-2017 Warner Losh <imp@FreeBSD.org>

Finish implementing -d/--device/--device-path flag to print variable
as if it were a device path.

Remove language about a=b syntax on the command line. This will not be
implemented due to its limited usefulness. UEFI variables are binary
blobs, on the whole, and a simple work around exists for
strings. Clarify that the new value of the variable is taken from
stdin. Update manual with history.

Sponsored by: Netflix


# f2d626ab 03-Mar-2017 Warner Losh <imp@FreeBSD.org>

If the guid specified can't be decoded as a GUID, try looking it up in
the known guid to name table.

Sponsored by: Netflix


# 9e4a51a8 03-Mar-2017 Warner Losh <imp@FreeBSD.org>

Implement -d / --device-path to print the ascii representation of a variable that contains a UEFI device path.

Sponsored by: Netflix


# 16445670 03-Mar-2017 Warner Losh <imp@FreeBSD.org>

Implement --guid/-g to print the known GUIDs as human readable. The
list of known GUIDs can be found with --list-guids.

Sponsored by: Netflix


# 4a110fbf 03-Mar-2017 Warner Losh <imp@FreeBSD.org>

Actually implement efivar -L

Sponsored by: Netflix


# 902af7c6 03-Mar-2017 Warner Losh <imp@FreeBSD.org>

Print just the variables when we're not printing the values.

Sponsored by: Netflix


# 35a419a2 24-Feb-2017 Warner Losh <imp@FreeBSD.org>

Exit when we can't print a variable.

Exit after printing a message on stderr when we can't get a
message. This is slightly different than linux, but keeps shell
scripts from thinking the value of the variable is the error message
and so is a net win.

Sponsored by: Netflix


# fe7d9f8e 15-Oct-2016 Warner Losh <imp@FreeBSD.org>

style(9) nit: space after |.


# 55ff82c0 15-Oct-2016 Warner Losh <imp@FreeBSD.org>

Implement -t. Use symbolic names in place of the magical 0x7.

Submitted by: ambrisko@


# b2a7ac48 13-Oct-2016 Warner Losh <imp@FreeBSD.org>

Fix building on i386 and arm. But 'public domain' headers on the files
with no creative content. Include "lost" changes from git:
o Use /dev/efi instead of /dev/efidev
o Remove redundant NULL checks.

Submitted by: kib@, dim@, zbb@, emaste@


# 4b844f8d 11-Oct-2016 Warner Losh <imp@FreeBSD.org>

Add efivar(1) to manipulate EFI variables. It uses a similar command
line interface to the Linux program, as well as adding a number of
useful features to make using it in shell scripts easier (since we
don't have a filesystem to fall back on interacting with).

Differential Revision: https://reviews.freebsd.org/D8128
Reviewed by: kib@, wblock@, Ganael Laplanche