summaryrefslogtreecommitdiff
path: root/util
AgeCommit message (Collapse)Author
10 hoursutil/nvmutil: remove unnecessary includeLeah Rowe
dirent.h is no longer needed, because i'm no longer making use of opendir() Signed-off-by: Leah Rowe <leah@libreboot.org>
10 hoursutil/nvmutil: tidy up write_gbeLeah Rowe
by handling close() in main, we can reduce the indendation in write_gbe and generally make it much easier to read. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 hoursutil/nvmutil: make the part check easier to readLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
11 hoursutil/nvmutil: fix style inconsistencyLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
11 hoursutil/nvmutil: use braces on nested ifsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
11 hoursutil/nvmutil: remove unnecessary global assignmentLeah Rowe
these integers are already initialised to zero. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 hoursutil/nvmutil: make swap() easier to understandLeah Rowe
the swap function reverses the byte order in memory, of a loaded GbE after after reading it, or before writing it. this is required (as detected) on big-endian CPUs, because GbE files store bytes in little-endian order. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 hoursutil/nvmutil: declare arg_cmd earlierLeah Rowe
set it after the argc check i don't like initialising a const after declaration, but it compiles, and it keeps with the style used in the rest of the code. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 hoursutil/nvmutil: don't make op a typedefLeah Rowe
it's not required Signed-off-by: Leah Rowe <leah@libreboot.org>
11 hoursutil/nvmutil: fix arg_cmd initialisationLeah Rowe
i declare it, using the 3rd argument, which might not be available if only the file name is declared. this fixes that. Signed-off-by: Leah Rowe <leah@libreboot.org>
11 hoursutil/nvmutil: remove COMMAND, MAC_ADDRESS, PARTNLeah Rowe
these macros serve no purpose except to obfuscate the code. it's actually cleaner just to refer directly to argv, and it reduces the chance of contamination later upon re-factoring. Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: rename op_t to opLeah Rowe
and op to ops typedefs not part of any base system e.g. openbsd base system, or e.g. the libc, should not have _t in them. this is a stylistic change, and does not alter any actual program behaviour. Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: make op a constLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: remove redundant commentLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: use const char in usageLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: tidy up set_cmdLeah Rowe
reduced indentation Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: split up set_cmdLeah Rowe
the second half of the function is mostly checking arguments, and has the hack to set cmd to cmd_setmac if cmd is unset (no command specified) but argc is above two. stylistically, this is more consistent. Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: tidy up final cmd check in set_cmdLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: tidy up rhexLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: reduce the size of rnum to 12Leah Rowe
we only need 12 bytes at a maximum Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: tidy up check_mac_separatorLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: rename openFiles to open_filesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvm: make variables and functions staticLeah Rowe
i don't intend for this to be used in a library Signed-off-by: Leah Rowe <leah@libreboot.org>
12 hoursutil/nvmutil: don't use spaces on err_ifLeah Rowe
this is inconsistent with the style in the rest of the code. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: use const for string literal in opLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: no designated initialisers in opLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: declare one prototype per lineLeah Rowe
in the same order that functions are declared Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: don't declare variables in for loopsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: use size_t on op for loopLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: make global variable names clearerLeah Rowe
each variable is declared on its own line. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: count the number of items in opLeah Rowe
don't hardcode it Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: set fname earlierLeah Rowe
this fixes the bug where if you specify an invalid command such as: ./nvm gbe brick 9 part 9 doesn't exist, but fname isn't yet set, here. same thing applys when running those pledge commands on openbsd. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: obey the 79-character ruleLeah Rowe
only 79 characters or less, per line. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: use spaces when calling err_ifLeah Rowe
this is separate from other function calls. err_if is used as though it was an if, where we always add a space. it's just a quirk of my coding style. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/nvmutil: consistent variable/function namingLeah Rowe
use the same naming scheme throughout Signed-off-by: Leah Rowe <leah@libreboot.org>
14 hoursutil/nvmutil: use the invert in goodChecksumLeah Rowe
this way, the correct part number is printed when an invalid part is being operated on, in cmd copy or swap. Signed-off-by: Leah Rowe <leah@libreboot.org>
14 hoursutil/nvmutil: readGbe: use inverted part in swapLeah Rowe
i overlooked this in a previous modification Signed-off-by: Leah Rowe <leah@libreboot.org>
14 hoursutil/nvmutil: clean up write_mac_partLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
14 hoursutil/nvmutil: clean up cmd_dumpLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
14 hoursutil/nvmutil: don't copy data in copy/swapLeah Rowe
instead, use a single integer, set to 1 if using these commands (otherwise set to 0) used as an XOR mask. use this to invert where data gets read. one quirk with this is that if a copy operation is performed from a part with a bad checksum, it's already done in advance, in memory, but then the check on the checksum in cmd_copy is now checking the other part, which will be all zeroes, so i invert that too; this means now when running cmd_copy, it'll complain about an invalid part, but the part number is inverted. it's a small price to pay, because this restores the previous performance optimisations but without being as unsafe. this is also true when doing the swap. Signed-off-by: Leah Rowe <leah@libreboot.org>
15 hoursutil/nvmutil: re-introduce do_read in readGbeLeah Rowe
lots of block devices use 4KB block size. it makes sense to have this optimisation here. i previously removed it, along with the one that only reads the NVM area - that one is still gone, because it was largely pointless. because of this modification returning, i also re-introduced the check in setWord against nvmPartModified - otherwise, for example, running cmd brick 0 would brick part 0 but then write all zeroes to part 1. Signed-off-by: Leah Rowe <leah@libreboot.org>
15 hoursutil/nvmutil: use read, not pread, on /dev/urandomLeah Rowe
we always read from offset zero, so use read Signed-off-by: Leah Rowe <leah@libreboot.org>
23 hoursutil/nvmutil: clean up checkdirLeah Rowe
those lines at the end are a hangover from the old opendir- based implementation. i also made the output more verbose in that first error check. Signed-off-by: Leah Rowe <leah@libreboot.org>
23 hoursutil/nvmutil: use separate st variable for urandomLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
23 hoursutil/nvmutil: cleaner directory checkingLeah Rowe
opendir allocates resources and causes a bunch of other error conditions which we need to catch. use of stat is more efficient here. Signed-off-by: Leah Rowe <leah@libreboot.org>
24 hoursutil/nvmutil: initialise fname to empty stringLeah Rowe
otherwise, early calls to err_if make use of a NULL string inside err() Signed-off-by: Leah Rowe <leah@libreboot.org>
24 hoursutil/nvmutil: fix code formatting on xopenLeah Rowe
it still had some leftovers from the old macro-style implementation. it still compiled, but this patch fixes the function properly. Signed-off-by: Leah Rowe <leah@libreboot.org>
24 hoursnvmutil: fix the swap functionLeah Rowe
irrelevant for most users, who are on little endian anyway, but i broke the swap function on big endian systems. this fixes it. the new function uses an intermediate variable instead of xor swapping, but i accidentally left some relics of of the old xor swaps in place. this fixes that. Signed-off-by: Leah Rowe <leah@libreboot.org>
24 hoursutil/nvmutil: use EXIT_FAILURE/SUCCESS for exitsLeah Rowe
this, in conjunction with the centralised exit scheme now used by nvmutil, means that we have portable exit status. notwithstanding the use of non-portable unix functions, and especially the use of non-standard err.c (which GNU and BSD libc implementations all have anyway, as does musl). this code should now run on essentially any computer with Linux or BSD on it. Signed-off-by: Leah Rowe <leah@libreboot.org>
24 hoursutil/nvmutil: make err_if a function, not a macroLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>