/*
* void bioscall(int function, struct apmregs *regs):
* call the BIOS interrupt "function" from real mode with
* registers as specified in "regs"
* (for the flags, though, only these flags are passed to the BIOS;
* the remainder come from the flags register at the time of the call:
* (PSL_C|PSL_PF|PSL_AF|PSL_Z|PSL_N|PSL_D|PSL_V)
*
* Fills in *regs with registers as returned by BIOS.
*/
Thanks to Charles Hannum for complaining and inspiring me to hack this
together.
calling interface (via a grapple in locore.s) is:
/*
* void bioscall(int function, struct apmregs *regs):
* call the BIOS interrupt "function" from real mode with
* registers as specified in "regs"
* (for the flags, though, only these flags are passed to the BIOS;
* the remainder come from the flags register at the time of the call:
* (PSL_C|PSL_PF|PSL_AF|PSL_Z|PSL_N|PSL_D|PSL_V)
*
* Fills in *regs with registers as returned by BIOS.
*/
still some generalization to do (moving this to a better named location,
cleaning up #if tests from NAPM > 0 to something else to allow easy
sharing by other drivers)
Thanks to Charles Hannum for complaining about the previous BIOS grapple
and inspiring me to hack this one together.
a char *, because that's what was really intended, and because
if the print function modifies the string, various things could become
unhappy (so the string should _not_ be modified).
* Make S expand to an absolute path at compile time.
* Use `-S' rather than `-x' to remove debugging symbols.
* Garbage collect unused variables.
* Reverse a handful of port-specific changes that do not correspond to
the common build model and are not needed.
a boot string for firmware that can do this, such as the SPARC and
the sun3 models. It is currently silently ignored on all other
hardware now, however. The MD function "boot()" has been changed to
also take a char *.