Home | History | Annotate | Download | only in include
History log of /src/sys/arch/i386/include/frame.h
RevisionDateAuthorComments
 1.41  26-Dec-2021  andvar fix various typos, mainly in comments.
 1.40  14-Feb-2019  cherry Welcome XENPVHVM mode.

It is UP only, has xbd(4) and xennet(4) as PV drivers.

The console is com0 at isa and the native portion is very
rudimentary AT architecture, so is probably suboptimal to
run without PV support.
 1.39  11-Feb-2019  cherry We reorganise definitions for XEN source support as follows:

XEN - common sources required for baseline XEN support.
XENPV - sources required for support of XEN in PV mode.
XENPVHVM - sources required for support for XEN in HVM mode.
XENPVH - sources required for support for XEN in PVH mode.
 1.38  19-Nov-2018  kre Hide differences between i386 and amd64 interrupt frames so XEN does
not need to know there is one. Hopefully unbreak i386 build.
 1.37  12-Aug-2017  maxv branches: 1.37.2; 1.37.4;
Remove the vm86 fields from the trap frame. It seems to me that we could
now remove the '-16' when initializing pcb_esp0.
 1.36  14-Jun-2017  chs add an lwp_trapframe() interface to return an LWP's user trapframe.
needed by dtrace.
 1.35  19-Feb-2012  rmind branches: 1.35.2; 1.35.16;
Remove COMPAT_SA / KERN_SA. Welcome to 6.99.3!
Approved by core@.
 1.34  02-Jun-2011  dsl branches: 1.34.2; 1.34.6;
Replace the trapframe fields for segment registers with two uint16_t
fields - one of which is an explicit pad.
 1.33  14-Nov-2008  ad branches: 1.33.4; 1.33.8; 1.33.10; 1.33.14;
Wrap sigframe_sigcontext in _KERNEL
 1.32  14-Nov-2008  ad Remove some compat ifdefs that aren't really needed.
 1.31  15-Oct-2008  wrstuden branches: 1.31.2;
Merge wrstuden-revivesa into HEAD.
 1.30  28-Apr-2008  martin branches: 1.30.2; 1.30.6;
Remove clause 3 and 4 from TNF licenses
 1.29  17-Oct-2007  garbled branches: 1.29.16; 1.29.18; 1.29.20;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.28  17-May-2007  yamt branches: 1.28.10;
merge yamt-idlelwp branch. asked by core@. some ports still needs work.

from doc/BRANCHES:

idle lwp, and some changes depending on it.

1. separate context switching and thread scheduling.
(cf. gmcgarry_ctxsw)
2. implement idle lwp.
3. clean up related MD/MI interfaces.
4. make scheduler(s) modular.
 1.27  09-Feb-2007  ad branches: 1.27.2; 1.27.6; 1.27.8; 1.27.14;
Merge newlock2 to head.
 1.26  26-Dec-2005  perry branches: 1.26.20;
u_intN_t -> uintN_t
 1.25  25-Sep-2003  christos branches: 1.25.16;
constify sendsig/trapsignal
 1.24  10-Sep-2003  christos expose sendsig_sigcontext for compat_16
 1.23  10-Sep-2003  christos #ifdef struct sigframe_sigcontext and struct sigcontext, so that only code
that really needs them, get them.
XXX1: We need to fix the vm86 api.
XXX2: We need to fix the ibcs2 signal delivery mechanism.
 1.22  06-Sep-2003  christos SA_SIGINFO changes.
 1.21  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.20  17-Jan-2003  thorpej branches: 1.20.2;
Merge the nathanw_sa branch.
 1.19  22-Nov-2002  fvdl New interrupt code. The basic idea behind it is to hide the differences
in interrupt controllers in struct pic, and try to keep as much
common code as possible. At the lowest (asm) level, this is done
with CPP macros.

The main structure is now struct intrsource, describing an established
interrupt line, of any kind (soft/hard local apic/legacy apic/IO apic).
For quick masking, there may be a maximum of 32 sources per CPU.
Sources can be assigned to any CPU in the MP case, though currently they
all go to the boot CPU.
 1.18  01-Oct-2002  fvdl Merge Bill Sommerfeld's i386 MP branch. This code has some known
caveats, but works quite well in a lot of MP cases, and all
UP cases that I have tested. Parts of this will hopefully be
reworked in the not-too-distant future.
 1.17  23-Jun-2002  thorpej During native signal delivery (and iBCS2, since it uses the native
sigcode), arrange to have the signal handler invoked directly, using
the trampoline only for the return path, saving a call insn. Play
some other stack trickery in the trampoline to turn 2 pushl's into
one movl.
 1.16  17-Jun-2001  sommerfeld branches: 1.16.2; 1.16.14;
Add %fs/%gs to trap frame and save/restore them on
trap/interrupt/syscall entry from userspace.

Remove special-case "by hand" validation of fs/gs register values as
well as special handling of them in various signal handling paths.

Now, like %ds and %es, they are validated by the hardware on return to
userland.

This paves the way for the use of %fs for per-cpu data on
multiprocessor systems, and fixes an otherwise difficult-to-fix
interaction between threads/clone(2) and USER_LDT.

Discussed in advance with Frank van der Linden.
 1.15  08-Feb-2001  christos branches: 1.15.2;
appease lint: use u_int32_t and name the bit fields.
 1.14  11-Dec-2000  tron Protect against multiple inclusion.
 1.13  15-Aug-1998  mycroft branches: 1.13.12; 1.13.20; 1.13.24;
Assign my copyrights to TNF.
 1.12  11-Oct-1995  mycroft Various changes from John Kohl and me:
Map kernel stacks only at unique addresses.
Use one TSS per process.
Add sysarch calls for modifying IOPL and the I/O permission bitmap.
Add a compacting GDT entry allocator, for TSS and LDT selectors.
Enable modifying %fs and %gs with PT_SETREGS.
Sanitize various bits of code.
 1.11  01-May-1995  mycroft Add VM86 segment registers to trapframe.
 1.10  27-Oct-1994  cgd new RCS ID format.
 1.9  09-Oct-1994  mycroft Eliminate tf_isp.
 1.8  07-Apr-1994  mycroft branches: 1.8.2;
Implement dynamic IRQ configuration and IRQ sharing. Inline spl*() calls.
Reorganize and clean up the relevant code.
 1.7  20-Dec-1993  mycroft Cleanup and garbage collection; nothing significant. From magnum branch.
 1.6  21-Sep-1993  brezak Include sys/signal.h instead of machine/signal.h
 1.5  19-Sep-1993  brezak Define signal frame here.
 1.4  16-Sep-1993  brezak Changes to use a trap frame for syscalls.
 1.3  27-Jun-1993  andrew branches: 1.3.4;
Clobbered '/*' within comment, to keep gcc -Wall happy.
 1.2  22-May-1993  cgd add rcsids to everything and clean up headers
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.3.4.4  11-Jan-1994  mycroft Put the trapframe back in the old order; the reason for changing it is now
gone.
 1.3.4.3  13-Oct-1993  mycroft Remove if_vec from intrframe, as it no longer exists.
 1.3.4.2  09-Oct-1993  mycroft Rearrange trap and interrupt frames so segment registers are pushed before
pushal.
 1.3.4.1  24-Sep-1993  mycroft Changes from trunk.
cpu.h: Add dummy (for now) CLKF_INTR(). #include psl.h.
endian.h: Add multiple-inclusion protection. #define _QUAD_{LOW,HIGH}WORD.
#include sys/cdefs for __P(). Don't define byte order stuff if _POSIX_SOURCE.
Remove big endian shit.
limits.h: Add {,U}QUAD_{MIN,MAX}.
psl.h: Get PSL_MB[ZO] right. Make cpl volatile just in case. Add alias for
spl0(). splnone() and splx() return int for now.
 1.8.2.1  11-Oct-1994  mycroft Update from trunk.
 1.13.24.2  30-Jul-2001  he Pull up revision 1.14 (requested by he):
Protect against multiple inclusion.
 1.13.24.1  17-Jun-2001  he Pull up revision 1.16 (requested by sommerfeld):
Add %fs/%gs to trap frame and save/restore them on trap/interupt/
syscall entry from userspace.

Remove special-case ``by hand'' validation of %fs/%gs register
values s well as special handling of them in various signal
handling paths. Now, like %ds and %es, they are validated by
the hardware on return to userland.

This paves the way for the use of %fs for per-cpu data on multi-
processor systems, and fixes an otherwise difficult-to-fix
interaction between threads/clone(2) and USER_LDT.
 1.13.20.5  25-Jun-2002  sommerfeld Resynch with -current.
 1.13.20.4  18-Jun-2001  sommerfeld checkpoint merge-in-progress from mainline.
 1.13.20.3  30-Apr-2001  sommerfeld Merge sommerfeld_i386mp_1 branch with -current as of today.
GENERIC.MP kernel boots and runs multiuser on my ABIT BP6
 1.13.20.2  07-Jan-2001  sommerfeld Snapshot of merge-in-progress with -current.

[Not expected to build]. Catch up with the last N months worth of
changes to -current.
 1.13.20.1  24-Aug-2000  sommerfeld Since cpu_switch() is now always entered and left at IPL_HIGH, don't
bother saving CPL as part of the switch. Adjust "struct switchframe"
in frame.h and cpu_fork() in vm_machdep.c to compensate.
 1.13.12.2  11-Feb-2001  bouyer Sync with HEAD.
 1.13.12.1  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.15.2.9  11-Dec-2002  thorpej Sync with HEAD.
 1.15.2.8  18-Oct-2002  nathanw Catch up to -current.
 1.15.2.7  01-Aug-2002  nathanw Catch up to -current.
 1.15.2.6  19-Jul-2002  nathanw Invoke upcalls directly, instead of going through a trampoline.
(Since upcalls shouldn't return at all, even the return part of the
trampoline is unnecessary).
 1.15.2.5  02-Jul-2002  nathanw Whitespace.
 1.15.2.4  17-Nov-2001  nathanw Adapt to new upcall signature and possible argument copying.
 1.15.2.3  24-Aug-2001  nathanw A few files and lwp/proc conversions I missed in the last big update.
GENERIC runs again.
 1.15.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.15.2.1  05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.16.14.1  16-Jul-2002  gehenna catch up with -current.
 1.16.2.2  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.16.2.1  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.20.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.20.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.20.2.1  03-Aug-2004  skrll Sync with HEAD
 1.25.16.3  03-Sep-2007  yamt sync with head.
 1.25.16.2  26-Feb-2007  yamt sync with head.
 1.25.16.1  21-Jun-2006  yamt sync with head.
 1.26.20.2  30-Jan-2007  ad Remove support for SA. Ok core@.
 1.26.20.1  17-Nov-2006  ad Checkpoint work in progress.
 1.27.14.1  22-May-2007  matt Update to HEAD.
 1.27.8.1  11-Jul-2007  mjf Sync with head.
 1.27.6.1  27-May-2007  ad Sync with head.
 1.27.2.1  17-Feb-2007  yamt - separate context switching and thread scheduling.
- introduce idle lwp.
- change some related MD/MI interfaces and implement i386 version.
 1.28.10.1  06-Nov-2007  matt sync with HEAD
 1.29.20.2  04-May-2009  yamt sync with head.
 1.29.20.1  16-May-2008  yamt sync with head.
 1.29.18.1  18-May-2008  yamt sync with head.
 1.29.16.2  17-Jan-2009  mjf Sync with HEAD.
 1.29.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.30.6.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.30.6.1  19-Oct-2008  haad Sync with HEAD.
 1.30.2.3  22-Jun-2008  wrstuden Re-add cpu_upcall() and page fault code. i386 kernels now compile.
They don't boot, but that seems to be a consequence of current from the
day this branch was started.
 1.30.2.2  14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.30.2.1  10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.31.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.33.14.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.33.10.1  06-Jun-2011  jruoho Sync with HEAD.
 1.33.8.1  12-Jun-2011  rmind sync with head
 1.33.4.1  27-Aug-2011  jym Sync with HEAD. Most notably: uvm/pmap work done by rmind@, and MP Xen
work of cherry@.

No regression observed on suspend/restore.
 1.34.6.1  24-Feb-2012  mrg sync to -current.
 1.34.2.1  17-Apr-2012  yamt sync with head
 1.35.16.1  28-Aug-2017  skrll Sync with HEAD
 1.35.2.1  03-Dec-2017  jdolecek update from HEAD
 1.37.4.1  10-Jun-2019  christos Sync with HEAD
 1.37.2.1  26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts

RSS XML Feed