History log of /src/sys/compat/linux32/common/linux32_exec.c |
Revision | | Date | Author | Comments |
1.24 |
| 10-Aug-2018 |
pgoyette | Allow syscall_establish() to install new syscalls when the existing entry-point is either sys_nomodule or sys_nosys. Update the makesyscalls.sh script to create a const array of bits to allow syscall_disestablish() to properly restore the original entry-point. Update all the initializers of struct emul to initialize the pointer to the bit array struct emul.
XXX Regen of all files created by makesyscalls.sh will come soon, XXX followed by a kernel version bump (since struct emul is being XXX modified).
This commit should address PR kern/45781 and also removes the need for the work-around for that PR in file
sys/arch/usermode/modules/syscallemu/syscallemu.c
|
1.23 |
| 06-May-2018 |
kamil | branches: 1.23.2; Remove an element from struct emul: e_tracesig
e_tracesig used to be implemented for Darwin compat. Nowadays the Darwin compatiblity layer is gone and there are no other users.
This functionality isn't used where it shall be used in the existing codebase.
If we want to emulate debugging interfaces in compat layers we would need to implement that from scratch anyway. We would need to be bug compatible with other OSes too.
Proposed on tech-kern@.
Welcome to NetBSD 8.99.16!
Sponsored by <The NetBSD Foundation>
|
1.22 |
| 09-Jan-2018 |
maya | branches: 1.22.2; remove struct emul's e_fault.
It used to be used by COMPAT_IRIX for the purpose of overriding uvm_fault (only implemented in MIPS), now removed.
Ride 8.99.12 version bump.
|
1.21 |
| 19-Feb-2012 |
rmind | Remove COMPAT_SA / KERN_SA. Welcome to 6.99.3! Approved by core@.
|
1.20 |
| 07-Jul-2010 |
chs | branches: 1.20.8; 1.20.12; 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.19 |
| 25-Oct-2009 |
rmind | branches: 1.19.2; 1.19.4; Initialise struct emul members by name (it is readable now and one can search them in the tree).
|
1.18 |
| 14-Mar-2009 |
dsl | ANSIfy another 1261 function definitions. The only ones left in sys are beyond by sed script! (or in sys/dist or sys/external) Mostly they have function pointer parameters.
|
1.17 |
| 17-Dec-2008 |
cegger | branches: 1.17.2; kill MALLOC and FREE macros.
|
1.16 |
| 19-Nov-2008 |
ad | Make the emulations, exec formats, coredump, NFS, and the NFS server into modules. By and large this commit:
- shuffles header files and ifdefs - splits code out where necessary to be modular - adds module glue for each of the components - adds/replaces hooks for things that can be installed at runtime
|
1.15 |
| 15-Oct-2008 |
wrstuden | branches: 1.15.2; Merge wrstuden-revivesa into HEAD.
|
1.14 |
| 05-Sep-2008 |
tron | Compile NetBSD/amd64 kernels with "-Wextra". Patches contributed by Juan RP in PR port-amd64/39266.
|
1.13 |
| 28-Apr-2008 |
martin | branches: 1.13.2; 1.13.6; Remove clause 3 and 4 from TNF licenses
|
1.12 |
| 26-Apr-2008 |
njoly | branches: 1.12.2; Remove a duplicate mutex_enter call in linux32_e_proc_init(). Fix a kernel panic for processes created with FORK_SHAREVM.
|
1.11 |
| 24-Apr-2008 |
ad | Network protocol interrupts can now block on locks, so merge the globals proclist_mutex and proclist_lock into a single adaptive mutex (proc_lock). Implications:
- Inspecting process state requires thread context, so signals can no longer be sent from a hardware interrupt handler. Signal activity must be deferred to a soft interrupt or kthread.
- As the proc state locking is simplified, it's now safe to take exit() and wait() out from under kernel_lock.
- The system spends less time at IPL_SCHED, and there is less lock activity.
|
1.10 |
| 23-Apr-2008 |
ad | Catch up with linux.
|
1.9 |
| 08-Dec-2007 |
dsl | branches: 1.9.12; 1.9.14; ANSIfy most of the function definitions in sys/compat (but not ndis). All by the magic of sed ...
|
1.8 |
| 04-Dec-2007 |
dsl | Remove all the __P
|
1.7 |
| 19-Oct-2007 |
ad | branches: 1.7.2; 1.7.4; machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
|
1.6 |
| 05-Mar-2007 |
christos | branches: 1.6.2; 1.6.14; 1.6.16; 1.6.20; more caddr_t lossage.
|
1.5 |
| 15-Feb-2007 |
ad | branches: 1.5.2; Fix COMPAT_LINUX32.
|
1.4 |
| 09-Feb-2007 |
ad | Merge newlock2 to head.
|
1.3 |
| 23-Aug-2006 |
manu | branches: 1.3.2; 1.3.4; 1) Complete Linux exit_group() emulation Members of the thread group must die without reporting to the parent and without going to zombie stage. We do that by reparenting to init before catching a SIGKILL. The parent will not see the child death.
The thread group leader must report the exit status, even if it exits because of another thread calling exit_group(). We do that by storing the exit status in struct linux_emuldata_shared, and the exit hook has the duty of setting struct proc's p_xstat for the thread group leader.
2) For exit/fork/exec hooks, move the NPTL specific code to separate functions that are shared between COMPAT_LINUX and COMPAT_LINUX32
3) Fix LINUX_CLONE_PARENT_SETTID semantics
|
1.2 |
| 25-Jun-2006 |
manu | - Complete exit_group() implementation. We now maintain a list of Linux threads in a processes and kill them properly. The code is a bit too complicated, but I could not find a simplier way of dealing with it
- Change getpid() and getppid() semantics to match what Linux does, and implement gettid(). In the Linux kernel, threads are implemnted as plain old processes. A thread group is just a set of processes, with the parent called leader. Thread ID, which are returned by gettid(), are just the PID of the plain old processes, and getpid() returns the PID of the thread group leader.
- Remove struct linux32_emuldata. COMPAT_LINUX32 uses a lot of COMPAT_LINUX code, where a struct linux_emuldata is assumed. By having distinct emuldata structure with different sizes and layouts, we caused kernel memory corruptions.
- Fix setprioriry() and getpriority()
Thanks to Nicolas Joly for tracking down the problem and providing me the hardware to fix them.
|
1.1 |
| 09-Feb-2006 |
manu | branches: 1.1.2; 1.1.4; 1.1.10; 1.1.14; 1.1.16; Add initial (but unfinished) COMPAT_LINUX32 for amd64. This is good enough so that the i386 license manager part of amd64 version of Fluent works.
While I'm here, add SysV IPC to COMPAT_LINUX/amd64
|
1.1.16.8 |
| 21-Jan-2008 |
yamt | sync with head
|
1.1.16.7 |
| 07-Dec-2007 |
yamt | sync with head
|
1.1.16.6 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.1.16.5 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.1.16.4 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.1.16.3 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.1.16.2 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.1.16.1 |
| 09-Feb-2006 |
yamt | file linux32_exec.c was added on branch yamt-lazymbuf on 2006-06-21 14:59:27 +0000
|
1.1.14.1 |
| 13-Jul-2006 |
gdamore | Merge from HEAD.
|
1.1.10.2 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.1.10.1 |
| 09-Feb-2006 |
simonb | file linux32_exec.c was added on branch simonb-timecounters on 2006-04-22 11:38:14 +0000
|
1.1.4.2 |
| 03-Sep-2006 |
yamt | sync with head.
|
1.1.4.1 |
| 26-Jun-2006 |
yamt | sync with head.
|
1.1.2.2 |
| 18-Feb-2006 |
yamt | sync with head.
|
1.1.2.1 |
| 09-Feb-2006 |
yamt | file linux32_exec.c was added on branch yamt-uio_vmspace on 2006-02-18 15:39:02 +0000
|
1.3.4.2 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.3.4.1 |
| 23-Aug-2006 |
rpaulo | file linux32_exec.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:46:03 +0000
|
1.3.2.1 |
| 30-Jan-2007 |
ad | Remove support for SA. Ok core@.
|
1.5.2.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.6.20.1 |
| 25-Oct-2007 |
bouyer | Sync with HEAD.
|
1.6.16.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.6.16.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.6.14.2 |
| 09-Dec-2007 |
jmcneill | Sync with HEAD.
|
1.6.14.1 |
| 26-Oct-2007 |
joerg | Sync with HEAD.
Follow the merge of pmap.c on i386 and amd64 and move pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup code to restore CR4 before jumping back into kernel space as the large page option might cover that.
|
1.6.2.1 |
| 23-Oct-2007 |
ad | Sync with head.
|
1.7.4.2 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.7.4.1 |
| 08-Dec-2007 |
ad | Sync with head.
|
1.7.2.2 |
| 27-Dec-2007 |
mjf | Sync with HEAD.
|
1.7.2.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.9.14.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.9.12.3 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.9.12.2 |
| 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.9.12.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.12.2.4 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.12.2.3 |
| 11-Mar-2010 |
yamt | sync with head
|
1.12.2.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.12.2.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.13.6.2 |
| 13-Dec-2008 |
haad | Update haad-dm branch to haad-dm-base2.
|
1.13.6.1 |
| 19-Oct-2008 |
haad | Sync with HEAD.
|
1.13.2.4 |
| 24-Sep-2008 |
skrll | Some build fixes.
|
1.13.2.3 |
| 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.13.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.13.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.15.2.2 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.15.2.1 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.17.2.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.19.4.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.19.2.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.20.12.1 |
| 24-Feb-2012 |
mrg | sync to -current.
|
1.20.8.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.22.2.2 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.22.2.1 |
| 21-May-2018 |
pgoyette | Sync with HEAD
|
1.23.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|