summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
23 hoursspkmodem-recv: remove pedantic flagLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
23 hoursspkmodem-recv: remove buggy errno usageLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
23 hoursnvmutil: fix castLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
23 hoursutil/nvmutil: fix errno zero on exit returnLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
23 hoursnvmutil: fix bad return status on errorLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
23 hoursnvmutil: use uintptr for gbe. check regular file.Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
31 hoursswitch spkmodem_decode back to spkmodem_recvLeah Rowe
this version is more tested. i'll merge _decode back once it's better tested. it contains a lot of invasive changes, whereas recv is much closer to the original GNU code that i inherited, that i also know works quite well. Signed-off-by: Leah Rowe <leah@libreboot.org>
31 hoursdisable lbutils on non-linux systemsLeah Rowe
i should probably test musl as well, on linux libreboot-utils is stable on the glibc systems i tested with linux. it is quite buggy on bsd systems. it's irresponsible to let users compile this until i've properly tested the code. putting this error in for now. i made lbmk use the old nvmutil version for now, and retro fitted several improvements to i/o there from lbutils, changes that i know are stable on bsd. Signed-off-by: Leah Rowe <leah@libreboot.org>
31 hoursnvmutil: don't rely on errno for errorsLeah Rowe
adapted from the changes made in lbutils i'm just patching this crappy code. lbutils doesn't work properly on openbsd yet, and i just want nvmutil to work properly there, so i'm using the old code for now, on openbsd. Signed-off-by: Leah Rowe <leah@libreboot.org>
33 hoursnvmutil-standalone: add eintr safetyLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
33 hoursadd gitignoreLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
36 hoursfix make fileLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
36 hoursnope. use nvmutil from libreboot 26.01Leah Rowe
guaranteed not to break on openbsd (tm) Signed-off-by: Leah Rowe <leah@libreboot.org>
36 hoursremove pledge in nvmutilLeah Rowe
don't fix it for now. this version was buggy. i'm only using nvmutil for now, until i properly fix all the memory issues in lbutils on openbsd. Signed-off-by: Leah Rowe <leah@libreboot.org>
37 hoursfix nvmutil Makefile for openbsdLeah Rowe
same fix i did for lbutils the nvmutil version is the same one used before lbutils was introduced. just before. Signed-off-by: Leah Rowe <leah@libreboot.org>
37 hoursuse old nvmutil for now, in lbmkLeah Rowe
i'm trying to make nvmutil work on openbsd. the new code in lbutils is a bit buggy, likely somewhere in mkhtemp. i'm still debugging it. Signed-off-by: Leah Rowe <leah@libreboot.org>
44 hoursnow mkhtemp works on openbsd!Leah Rowe
yay Signed-off-by: Leah Rowe <leah@libreboot.org>
44 hourslbutils: don't use stack memory for path stringsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
44 hoursfurther makefile cleanup in lbutilsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
44 hourslbutils: remove xpledge/xunveil, just call them directLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
44 hoursfix bsdLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
44 hourstidy up lbutils makefileLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
12 dayslbutils/mkhtemp: correct return value checkLeah Rowe
check if above or equal to zero, except where counterindicated. this is the usual way on unix, where a command returns -1 on error, or above/equal to zero on success. Signed-off-by: Leah Rowe <leah@libreboot.org>
12 dayslbutils/mkhtemp: use openat_on_eintrLeah Rowe
missing EINTR handling fixed Signed-off-by: Leah Rowe <leah@libreboot.org>
12 dayslbutils/file: only override EEXIST if not setLeah Rowe
in the linux fast path, we are universally overriding errno with EEXIST, which pollutes errno in case of debugging under fault condition. this is inconsistent with posix and also leah. Signed-off-by: Leah Rowe <leah@libreboot.org>
12 dayslbutils/file: tidy up mkhtemp_tmpfile_linuxLeah Rowe
make failure more obvious. no behavioural change. Signed-off-by: Leah Rowe <leah@libreboot.org>
12 daysMerge pull request 'supermicro x11ssh_f: Enable SATA hotplug' (#419) from ↵Leah Rowe
noisytoot/supermicro-x11ssh-f-sata-hotplug into master Reviewed-on: https://codeberg.org/libreboot/lbmk/pulls/419
12 dayssupermicro x11ssh_f: Enable SATA hotplugRon Nazarov
See the commit message in the patch: Before this patch, hotplugging only worked to replace drives (if you tried to plug a drive into a SATA port that no drive was plugged in to at boot, it wouldn't be detected) and you'd have to manually rescan the bus (echo "- - -" > /sys/class/scsi_host/host*/scan) to make plugs/unplugs get detected by the operating system. Now, hotplugging works for all ports (tested and working on Supermicro X11SSH-LN4F) and there's no need to manually rescan (it sometimes takes a few seconds for unplugs to be detected, but plugs are detected instantly). Also submitted upstream as https://review.coreboot.org/c/coreboot/+/91824
2026-04-01lbutils/file: ignore close err if errno is EINTRLeah Rowe
but DONT LOOP IT. see comment. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01remove dead codeLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: don't eintr loop fcntlLeah Rowe
not indicated. the way we use it is basically like stat, to check that a file exists / is a file. just err the fuck out nuance: SETLK is non-blocking (no wait). we should loop on SETLKW, but we don't use that. in this codebase, we use SETLK for locking a tmpfile, but because of race conditions and wanting to make another file quickly, we just try again with a newly generated name, with a certain number of retries, so we justt use SETLK Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils: don't loop lseek on EINTRLeah Rowe
not necessary. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: don't use undefined USE_OPENATLeah Rowe
clang -Weverything told me to Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: don't loop EINTR on close()Leah Rowe
state is undefined after EINTR. just abort universally. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: fix implicit conversion on openat2Leah Rowe
as dictated by clang -Weverything Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: fix overflow checkLeah Rowe
clang -Weverything: lib/file.c:165:49: warning: implicit conversion changes signedness: 'ssize_t' (aka 'long') to 'size_t' (aka 'unsigned long') [-Wsign-conversion] 165 | if (if_err(rval >= 0 && (size_t)rval > (nrw - rc), EOVERFLOW)) Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: remove more unused macrosLeah Rowe
detected via clang -Weverything Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: remove unused macroLeah Rowe
not needed here (detected with clang -Weverything) Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/file: rename rw_file_exactLeah Rowe
call it rw_exact, so that it's closer to the name rw. it matches naming more closely; the alternative was to call rw rw_file but read/write can handle more than just files! Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils/file: never retry file rw on zeroLeah Rowe
even with a timer, it's possible that on a buggy system, we may keep writing even though the outcome is zero. if a system comes back with zero bytes written, that is a fatal bug and we should stop. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: remove -WerrorLeah Rowe
the actual warn flags are still there. leaving Werror in production is ill advised. i can (and will) still fix build errors as i see them. as a result of this, i now also see more info when i type: make strict (this uses clang with -Weverything) Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils/rand: close fd on urandom errorLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: remove rw on_eintr functions. just use rwLeah Rowe
rw is enough. i unified everything there. next commit will remove rw_type and instead run positional i/o depending on whether the offset is zero. i'm simplifying the API a lot. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: portable options in MakefileLeah Rowe
add options for building with urandom+openat and arc4+openat. useful for emulating a bsd / old linux environment in modern linux distros, for portability testing. these options are not recommended for everyday use. just use make without any special options, and the code has build-time OS detection for features like randomisation/openat2. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: support using arc4random on linuxLeah Rowe
-DUSE_ARC4=1 use that Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: don't set USE_OPENAT and USE_URANDOMLeah Rowe
these can be set explicitly in the compiler flags, e.g. make CC="cc -DUSE_OPENAT=1 -DUSE_URANDOM=1" these options, if set to 1, will cause you to use the code as if it were running on non-linux systems such as openbsd. of course, some differences will still exist, but this is useful for portability testing when compiling on linux. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01lbutils: only use GNU SOURCE for syscallLeah Rowe
and remove manual prototypes; fchmod, realpath and so on rely on the _XOPEN_SOURCE macro. the POSIX macro wasn't needed: _XOPEN_SOURCE is sufficient. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils: don't use the GNU SOURCE macroLeah Rowe
use the POSIX one declare prototypes where necessary. Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils: fix clang hell modeLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-04-01libreboot-utils: always use strict cc flagsLeah Rowe
otherwise, i will end up with a mess like the one i recently fixed. we always want to use correct C. the current spec is set to c99, with -pedantic turned on. flags now: -Os -Wall -Wextra -std=c99 -pedantic -Werror if you do: make hell, you get (uses clang): -Os -Wall -Wextra -std=c99 -pedantic -Werror -Weverything i initially loosened up the Makefile rules, so that the code would be more "portable", but every compiler worth caring about has these flags, and turning them on is advisable, especially pedantic and -std, because you want to have some guarantee that the compiler is generating correct code; if the standard is left ambiguous, you could be introducing subtle bugs when people compile it, because who knows what spec the compiler is using? Signed-off-by: Leah Rowe <leah@libreboot.org>