Home | History | Annotate | only in /src/sys/arch/i386/bioscall
History log of /src/sys/arch/i386/bioscall
RevisionDateAuthorComments
 1.21 10-Aug-2020  rin Clean up _LKM --> _MODULE leftovers.

Note that _KERNEL is always defined for modules.
 1.20 04-Mar-2014  joerg Introduce GENASSYM_CPPFLAGS for options during genassym processing.
Consistently drop assembler flags.
 1.19 06-Jul-2010  mrg branches: 1.19.8; 1.19.18; 1.19.22;
remove almost all the ability to build netbsd with an a.out target.
we're ELF now, and there are many missing checks against OBJECT_FMT.
if we ever consider switching, the we can figure out what new ones
we need but for now it's just clutter.

this doesn't remove any of the support for exec_aout or any actually
required-for-boot a.out support, only the ability to build a netbsd
release in a.out format. ie, most of this code has been dead for
over a decade.

i've tested builds on vax, amd64, i386, mac68k, macppc, sparc, atari,
amiga, shark, cats, dreamcast, landisk, mmeye and x68k. this covers
the 5 MACHINE_ARCH's affected, and all the other arch code touched.
it also includes some actual run-time testing of sparc, i386 and
shark, and i performed binary comparison upon amiga and x68k as well.


some minor details relevant:
- move shlib.[ch] from ld.aout_so into ldconfig proper, and cut them
down to only the parts ldconfig needs
- remove various unused source files
- switch amiga bootblocks to using elf2bb.h instead of aout2bb.h
 1.18 19-Oct-2008  apb branches: 1.18.8; 1.18.14; 1.18.16;
Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.
 1.17 06-Jun-2006  christos branches: 1.17.60; 1.17.64; 1.17.70;
Make this work with objdirs.
 1.16 11-Dec-2005  christos branches: 1.16.4; 1.16.6; 1.16.8; 1.16.14;
merge ktrace-lwp.
 1.15 30-May-2005  thorpej branches: 1.15.2;
Use TOOL_GENASSYM.
 1.14 25-Dec-2003  jmc Partial fix for PR#14946. Make sure x86 symlinks exist also
 1.13 26-Oct-2003  lukem Use ${HOST_SH} instead of `sh'.

If necessary, pull in <bsd.sys.mk> to get the definition of HOST_SH;
Makefiles that pull in one of (most of) <bsd.*.mk> will get this anyway.
 1.12 14-Dec-2001  christos branches: 1.12.2; 1.12.18;
PR/14946: Rafal Boni: Make this work again.
Notes:
- I added bsd.obj.mk and made it work with objdirs.
- I added an entry point to the linker to fix a warning.
- I made the backup of biostramp.inc silent.
- I added missing clean targets.

This needs to be tested further.
 1.11 22-Sep-2001  tv objcopy -> ${OBJCOPY}; remove redundant definitions of OBJCOPY?= (it is
now in bsd.own.mk).
 1.10 01-Feb-2000  tsutsui branches: 1.10.8; 1.10.10; 1.10.12;
Revert STRIPPROG -> STRIP
 1.9 19-Jan-2000  tsutsui STRIP -> STRIPPROG
 1.8 04-Sep-1999  jtk branches: 1.8.2;
fix for building on ELF
 1.7 31-Aug-1998  jtk add 32-bit register support to BIOSCALL interface
 1.6 13-Sep-1996  jtk use ls, not ${LS}; remove now-unneeded Makefile.inc
 1.5 13-Sep-1996  jtk BIOS trampoline is a static beast; generate it in the sources like
syscalls.h & friends, and include it when needed from the source directory.
 1.4 09-Sep-1996  mycroft Make the build process more sane.
 1.3 08-Sep-1996  jtk re-implement BIOS trampoline as a more general-purpose, reusable trampoline.
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.
 1.2 30-Aug-1996  jtk clean up includes and uses of constants so that we use one include file,
<i386/include/apmvar.h>
remove some files we don't need anymore
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)
 1.8.2.1 20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.10.12.1 01-Oct-2001  fvdl Catch up with -current.
 1.10.10.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.10.8.2 08-Jan-2002  nathanw Catch up to -current.
 1.10.8.1 26-Sep-2001  nathanw Catch up to -current.
Again.
 1.12.18.4 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.12.18.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.12.18.2 18-Sep-2004  skrll Sync with HEAD.
 1.12.18.1 03-Aug-2004  skrll Sync with HEAD
 1.12.2.2 14-Dec-2001  christos PR/14946: Rafal Boni: Make this work again.
Notes:
- I added bsd.obj.mk and made it work with objdirs.
- I added an entry point to the linker to fix a warning.
- I made the backup of biostramp.inc silent.
- I added missing clean targets.

This needs to be tested further.
 1.12.2.1 14-Dec-2001  christos file Makefile was added on branch sommerfeld_i386mp_1 on 2001-12-14 20:32:24 +0000
 1.15.2.1 21-Jun-2006  yamt sync with head.
 1.16.14.1 19-Jun-2006  chap Sync with head.
 1.16.8.1 26-Jun-2006  yamt sync with head.
 1.16.6.1 07-Jun-2006  kardel Sync with head.
 1.16.4.1 09-Sep-2006  rpaulo sync with head
 1.17.70.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.17.64.2 11-Aug-2010  yamt sync with head.
 1.17.64.1 04-May-2009  yamt sync with head.
 1.17.60.1 17-Jan-2009  mjf Sync with HEAD.
 1.18.16.1 05-Mar-2011  rmind sync with head
 1.18.14.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.18.8.1 24-Oct-2010  jym Sync with HEAD
 1.19.22.1 18-May-2014  rmind sync with head
 1.19.18.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.19.8.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8 13-Sep-1996  jtk use ls, not ${LS}; remove now-unneeded Makefile.inc
 1.7 09-Sep-1996  mycroft Use machine/asm.h. Garbage collect.
 1.6 09-Sep-1996  mycroft Make the build process more sane.
 1.5 09-Sep-1996  jtk I meant to depend on apm.h, not Makefile
 1.4 09-Sep-1996  jtk fix compilation problems when APM not configured
 1.3 08-Sep-1996  jtk re-implement BIOS trampoline as a more general-purpose, reusable trampoline.
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.
 1.2 30-Aug-1996  jtk clean up includes and uses of constants so that we use one include file,
<i386/include/apmvar.h>
remove some files we don't need anymore
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)
 1.2 30-Aug-1996  jtk clean up includes and uses of constants so that we use one include file,
<i386/include/apmvar.h>
remove some files we don't need anymore
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)
 1.3 08-Sep-1996  jtk re-implement BIOS trampoline as a more general-purpose, reusable trampoline.
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.
 1.2 30-Aug-1996  jtk clean up includes and uses of constants so that we use one include file,
<i386/include/apmvar.h>
remove some files we don't need anymore
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)
 1.2 30-Aug-1996  jtk clean up includes and uses of constants so that we use one include file,
<i386/include/apmvar.h>
remove some files we don't need anymore
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)
 1.2 30-Aug-1996  jtk clean up includes and uses of constants so that we use one include file,
<i386/include/apmvar.h>
remove some files we don't need anymore
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)
 1.2 05-Jan-1998  perry make script insert RCS ids into generated files
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)
 1.14 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.13 11-Dec-2005  christos branches: 1.13.74; 1.13.76; 1.13.78;
merge ktrace-lwp.
 1.12 04-Jul-2004  mycroft s/PAGE_SIZE/NBPG/ to make this compile again.
 1.11 08-Apr-2003  thorpej branches: 1.11.2;
Use PAGE_SIZE rather than NBPG.
 1.10 14-Dec-2001  christos branches: 1.10.2;
Fix warnings about register prefixes caused by the new toolchain.
 1.9 02-May-2001  jdolecek branches: 1.9.4;
Add support for getting %es value from the bios call.
 1.8 23-Aug-1999  kleink branches: 1.8.16;
Unlike in an i386 a.out assembler, where in an .align n directive n is meant
to be the logarithm to base 2 of the alignment, in an ELF environment n is
the actual alignment boundary; thus, adjust the directives accordingly.

Albeit the wonderful i386 architecture doesn't mind the smaller alignment in
an obvious way, it is likely to have resulted in some performance penalty
during the a.out->ELF transition.
 1.7 31-Aug-1998  jtk add 32-bit register support to BIOSCALL interface
 1.6 09-Oct-1997  jtc Fix tipo inherited from old version of TNF copyright template.
 1.5 04-Nov-1996  jtc The copyright for this file has been assigned to the NetBSD Foundation
 1.4 13-Sep-1996  jtk BIOS trampoline is a static beast; generate it in the sources like
syscalls.h & friends, and include it when needed from the source directory.
 1.3 09-Sep-1996  mycroft Use machine/asm.h. Garbage collect.
 1.2 09-Sep-1996  jtk fix compilation problems when APM not configured
 1.1 08-Sep-1996  jtk re-implement BIOS trampoline as a more general-purpose, reusable trampoline.
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.
 1.8.16.2 08-Jan-2002  nathanw Catch up to -current.
 1.8.16.1 21-Jun-2001  nathanw Catch up to -current.
 1.9.4.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.10.2.2 14-Dec-2001  christos Fix warnings about register prefixes caused by the new toolchain.
 1.10.2.1 14-Dec-2001  christos file biostramp.S was added on branch sommerfeld_i386mp_1 on 2001-12-14 20:30:11 +0000
 1.11.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.11.2.1 03-Aug-2004  skrll Sync with HEAD
 1.13.78.1 16-May-2008  yamt sync with head.
 1.13.76.1 18-May-2008  yamt sync with head.
 1.13.74.1 02-Jun-2008  mjf Sync with HEAD.
 1.7 11-Dec-2005  christos merge ktrace-lwp.
 1.6 04-Jul-2004  mycroft Rebuild. This primarily updates NGDT.
 1.5 23-Jan-2002  rafal branches: 1.5.2; 1.5.18;
Rebuild after my re-arrangement of GDT entries, since this code depends on
the values of GBIOSCODE_SEL and GBIOSDATA_SEL.
 1.4 02-May-2001  jdolecek branches: 1.4.4;
regen: add support for getting %es value from the bios call
 1.3 04-Sep-1999  jtk branches: 1.3.16;
regen with ELF. Still works OK.
 1.2 31-Aug-1998  jtk regen
 1.1 13-Sep-1996  jtk BIOS trampoline is a static beast; generate it in the sources like
syscalls.h & friends, and include it when needed from the source directory.
 1.3.16.2 28-Feb-2002  nathanw Catch up to -current.
 1.3.16.1 21-Jun-2001  nathanw Catch up to -current.
 1.4.4.1 11-Feb-2002  jdolecek Sync w/ -current.
 1.5.18.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.18.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.18.1 03-Aug-2004  skrll Sync with HEAD
 1.5.2.2 23-Jan-2002  rafal Rebuild after my re-arrangement of GDT entries, since this code depends on
the values of GBIOSCODE_SEL and GBIOSDATA_SEL.
 1.5.2.1 23-Jan-2002  rafal file biostramp.inc was added on branch sommerfeld_i386mp_1 on 2002-01-23 15:05:34 +0000
 1.4 31-Aug-1998  jtk add 32-bit register support to BIOSCALL interface
 1.3 15-Aug-1998  mycroft Assign my copyrights to TNF.
 1.2 06-Jan-1998  jtk fix for changes in bioscall structure and include files
 1.1 13-Sep-1996  jtk BIOS trampoline is a static beast; generate it in the sources like
syscalls.h & friends, and include it when needed from the source directory.
 1.5 01-Oct-2012  dsl Delete some not-used APM offsets
 1.4 20-Sep-2008  tsutsui branches: 1.4.28; 1.4.38;
Remove advertising clause for UCB in various genassym.cf files,
which were derived from genassym.c in 4.4BSD-Lite2 (or 386BSD).
Closes PR misc/39573. Approved by martin@.
 1.3 28-Apr-2008  martin branches: 1.3.2; 1.3.6;
Remove clause 3 and 4 from TNF licenses
 1.2 02-May-2001  jdolecek branches: 1.2.2; 1.2.126; 1.2.128; 1.2.130;
Add support for getting %es value from the bios call.
 1.1 31-Aug-1998  jtk branches: 1.1.26;
config file for BIOSCALL assym.h
 1.1.26.1 21-Jun-2001  nathanw Catch up to -current.
 1.2.130.2 04-May-2009  yamt sync with head.
 1.2.130.1 16-May-2008  yamt sync with head.
 1.2.128.1 18-May-2008  yamt sync with head.
 1.2.126.2 28-Sep-2008  mjf Sync with HEAD.
 1.2.126.1 02-Jun-2008  mjf Sync with HEAD.
 1.2.2.2 02-May-2001  jdolecek Add support for getting %es value from the bios call.
 1.2.2.1 02-May-2001  jdolecek file genassym.cf was added on branch sommerfeld_i386mp_1 on 2001-05-02 13:12:46 +0000
 1.3.6.1 19-Oct-2008  haad Sync with HEAD.
 1.3.2.1 10-Oct-2008  skrll Sync with HEAD.
 1.4.38.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.4.28.1 30-Oct-2012  yamt sync with head
 1.3 08-Sep-1996  jtk re-implement BIOS trampoline as a more general-purpose, reusable trampoline.
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.
 1.2 30-Aug-1996  jtk clean up includes and uses of constants so that we use one include file,
<i386/include/apmvar.h>
remove some files we don't need anymore
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)
 1.2 08-Sep-1996  jtk re-implement BIOS trampoline as a more general-purpose, reusable trampoline.
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.
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)
 1.3 06-Jul-2010  mrg remove almost all the ability to build netbsd with an a.out target.
we're ELF now, and there are many missing checks against OBJECT_FMT.
if we ever consider switching, the we can figure out what new ones
we need but for now it's just clutter.

this doesn't remove any of the support for exec_aout or any actually
required-for-boot a.out support, only the ability to build a netbsd
release in a.out format. ie, most of this code has been dead for
over a decade.

i've tested builds on vax, amd64, i386, mac68k, macppc, sparc, atari,
amiga, shark, cats, dreamcast, landisk, mmeye and x68k. this covers
the 5 MACHINE_ARCH's affected, and all the other arch code touched.
it also includes some actual run-time testing of sparc, i386 and
shark, and i performed binary comparison upon amiga and x68k as well.


some minor details relevant:
- move shlib.[ch] from ld.aout_so into ldconfig proper, and cut them
down to only the parts ldconfig needs
- remove various unused source files
- switch amiga bootblocks to using elf2bb.h instead of aout2bb.h
 1.2 09-Sep-1996  mycroft branches: 1.2.158; 1.2.172; 1.2.178; 1.2.180;
Sync with version in ../boot.
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)
 1.2.180.1 05-Mar-2011  rmind sync with head
 1.2.178.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.2.178.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.2.172.1 24-Oct-2010  jym Sync with HEAD
 1.2.158.1 11-Aug-2010  yamt sync with head.
 1.3 08-Sep-1996  jtk re-implement BIOS trampoline as a more general-purpose, reusable trampoline.
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.
 1.2 30-Aug-1996  jtk clean up includes and uses of constants so that we use one include file,
<i386/include/apmvar.h>
remove some files we don't need anymore
 1.1 25-Aug-1996  jtk add Advanced Power Management driver
Includes bootstrap support from FreeBSD (Tatsumi HOSOKAWA and <ukai>)

RSS XML Feed