Home | History | Annotate | Download | only in i386
History log of /src/sys/compat/linux/arch/i386/linux_machdep.h
RevisionDateAuthorComments
 1.37  07-Jul-2010  chs many changes for COMPAT_LINUX:
- update the linux syscall table for each platform.
- support new-style (NPTL) linux pthreads on all platforms.
clone() with CLONE_THREAD uses 1 process with many LWPs
instead of separate processes.
- move the contents of sys__lwp_setprivate() into a new
lwp_setprivate() and use that everywhere.
- update linux_release[] and linux32_release[] to "2.6.18".
- adjust placement of emul fork/exec/exit hooks as needed
and adjust other emul code to match.
- convert all struct emul definitions to use named initializers.
- change the pid allocator to allow multiple pids to refer to the same proc.
- remove a few fields from struct proc that are no longer needed.
- disable the non-functional "vdso" code in linux32/amd64,
glibc works fine without it.
- fix a race in the futex code where we could miss a wakeup after
a requeue operation.
- redo futex locking to be a little more efficient.
 1.36  12-Nov-2008  ad branches: 1.36.6; 1.36.8;
Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.35  26-Oct-2008  christos branches: 1.35.2;
use a symbolic constant instead of 6.
 1.34  25-Oct-2008  christos Add preliminary tls support for i386. Does not work yet. From FreeBSD.
 1.33  28-Apr-2008  martin branches: 1.33.6;
Remove clause 3 and 4 from TNF licenses
 1.32  13-Jun-2007  christos branches: 1.32.28; 1.32.30; 1.32.32;
Get ready for NPTL but don't turn it on as of yet.
 1.31  13-Jun-2007  christos cleanup some bitrot; from Matthew Orgass
 1.30  10-May-2007  christos - linux uname -m on x86 returns i{3,4,5,6}86 make it so.
- delete the machine sysctl that never worked, and gc linux_machine.
 1.29  11-Dec-2005  christos branches: 1.29.26; 1.29.30; 1.29.32;
merge ktrace-lwp.
 1.28  13-Nov-2004  christos branches: 1.28.12;
Add ptyfs pty device number translation.
 1.27  06-Sep-2003  christos SA_SIGINFO changes
 1.26  03-Jul-2003  christos Implement linux_rt_sigreturn for real. Add a hack for more plausible siginfo.
The java segv handler still segv's again inside the signal handler, but our
sample test program now works [gets the proper ucontext].
 1.25  06-Dec-2002  christos branches: 1.25.6;
add a linux_rt_sigframe to support SA_SIGINFO, and use it when SA_SIGINFO
is requested. This appears to be how linuxthreads decides which signal handler
to use.
 1.24  26-Nov-2002  christos rename sa_ -> linux_sa_
first attempt at providing siginfo_t to the signal handler.
 1.23  06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.22  04-Jul-2002  thorpej Add kernel support for having userland provide the signal trampoline:

* struct sigacts gets a new sigact_sigdesc structure, which has the
sigaction and the trampoline/version. Version 0 means "legacy kernel
provided trampoline". Other versions are coordinated with machine-
dependent code in libc.
* sigaction1() grows two more arguments -- the trampoline pointer and
the trampoline version.
* A new __sigaction_sigtramp() system call is provided to register a
trampoline along with a signal handler.
* The handler is no longer passed to sensig() functions. Instead,
sendsig() looks up the handler by peeking in the sigacts for the
process getting the signal (since it has to look in there for the
trampoline anyway).
* Native sendsig() functions now select the appropriate trampoline and
its arguments based on the trampoline version in the sigacts.

Changes to libc to use the new facility will be checked in later. Kernel
version not bumped; we will ride the 1.6C bump made recently.
 1.21  15-Feb-2002  christos branches: 1.21.8;
- add a real linux_sys___sysctl because the mib numbers are different.
implement only the kernel version getting entries.
- make the signal conversion functions consistent; dest is arg 1.
- make linux_fakedev deal with block and char devices differently.
- add linux_sys_ugetrlimit, and flesh out the regular get/setrlimit so
that they work properly.
- add linux_mmap2 [untested].
- bump kernel to 2.4.18, and make the date be valentine's day :-)
- linux_sys_*stat64 family was totally busted. Fix it.

tested only on i386.

Status:
gdb, telnet, work
jdk-1.4.0 extractor works, jdk still coredumps.

christos
 1.20  09-Jan-2001  fvdl branches: 1.20.2; 1.20.4;
Add emulation of KIOCSOUND.
 1.19  29-Dec-2000  fvdl Implement KDGETMODE ioctl.
 1.18  14-Dec-2000  mycroft Some namespace hiding I forgot before.
 1.17  12-Dec-2000  fvdl Allow for passing through of certain ranges of ioctl command values
directly to a device. The device has to be aware of how to handle
with these special ioctls. Useful for LKMs that deal with Linux
binaries.
 1.16  11-Dec-2000  mycroft Introduce 2 new flags in types.h:
* __HAVE_SYSCALL_INTERN. If this is defined, e_syscall is replaced by
e_syscall_intern, which is called at key places in the kernel. This can be
used to set a MD syscall handler pointer. This obsoletes and replaces the
*_HAS_SEPARATED_SYSCALL flags.
* __HAVE_MINIMAL_EMUL. If this is defined, certain (deprecated) elements in
struct emul are omitted.
 1.15  10-Dec-2000  fvdl Add i386-specific code for a few ioctl calls.
 1.14  09-Dec-2000  christos how many different prototypes does linux_syscall() need finally? sheesh!
 1.13  02-Dec-2000  jdolecek if machdep define LINUX_MACHDEP_HAS_SEPARATED_SYSCALL is defined, put
linux_syscall() to emul_linux
define LINUX_MACHDEP_HAS_SEPARATED_SYSCALL for i386
 1.12  11-Jun-2000  veego branches: 1.12.2;
Fix a comment.
 1.11  11-Jun-2000  veego Remove the pcvt support.
 1.10  04-Oct-1999  fvdl branches: 1.10.2; 1.10.10;
Handle the newer, larger sigset_t Linux now uses.
 1.9  04-Oct-1998  fvdl Assign my copyright to TNF. Merge with others were appropriate.
Regen syscall files after script change.
 1.8  01-Oct-1998  erh Moved here from arch/i386/include/linux_machdep.h.
 1.7  11-Sep-1998  mycroft Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
sys_sigpending() and sys_sigsuspend() into separate functions, and call them
from all the emulations rather than hard-coding everything. (Avoids uses
the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.

Note: Only code touched by the i386 port has been modified. Other ports and
emulations need to be updated.
 1.6  11-Jun-1998  drochner Since wscons can support VT_xxx ioctl()s, enable them if NWSDISPLAY > 0.
Implement KDGKBTYPE and KDGKBENT, this will make X servers happy.
 1.5  03-May-1996  christos Add missing prototypes.
 1.4  27-Aug-1995  fvdl A couple of definitions added for previous changes.
 1.3  07-May-1995  mycroft Improve Linux signal emulation, and emulate the modify_ldt() call.
 1.2  22-Apr-1995  christos - added sunos_machdep.c for sun3, atari, amiga and mac68k.
- changed machdep.c and trap.c to use struct emul.
- remove ep_setup references.
- added struct emul to all emulations.
 1.1  07-Apr-1995  fvdl Arch dependant defs for Linux. Just signal stackframe definition for now.
 1.10.10.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.10.2.5  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.10.2.4  05-Jan-2001  bouyer Sync with HEAD
 1.10.2.3  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.10.2.2  08-Dec-2000  bouyer Sync with HEAD.
 1.10.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.12.2.1  30-Mar-2001  he Pull up revision 1.14-1.20 (via patch, requested by fvdl):
Add some required Linux emulation bits to support the Linux
version of VMware.
 1.20.4.3  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.20.4.2  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.20.4.1  16-Mar-2002  jdolecek Catch up with -current.
 1.20.2.4  11-Dec-2002  thorpej Sync with HEAD.
 1.20.2.3  17-Sep-2002  nathanw Catch up to -current.
 1.20.2.2  01-Aug-2002  nathanw Catch up to -current.
 1.20.2.1  28-Feb-2002  nathanw Catch up to -current.
 1.21.8.2  15-Jul-2002  gehenna catch up with -current.
 1.21.8.1  16-May-2002  gehenna Remove a hard-coded device major.
 1.25.6.4  14-Nov-2004  skrll Sync with HEAD.
 1.25.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.25.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.25.6.1  03-Aug-2004  skrll Sync with HEAD
 1.28.12.1  03-Sep-2007  yamt sync with head.
 1.29.32.1  11-Jul-2007  mjf Sync with head.
 1.29.30.2  15-Jul-2007  ad Sync with head.
 1.29.30.1  27-May-2007  ad Sync with head.
 1.29.26.1  17-May-2007  yamt sync with head.
 1.32.32.3  11-Aug-2010  yamt sync with head.
 1.32.32.2  04-May-2009  yamt sync with head.
 1.32.32.1  16-May-2008  yamt sync with head.
 1.32.30.1  18-May-2008  yamt sync with head.
 1.32.28.2  17-Jan-2009  mjf Sync with HEAD.
 1.32.28.1  02-Jun-2008  mjf Sync with HEAD.
 1.33.6.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.35.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.36.8.1  05-Mar-2011  rmind sync with head
 1.36.6.1  17-Aug-2010  uebayasi Sync with HEAD.

RSS XML Feed