summaryrefslogtreecommitdiffstats
path: root/sys/ia64/ia32
Commit message (Collapse)AuthorAgeFilesLines
* Add missing #include "opt_compat.h" so that the compatability functionpeter2003-12-181-0/+2
| | | | | freebsd4_freebsd32_sigreturn() is defined when expected. This should unbreak the tinderbox. Sorry.
* Assimilate ia64 back into the fold with the common freebsd32/ia32 code.peter2003-12-1112-3758/+77
| | | | | | | | The split-up code is derived from the ia64 code originally. Note that I have only compile-tested this, not actually run-tested it. The ia64 side of the force is missing some significant chunks of signal delivery code.
* Regen.jhb2003-11-073-12/+12
|
* Sync with global syscalls.master. ptrace(), dup(), pipe(), ktrace(),jhb2003-11-071-9/+9
| | | | | ia32_sigaltstack(), sysarch(), issetugid(), utrace(), and ia32_sigaction() are MP safe.
* Add sysentvec->sv_fixlimits() hook so that we can catch cases on 64 bitpeter2003-09-252-2/+4
| | | | | | | | | | | | | | | | | | | | | systems where the data/stack/etc limits are too big for a 32 bit process. Move the 5 or so identical instances of ELF_RTLD_ADDR() into imgact_elf.c. Supply an ia32_fixlimits function. Export the clip/default values to sysctl under the compat.ia32 heirarchy. Have mmap(0, ...) respect the current p->p_limits[RLIMIT_DATA].rlim_max value rather than the sysctl tweakable variable. This allows mmap to place mappings at sensible locations when limits have been reduced. Have the imgact_elf.c ld-elf.so.1 placement algorithm use the same method as mmap(0, ...) now does. Note that we cannot remove all references to the sysctl tweakable maxdsiz etc variables because /etc/login.conf specifies a datasize of 'unlimited'. And that causes exec etc to fail since it can no longer find space to mmap things.
* Regen.jhb2003-08-213-5/+5
|
* Swap sigaction/sigreturn since they are in the wrong order.jhb2003-08-211-2/+2
| | | | Noticed indirectly by: peter
* Fixup the ELF branding information to point to the new home of rtld.gordon2003-08-172-2/+2
|
* Revamp of the syscall path, exception and context handling. Themarcel2003-05-163-113/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prime objectives are: o Implement a syscall path based on the epc inststruction (see sys/ia64/ia64/syscall.s). o Revisit the places were we need to save and restore registers and define those contexts in terms of the register sets (see sys/ia64/include/_regset.h). Secundairy objectives: o Remove the requirement to use contigmalloc for kernel stacks. o Better handling of the high FP registers for SMP systems. o Switch to the new cpu_switch() and cpu_throw() semantics. o Add a good unwinder to reconstruct contexts for the rare cases we need to (see sys/contrib/ia64/libuwx) Many files are affected by this change. Functionally it boils down to: o The EPC syscall doesn't preserve registers it does not need to preserve and places the arguments differently on the stack. This affects libc and truss. o The address of the kernel page directory (kptdir) had to be unstaticized for use by the nested TLB fault handler. The name has been changed to ia64_kptdir to avoid conflicts. The renaming affects libkvm. o The trapframe only contains the special registers and the scratch registers. For syscalls using the EPC syscall path no scratch registers are saved. This affects all places where the trapframe is accessed. Most notably the unaligned access handler, the signal delivery code and the debugger. o Context switching only partly saves the special registers and the preserved registers. This affects cpu_switch() and triggered the move to the new semantics, which additionally affects cpu_throw(). o The high FP registers are either in the PCB or on some CPU. context switching for them is done lazily. This affects trap(). o The mcontext has room for all registers, but not all of them have to be defined in all cases. This mostly affects signal delivery code now. The *context syscalls are as of yet still unimplemented. Many details went into the removal of the requirement to use contigmalloc for kernel stacks. The details are mostly CPU specific and limited to exception_save() and exception_restore(). The few places where we create, destroy or switch stacks were mostly simplified by not having to construct physical addresses and additionally saving the virtual addresses for later use. Besides more efficient context saving and restoring, which of course yields a noticable speedup, this also fixes the dreaded SMP bootup problem as a side-effect. The details of which are still not fully understood. This change includes all the necessary backward compatibility code to have it handle older userland binaries that use the break instruction for syscalls. Support for break-based syscalls has been pessimized in favor of a clean implementation. Due to the overall better performance of the kernel, this will still be notived as an improvement if it's noticed at all. Approved by: re@ (jhb)
* Regen.jhb2003-04-253-34/+3
|
* Oops, the thr_* and jail_attach() syscall entries should be NOPROTO ratherjhb2003-04-251-7/+7
| | | | than STD.
* Regen.jhb2003-04-243-4/+58
|
* Fix the thr_create() entry by adding a trailing \. Also, sync up thejhb2003-04-241-4/+4
| | | | MP safe flag for thr_* with the main table.
* - Replace inline implementations of sigprocmask() with calls tojhb2003-04-221-66/+33
| | | | | | | kern_sigprocmask() in the various binary compatibility emulators. - Replace calls to sigsuspend(), sigaltstack(), sigaction(), and sigprocmask() that used the stackgap with calls to the corresponding kern_sig*() functions instead without using the stackgap.
* o In struct prison, add an allprison linked list of prisons (protectedmike2003-04-091-0/+1
| | | | | | | | | | | | | | | by allprison_mtx), a unique prison/jail identifier field, two path fields (pr_path for reporting and pr_root vnode instance) to store the chroot() point of each jail. o Add jail_attach(2) to allow a process to bind to an existing jail. o Add change_root() to perform the chroot operation on a specified vnode. o Generalize change_dir() to accept a vnode, and move namei() calls to callers of change_dir(). o Add a new sysctl (security.jail.list) which is a group of struct xprison instances that represent a snapshot of active jails. Reviewed by: rwatson, tjr
* - Add thr and umtx system calls.jeff2003-04-011-0/+8
|
* - Add a placeholder for sigwaitjeff2003-03-311-0/+1
|
* Back out M_* changes, per decision of the TRB.imp2003-02-191-5/+5
| | | | Approved by: trb
* Remove #include <sys/dkstat.h>phk2003-02-161-1/+0
|
* Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.alfred2003-01-211-5/+5
| | | | Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
* Synchronize to kern/syscalls.master:1.139.rwatson2002-12-291-0/+4
| | | | Obtained from: TrustedBSD Project
* Regen: swapoffmarcel2002-12-163-4/+5
|
* Change swapoff from MNOPROTO to UNIMPL. The former doesn't work.marcel2002-12-161-1/+1
|
* This is David Schultz's swapoff code which I am finally able to commit.dillon2002-12-151-0/+1
| | | | | | | This should be considered highly experimental for the moment. Submitted by: David Schultz <dschultz@uclink.Berkeley.EDU> MFC after: 3 weeks
* SCARGS removal take II.alfred2002-12-142-133/+128
|
* Backout removal SCARGS, the code freeze is only "selectively" over.alfred2002-12-132-128/+133
|
* Remove SCARGS.alfred2002-12-132-133/+128
| | | | Reviewed by: md5
* Regenerate after adding syscalls.deischen2002-11-163-4/+13
|
* Add *context() syscalls to ia64 32-bit compatability table as requesteddeischen2002-11-161-0/+3
| | | | in kern/syscalls.master.
* Sync to src/sys/kern/syscalls.masterrwatson2002-11-021-1/+1
|
* Stake a claim on 418 (__xstat), 419 (__xfstat), 420 (__xlstat)peter2002-10-191-0/+3
|
* Grab 416/417 real estate before I get burned while testing again.peter2002-10-191-0/+2
| | | | | | This is for the not-quite-ready signal/fpu abi stuff. It may not see the light of day, but I'm certainly not going to be able to validate it when getting shot in the foot due to syscall number conflicts.
* Add a placeholder for the execve_mac() system call, similar to SELinux'srwatson2002-10-191-0/+1
| | | | | | | | | | | | execve_secure() system call, which permits a process to pass in a label for a label change during exec. This permits SELinux to change the label for the resulting exec without a race following a manual label change on the process. Because this interface uses our general purpose MAC label abstraction, we call it execve_mac(), and wrap our port of SELinux's execve_secure() around it with appropriate sid mappings. Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories
* re-regen. Sigh.peter2002-10-093-7/+7
|
* Sigh. Fix fat-fingering of diff. I knew this was going to happen.peter2002-10-091-1/+1
|
* regenerate. sendfile stuff and other recently picked up stubs.peter2002-10-093-12/+54
|
* Try and deal with the #ifdef COMPAT_FREEBSD4 sendfile stuff. This wouldpeter2002-10-092-2/+25
| | | | have been a lot easier if do_sendfile() was usable externally.
* Try and patch up some tab-to-space spammage.peter2002-10-091-19/+19
|
* Add placeholder stubs for nsendfile, mac_syscall, ksem_close, ksem_post,peter2002-10-091-0/+22
| | | | | | ksem_wait, ksem_trywait, ksem_init, ksem_open, ksem_unlink, ksem_getvalue, ksem_destroy, __mac_get_pid, __mac_get_link, __mac_set_link, extattr_set_link, extattr_get_link, extattr_delete_link.
* Let kse_wakeup() take a KSE mailbox pointer argument.archie2002-10-022-2/+2
| | | | Reviewed by: julian
* Make the following name changes to KSE related functions, etc., to betterarchie2002-09-254-11/+11
| | | | | | | | | | | | | | | represent their purpose and minimize namespace conflicts: kse_fn_t -> kse_func_t struct thread_mailbox -> struct kse_thr_mailbox thread_interrupt() -> kse_thr_interrupt() kse_yield() -> kse_release() kse_new() -> kse_create() Add missing declaration of kse_thr_interrupt() to <sys/kse.h>. Regenerate the various generated syscall files. Minor style fixes. Reviewed by: julian
* Added fields for VM_MIN_ADDRESS, PS_STRINGS and stack protections tojake2002-09-012-8/+14
| | | | | | sysentvec. Initialized all fields of all sysentvecs, which will allow them to be used instead of constants in more places. Provided stack fixup routines for emulations that previously used the default.
* Regeneratepeter2002-07-203-1596/+311
|
* Infrastructure tweaks to allow having both an Elf32 and an Elf64 executablepeter2002-07-208-1887/+2596
| | | | | | | | | | | | | | | handler in the kernel at the same time. Also, allow for the exec_new_vmspace() code to build a different sized vmspace depending on the executable environment. This is a big help for execing i386 binaries on ia64. The ELF exec code grows the ability to map partial pages when there is a page size difference, eg: emulating 4K pages on 8K or 16K hardware pages. Flesh out the i386 emulation support for ia64. At this point, the only binary that I know of that fails is cvsup, because the cvsup runtime tries to execute code in pages not marked executable. Obtained from: dfr (mostly, many tweaks from me).
* Use suword32/64 and fuword32/64 like elsewhere instead of inventingpeter2002-06-201-12/+13
| | | | suhword/fuhword.
* Fix typo in the BSD copyright: s/withough/without/schweikh2002-06-022-2/+2
| | | | | Spotted and suggested by: des MFC after: 3 weeks
* Initial support for executing IA-32 binaries. This will not compiledfr2002-04-108-0/+4396
without a few patches for the rest of the kernel to allow the image activator to override exec_copyout_strings and setregs. None of the syscall argument translation has been done. Possibly, this translation layer can be shared with any platform that wants to support running ILP32 binaries on an LP64 host (e.g. sparc32 binaries?)
OpenPOWER on IntegriCloud