Re: Custom boot loader stub
Sad Clouds <[email protected]> Fri, 24 Oct 2025 17:49:30 +0100
| Newsgroups | gmane.os.netbsd.ports.sparc64 |
|---|---|
| Message-ID | <[email protected]> |
On Fri, 24 Oct 2025 14:30:17 +0300 Valery Ushakov <[email protected]> wrote: > From a quick look I'd venture a guess that you might want to use > poll-tty first, before calling read to read the data that you now know > is there. > > -uwe Thanks for the pointers. I've just realised the solution was right there in front of me in Illumos prom_getchar(). My brain didn't quite register that it was polling for input in a while loop. This is what I should have done: char ofw_read_stdin_char(void) { int64_t i64; char c; do { /* Continually returns -2 while no data is ready on stdin */ i64 = ofw_read_stdin(&c, 1); } while (i64 == -2); ASSERT(i64 == 1); /* Catch -1 on read error */ return c; } Now everything is working correctly: Running SPARC-V9 bootblk ihandle_stdin 0xFEB51F90 ihandle_stdout 0xFEB51D88 Press Enter to exit: Program terminated {0} ok