summaryrefslogtreecommitdiff
path: root/sys/compat/linux32/common/linux32_exec.c
AgeCommit message (Collapse)Author
2018-01-09remove struct emul's e_fault.maya
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.
2012-02-19Remove COMPAT_SA / KERN_SA. Welcome to 6.99.3!rmind
Approved by core@.
2010-07-07many changes for COMPAT_LINUX:chs
- 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.
2009-10-25Initialise struct emul members by name (it is readable now and one can searchrmind
them in the tree).
2009-03-14ANSIfy another 1261 function definitions.dsl
The only ones left in sys are beyond by sed script! (or in sys/dist or sys/external) Mostly they have function pointer parameters.
2008-12-17kill MALLOC and FREE macros.cegger
2008-11-19Make the emulations, exec formats, coredump, NFS, and the NFS serverad
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
2008-10-15Merge wrstuden-revivesa into HEAD.wrstuden
2008-09-05Compile NetBSD/amd64 kernels with "-Wextra". Patches contributed bytron
Juan RP in PR port-amd64/39266.
2008-04-28Remove clause 3 and 4 from TNF licensesmartin
2008-04-26Remove a duplicate mutex_enter call in linux32_e_proc_init().njoly
Fix a kernel panic for processes created with FORK_SHAREVM.
2008-04-24Network protocol interrupts can now block on locks, so merge the globalsad
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.
2008-04-23Catch up with linux.ad
2007-12-08ANSIfy most of the function definitions in sys/compat (but not ndis).dsl
All by the magic of sed ...
2007-12-04Remove all the __Pdsl
2007-10-19machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.had
2007-03-05more caddr_t lossage.christos
2007-02-15Fix COMPAT_LINUX32.ad
2007-02-09Merge newlock2 to head.ad
2006-08-231) Complete Linux exit_group() emulationmanu
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
2006-06-25- Complete exit_group() implementation. We now maintain a list of Linuxmanu
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.
2006-02-09Add initial (but unfinished) COMPAT_LINUX32 for amd64. This is good enough somanu
that the i386 license manager part of amd64 version of Fluent works. While I'm here, add SysV IPC to COMPAT_LINUX/amd64