summaryrefslogtreecommitdiff
path: root/util/spkmodem_recv/spkmodem-recv.c
AgeCommit message (Collapse)Author
2023-06-05util/spkmodem-recv: make debug a runtime optionLeah Rowe
it's currently a build-time option make it a runtime option instead, so that every user can optionally make use of it, on all builds Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: always disable line bufferingLeah Rowe
thus, there's no need to handle flushing of stdout whatsoever, and the code can be greatly simplified ascii bits are still reset, when no input on stdin is given Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: simplify stdout flush logicLeah Rowe
when spkmodem-recv doesn't receive anything (via stdout) after a few frames, it's assumed that the console is dead and the buffered output is flushed this logic is assumed superfluous when -u is set Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-05util/spkmodem-recv: rename variables for clarityLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: split print_char() upLeah Rowe
the logic for *setting* a character, and the logic for outputting it, ought to be separate. do that. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: reduce indent in print_char()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: squash a few code linesLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: bsd-style indentLeah Rowe
my style was: 2 tabs. bsd-style, for extending a line, is 4 spaces. this style has grown on me, so let's do it here Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: order prototypes per functionLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: warn on unhandled exit errorLeah Rowe
my style of C programming is this: always return errno upon exit from the program, or from a thread. handle errno in the calling/forking function. returning errno at the end of main has this intention: if an unhandled error occured, the program exits with non-zero status. a correctly written program should *never* return non-zero at the end of main, and if it does, this indicates a bug in the code (per my code style / philosophy). so, warn the user with a message if this occurs. the intention is that this message should never be printed. do not use assert() for this. i don't believe in that. such a test should always be present, for everyone. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: another minor code cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: always set errno on err()Leah Rowe
This version of spkmodem uses err() to indicate an error, and the value of errno is used as exit status at all times, even when it is zero. When calling err(), it is intended that errno always be non-zero, so modify the code accordingly. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: minor code cleanupLeah Rowe
also be more thorough about errno value when calling pledge. rename variable in a for loop for clarity. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: handle sample errors correctlyLeah Rowe
when calling fread(), errno may be set to EOVEFLOW if the range being read will cause an integer overflow if end-of-file is reached, errno may not be set. when calling this function, you must check errno or check feof() - ferror() should also be checked, so this check is added immediately afterwards in the code ferror() does not set errno, so ERR() is used to set errno to ECANCELED as program exit status further separate reading of frames into a new function Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-06-04util/spkmodem-recv: simplify pulse checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-30util/*: Properly detect OpenBSD for pledge() callLeah Rowe
The utils that are pledged checked HAVE_PLEDGE which was bogus. OpenBSD defines __OpenBSD__, which you can check for in ifdef. This change makes nvmutil and spkmodem-recv *actually* use pledge, when the utils are compiled on OpenBSD. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Use pledge but only on OpenBSDLeah Rowe
It will only be used on OpenBSD. Other operating systems will behave in the same way. Pledge is feature specific to OpenBSD that restricts system operations, for security: https://man.openbsd.org/pledge.2 Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Add -u flag (no line buffer)Leah Rowe
printf outputs to stdout, which is line buffered by default. Adding a -u option to disable buffering. Exit when a non-support flag is given, but adhere to current behaviour when no flag is given. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Tidy up global variablesLeah Rowe
They do not need to be initialised zero, because global variables are always zero by default, unless set differently by the programmer. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Make pulse variable globalLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Use parentheses on comparisonsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Move global variable: pulseLeah Rowe
It is only used by a single function. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Purge unused global: amplitudeLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Remove unused variable: posLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Re-order functions for clarityLeah Rowe
print_char() is referenced last, so declare it last. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Handle output in new functionLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Re-order prototypesLeah Rowe
Put them in the same order as declared. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Rename functions for clarityLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Return errno in mainLeah Rowe
This is a good general practise, to catch errors. Any errors found can then be handled in code. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Use correct printf specifierLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Add error handlingLeah Rowe
There was literally no error handling before. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Move logic out of mainLeah Rowe
Main should only be a skeletal structure. Actual logic should always be handled externally. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Rename variable for clarityLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Remove use of static keywordLeah Rowe
It is entirely superfluous in this program. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Rename variable for clarityLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Remove space in function callsLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Say frame in EnglishLeah Rowe
Source code should be written in English. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Top-down logic (main on top)Leah Rowe
Add the appropriate prototype. Top-down function order is easier to read. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: simplified pulse checkLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Define argc/argv in mainLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Reduced indentation in loopLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Use tabs for indentationLeah Rowe
The GNU indentation style is hard to read. Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-05-16util/spkmodem_recv: Import from corebootLeah Rowe
Imported from util/spkmodem_recv at coreboot revision: e70bc423f9a2e1d13827f2703efe1f9c72549f20 This is a client for spkmodem, to allow serial console via PC speaker. I've decided to import it in lbmk, because I heavily modified it. The patches will be applied next. Signed-off-by: Leah Rowe <leah@libreboot.org>