Home | History | Annotate | Download | only in alpha
History log of /src/sys/arch/alpha/alpha/compat_13_machdep.c
RevisionDateAuthorComments
 1.22  16-Mar-2017  chs allow pcu_save() and pcu_discard() to be called on other threads,
ptrace needs to use it that way.
 1.21  16-May-2014  matt branches: 1.21.4; 1.21.8; 1.21.12;
Cleanup and simplify PCU FP support. Nuke MDLWP_FPUSED.
 1.20  06-Feb-2012  matt branches: 1.20.6; 1.20.10; 1.20.20;
Do a minor cleanup of alpha (this will make applying pullups post branching
easier).
u_int{8,16,32,64}_t -> uint{*}_t
Change all old-style definitions to C89 prototypes.
Whitespace cleanup.
Constification in db_disasm.c
 1.19  07-Jun-2011  matt branches: 1.19.2; 1.19.6;
Switch alpha to use PCU to manage the FPU.
Tested by mhitch and review by rmind.
 1.18  21-Nov-2009  rmind branches: 1.18.4; 1.18.10;
- Use lwp_getpcb() on Alpha.
- Replace and clean struct user usage, slightly simplify some code parts.
- Include sys/user.h in MD proc.h .
 1.17  24-Apr-2008  ad branches: 1.17.2; 1.17.4;
Merge proc::p_mutex and proc::p_smutex into a single adaptive mutex, since
we no longer need to guard against access from hardware interrupt handlers.

Additionally, if cloning a process with CLONE_SIGHAND, arrange to have the
child process share the parent's lock so that signal state may be kept in
sync. Partially addresses PR kern/37437.
 1.16  20-Dec-2007  dsl branches: 1.16.6; 1.16.8;
Convert all the system call entry points from:
int foo(struct lwp *l, void *v, register_t *retval)
to:
int foo(struct lwp *l, const struct foo_args *uap, register_t *retval)
Fixup compat code to not write into 'uap' and (in some cases) to actually
pass a correctly formatted 'uap' structure with the right name to the
next routine.
A few 'compat' routines that just call standard ones have been deleted.
All the 'compat' code compiles (along with the kernels required to test
build it).
98% done by automated scripts.
 1.15  04-Mar-2007  christos branches: 1.15.20; 1.15.28; 1.15.32;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.14  09-Feb-2007  ad branches: 1.14.2;
Merge newlock2 to head.
 1.13  11-Dec-2005  christos branches: 1.13.20;
merge ktrace-lwp.
 1.12  14-Sep-2005  martin Add missing <compat/...> includes
 1.11  17-Jan-2003  thorpej branches: 1.11.2; 1.11.18;
Merge the nathanw_sa branch.
 1.10  12-Jul-2001  thorpej branches: 1.10.2;
bcopy -> memcpy
 1.9  22-Dec-2000  jdolecek branches: 1.9.4;
split off thread specific stuff from struct sigacts to struct sigctx, leaving
only signal handler array sharable between threads
move other random signal stuff from struct proc to struct sigctx

This addresses kern/10981 by Matthew Orgass.
 1.8  22-Nov-2000  thorpej Several changes, which get us generally further along with
multiprocessor support:
- Implement MP-safe halt.
- Make the FPU saving code more like Bill's on the i386 MP branch.
XXX This code will no doubt be revisited again.
- Pass the cpu_info and trapframe to IPI handlers, saving some work
in the handlers themselves, and also making it possible for the
"pause" handler to reference register state for DDB.
- Add "machine cpu" to DDB, making it possible to reference other
CPUs registers (and thus get e.g. a traceback) from whichever
CPU is actually running the debugger.
- Garbage-collect "machine halt" and "machine reboot" DDB commands.
They don't have a prayer of working properly in multiprocessor
kernels, and didn't really work all that well in uniprocessor kernels.
 1.7  15-Aug-2000  thorpej Implement MP-safe lazy FP context switching, modeled on the
way Bill Sommerfeld implemented it for x86 (and bug fixes
fed back to Bill :-)
 1.6  16-Aug-1999  simonb branches: 1.6.2;
Spell "privilege" correctly (correct spelling from Jonathan Stone).
 1.5  10-Aug-1999  thorpej Move cpu_info and related info into <machine/cpu.h>, and implement the
other MP API components discussed on tech-smp.
 1.4  23-Feb-1999  thorpej Now that we have the kthread mechanism, massively clean up the way
additional processors are spun up on multiprocessor Alpha systems.
Now, each processor gets its own idle thread (the primary processor
uses proc0). This idle thread is used in switch_exit(), rather than
explicitly referencing proc0.

Also, make `curproc', `fpcurproc', and `curpcb' per-cpu values. This
required some data structure rearrangement; cpu info is now statically
allocated in the BSS, rather than via malloc(), and cpu_softc is gone.
(Modeled somewhat after NetBSD/sparc's multiprocessor info structures.)
 1.3  19-Nov-1998  ross #include <machine/alpha.h>
 1.2  20-Sep-1998  thorpej Nuke some unneeded debugging code.
 1.1  13-Sep-1998  thorpej Make signal delivery work again.
 1.6.2.3  05-Jan-2001  bouyer Sync with HEAD
 1.6.2.2  08-Dec-2000  bouyer Sync with HEAD.
 1.6.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.9.4.1  03-Aug-2001  lukem update to -current
 1.10.2.4  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.10.2.3  29-May-2002  nathanw #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t
now that <sys/param.h> doesn't include <sys/sa.h>.

(Behold the Power of Ed)
 1.10.2.2  30-Aug-2001  nathanw First cut at LWP and SA support on the alpha.
Doesn't break in ordinary multiuser mode; LWPs and SAs not yet tested.
 1.10.2.1  12-Jul-2001  nathanw file compat_13_machdep.c was added on branch nathanw_sa on 2001-08-30 23:43:39 +0000
 1.11.18.4  21-Jan-2008  yamt sync with head
 1.11.18.3  03-Sep-2007  yamt sync with head.
 1.11.18.2  26-Feb-2007  yamt sync with head.
 1.11.18.1  21-Jun-2006  yamt sync with head.
 1.11.2.1  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.13.20.2  30-Jan-2007  ad Remove support for SA. Ok core@.
 1.13.20.1  11-Jan-2007  ad Checkpoint work in progress.
 1.14.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.15.32.1  02-Jan-2008  bouyer Sync with HEAD
 1.15.28.1  26-Dec-2007  ad Sync with head.
 1.15.20.1  09-Jan-2008  matt sync with HEAD
 1.16.8.1  18-May-2008  yamt sync with head.
 1.16.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.17.4.3  14-May-2008  wrstuden Per discussion with ad at n dot o, revert signal mask handling
changes.

The l_sigstk changes are most likely totally un-needed as SA will
never use a signal stack - we send an upcall (or will as other
diffs are brought in).

The l_sigmask changes were too controvertial. In all honesty, I
think it's probably best to revert them. The main reason they were
there is the fact that in an SA process, we don't mask signals per
kernel thread, we mask them per user thread. In the kernel, we want
them all to get turned into upcalls. Thus the normal state of
l_sigmask in an SA process is for it to always be empty.

While we are in the process of delivering a signal, we want to
temporarily mask a signal (so we don't recursively exhaust our
upcall stacks). However signal delivery is rare (important, but
rare), and delivering back-to-back signals is even rarer. So rather
than cause every user of a signal mask to be prepared for this very
rare case, we will just add a second check later in the signal
delivery code. Said change is not in this diff.

This also un-compensates all of our compatability code for dealing
with SA. SA is a NetBSD-specific thing, so there's no need for
Irix, Linux, Solaris, SVR4 and so on to cope with it.

As previously, everything other than kern_sa.c compiles in i386
GENERIC as of this checkin. I will switch to ALL soon for compile
testing.
 1.17.4.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.17.4.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.17.2.1  11-Mar-2010  yamt sync with head
 1.18.10.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.18.4.1  12-Jun-2011  rmind sync with head
 1.19.6.1  18-Feb-2012  mrg merge to -current.
 1.19.2.1  17-Apr-2012  yamt sync with head
 1.20.20.1  10-Aug-2014  tls Rebase.
 1.20.10.1  18-May-2014  rmind sync with head
 1.20.6.2  03-Dec-2017  jdolecek update from HEAD
 1.20.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.21.12.1  21-Apr-2017  bouyer Sync with HEAD
 1.21.8.1  20-Mar-2017  pgoyette Sync with HEAD
 1.21.4.1  28-Aug-2017  skrll Sync with HEAD

RSS XML Feed