summaryrefslogtreecommitdiffstats
path: root/lib/libc/amd64/sys
Commit message (Collapse)AuthorAgeFilesLines
* We've been lax about matching END() macros in asm code for some time. Thispeter2008-11-029-0/+10
| | | | | | | is used to set the ELF size attribute for functions. It isn't normally critical but some things can make use of it (gdb for stack traces). Valgrind needs it so I'm adding it in. The problem is present on all branches and on both i386 and amd64.
* Classify mmap, lseek, pread, pwrite, truncate, ftruncate as pseudopeter2007-07-041-3/+5
| | | | | | | | | | syscalls, unless WITHOUT_SYSCALL_COMPAT is defined. The default case will have the .c wrappers still. If you define WITHOUT_SYSCALL_COMPAT, the .c wrappers will go away and libc will make direct syscalls. After 7-stable starts, the direct syscall method will be default. Approved by: re (kensmith)
* Per Regents of the University of Calfornia letter, remove advertisingimp2007-01-0910-40/+0
| | | | | | clause. # If I've done so improperly on a file, please let me know.
* Do not try to store 64 bits into 32 bit errno variable. With the changed libckan2005-04-211-1/+1
| | | | | data layout, this was corrupting _PathLocale variable leading to programs dumping core in non-default locales.
* Fix brk(3). The stack was unbalanced when we jumped to cerror. Oops!peter2004-10-271-0/+1
| | | | | | This causes nasty things like SEGV or a cpu spin when we return. Submitted by: "James R. Van Artsalen" <james@jrv.org>
* Change the syscall stub branch orders so that the static branch predictionpeter2004-02-223-3/+45
| | | | will assume that syscalls will succeed rather than fail.
* Provide sysarch(2) prototypes in the MD sysarch.h headers. While I'mnectar2004-01-094-12/+4
| | | | | | | | | | at it, use the ANSI C generic pointer type for the second argument, thus matching the documentation. Remove the now extraneous (and now conflicting) function declarations in various libc sources. Remove now unnecessary casts. Reviewed by: bde
* Add implementations of amd64_[gs]et_[fg]sbase().peter2003-10-235-0/+158
|
* Sigh. I can't win anything. Use addq rather than addl with %rsp.peter2003-09-041-1/+1
|
* Apply same basic fix for getcontext(2) as for i386. Store the returnpeter2003-09-042-2/+56
| | | | | | value for getcontext() in a preserved register rather than on the stack. The second time around, the stack value would likely have changed so we can't depend on it for the return value.
* Fix some minor whitespace botchespeter2003-09-041-1/+1
|
* Add the mlockall() and munlockall() system calls.bms2003-08-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | - All those diffs to syscalls.master for each architecture *are* necessary. This needed clarification; the stub code generation for mlockall() was disabled, which would prevent applications from linking to this API (suggested by mux) - Giant has been quoshed. It is no longer held by the code, as the required locking has been pushed down within vm_map.c. - Callers must specify VM_MAP_WIRE_HOLESOK or VM_MAP_WIRE_NOHOLES to express their intention explicitly. - Inspected at the vmstat, top and vm pager sysctl stats level. Paging-in activity is occurring correctly, using a test harness. - The RES size for a process may appear to be greater than its SIZE. This is believed to be due to mappings of the same shared library page being wired twice. Further exploration is needed. - Believed to back out of allocations and locks correctly (tested with WITNESS, MUTEX_PROFILING, INVARIANTS and DIAGNOSTIC). PR: kern/43426, standards/54223 Reviewed by: jake, alc Approved by: jake (mentor) MFC after: 2 weeks
* Repair PIC mode. It seems I was a bit too excited about thepeter2003-05-246-14/+77
| | | | implications of native PC relative addressing.
* Delete i386_* syscall wrappers and manpages. Rename Ovfork.S to vfork.S.peter2003-04-301-12/+2
|
* Update for AMD64 after repocopy from i386/sys/*. This means:peter2003-04-306-105/+35
| | | | | | | - strip out the nasty PIC_PROLOGUE/EPILOGUE stuff, since we dont have to lose a register in PIC mode anymore (we use %rip-relative addressing). - update for C register argument passing conventions. - convert 32 bit to 64 bit register sizes etc.
* I have no idea why the reboot(2) syscall wrapper ends with iret, butpeter2003-04-301-1/+1
| | | | update it to be iretq for completeness.
* Update for AMD64. Depend on %rdi (first syscall argument) being preservedpeter2003-04-301-4/+3
| | | | across a "syscall"-style syscall
* Update for AMD64 (repocopied from i386/sys/Ovfork.S - why is it O?)peter2003-04-301-5/+4
| | | | | Depend on %rsi being preserved across the "syscall"-style syscall and strip out the PIC stuff (this cpu has full PC-relative addressing, at last!)
* libc_r wasn't so tied to libc for 22 months.ru2002-11-181-2/+0
|
* Use '_end' symbol instead of 'end' to initialize minbrk and curbrkkan2002-08-081-3/+3
| | | | | | | | | | | | | variables. Both symbols are set to the same value by the linker, and _end symbol has less chances to clash with application defined global symbols. alpha, ia64 and sparc64 ports already use _end, i386 is now consistent with them. Reviewed by: bde Approved by: obrien Reported by: pirzyk
* Generate the normal asm stubs for all sysv system calls. Use these insteadjake2002-05-231-5/+3
| | | | | | | of C wrappers for the *sys indirect system calls. The indirect system calls are horribly broken on sparc64. Submitted by: tmm
* Restore CSRG ID's lost in January 1995.obrien2002-03-2310-40/+50
|
* Use 'mov' instead of 'lea' for setting the syscall number in %eax as thatjhb2001-11-275-7/+7
| | | | | | is clearer about what we are actually doing. Requested by: bde
* Cleanups after previous change:jhb2001-11-131-9/+2
| | | | | | | | | | | - Renumber labels since the previous revision removed one. - Remove useless and wrong comment. - Repeating the function name is just redundant. - The previous revision made the comment about %edx useless. - The comment about %eax was wrong (but did explain why %eax used to be fixed up). Submitted by: bde
* The kernel already fixes up %eax for parents that return from fork, sojhb2001-11-132-6/+2
| | | | | don't bother manually fixing up %eax for the parent process by testing the value in %edx and zeroing and already zeroed %eax.
* De-orbit DEFS.h - the other arches do not use it, and it got replacedpeter2001-10-241-1/+0
| | | | | | with <machine/asm.h>. Reviewed by: bde
* Just use RSYSCALL.ru2001-10-191-2/+1
|
* Removed duplicate VCS ID tags, as per style(9).ru2001-08-1310-20/+0
|
* MAN[1-9] -> MAN.ru2001-03-271-2/+2
|
* Clean up syscall generation in libc by removing HIDDEN_SYSCALLSdeischen2001-01-293-7/+3
| | | | | | | | | | | | | | and treating (almost) all system calls the same way: __sys_foo - actual syscall foo, _foo - weak definitions to __sys_foo Change PSEUDO syscalls (currently only _exit and _getlogin) to be __sys_foo (T) and _foo (W). Add $FreeBSD$ to a few files to satisfy commitprep. Suggested by: bde
* Comment only change; s/_thread_sys_/__sys_/deischen2001-01-261-2/+2
|
* Remove _THREAD_SAFE and make libc thread-safe by default bydeischen2001-01-242-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | adding (weak definitions to) stubs for some of the pthread functions. If the threads library is linked in, the real pthread functions will pulled in. Use the following convention for system calls wrapped by the threads library: __sys_foo - actual system call _foo - weak definition to __sys_foo foo - weak definition to __sys_foo Change all libc uses of system calls wrapped by the threads library from foo to _foo. In order to define the prototypes for _foo(), we introduce namespace.h and un-namespace.h (suggested by bde). All files that need to reference these system calls, should include namespace.h before any standard includes, then include un-namespace.h after the standard includes and before any local includes. <db.h> is an exception and shouldn't be included in between namespace.h and un-namespace.h namespace.h will define foo to _foo, and un-namespace.h will undefine foo. Try to eliminate some of the recursive calls to MT-safe functions in libc/stdio in preparation for adding a mutex to FILE. We have recursive mutexes, but would like to avoid using them if possible. Remove uneeded includes of <errno.h> from a few files. Add $FreeBSD$ to a few files in order to pass commitprep. Approved by: -arch
* Remove last vestiges of thr_sleep and thr_wakeup from libc.jake2000-12-021-1/+1
|
* Prefix the register argument of indirect 'jmp's with a * to make gas 2.10.xjhb2000-11-281-1/+1
| | | | happy.
* Add a couple of debug register helper functions to assist in settingbsd2000-09-211-2/+4
| | | | | | and clearing watchpoints. Reviewed by: jwd@FreeBSD.org, -hackers@
* Remove osig* from NOASM. It bogus now.marcel1999-10-141-2/+1
|
* Remove syscall wrappers.marcel1999-10-091-3/+2
|
* sigset_t change (part 5 of 5)marcel1999-09-291-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------- Most of the userland changes are in libc. For both the alpha and the i386 setjmp has been changed to accomodate for the new sigset_t. Internally, libc is mostly rewritten to use the new syscalls. The exception is in compat-43/sigcompat.c The POSIX thread library has also been rewritten to use the new sigset_t. Except, that it currently only handles NSIG signals instead of the maximum _SIG_MAXSIG. This should not be a problem because current applications don't use any signals higher than NSIG. There are version bumps for the following libraries: libdialog libreadline libc libc_r libedit libftpio libss These libraries either a) have one of the modified structures visible in the interface, or b) use sigset_t internally and may cause breakage if new binaries are used against libraries that don't have the sigset_t change. This not an immediate issue, but will be as soon as applications start using the new range to its fullest. NOTE: libncurses already had an version bump and has not been given one now. NOTE: doscmd is a real casualty and has been disconnected for the moment. Reconnection will eventually happen after doscmd has been fixed. I'm aware that being the last one to touch it, I'm automaticly promoted to being maintainer. According to good taste this means that I will receive a badge which either will be glued or mechanically stapled, drilled or otherwise violently forced onto me :-) NOTE: pcvt/vttest cannot be compiled with -traditional. The change cause sys/types to be included along the way which contains the const and volatile modifiers. I don't consider this a solution, but more a workaround.
* $Id$ -> $FreeBSD$peter1999-08-2811-21/+21
|
* Add wrappers for pread and pwrite syscalls.dt1999-04-041-3/+3
|
* Simplify implementation and eliminate a register preservation problem.luoqi1998-09-181-24/+10
| | | | Reviewed by: Bruce Evans <bde@zeta.org.au>
* Fix a cut 'n paste mistake.luoqi1998-09-131-4/+4
|
* In libc_r, rename vfork syscall to _thread_sys_vfork and make vfork an aliasdt1998-09-121-2/+6
| | | | | | | to fork. It is difficult to do real vfork in libc_r, since almost every operation with file descriptsor changes _thread_fd_table and friends. popen(3) works much better with this change.
* Fixed disordering in previous commit.bde1998-07-291-4/+4
|
* Add wrappers for i386_*_ioperm, i386_vm86 so userland code doesjlemon1998-07-281-3/+5
| | | | | not have to call sysarch() directly. Added man pages for above, as well as sysarch()
* Use the thread-aware errno definition all the time.jb1998-05-051-22/+3
|
* Oops, backout the previous change having confused my underscores.jb1998-04-301-3/+2
| | | | | | __thread_create is a syscall that uses the default asm. It is _thread_create that contains specific asm code, but that lives in libpthread.
* Make cerror thread aware by calling __error() to get a pointer to thejb1998-04-301-22/+5
| | | | | thread-specific error variable. This change make libc use the same cerror code that libc_r has been using.
* The syscall that creates a kernel thread is coming, but it doesn't use thejb1998-04-301-4/+3
| | | | | | default syscall asm, so add it to NOASM. The other syscalls that manipulate kernel threads use the default asm code, so they just get built automatically.
* Nearly missed this one.jb1998-03-091-1/+20
| | | | | | | List non-default asm sources in MDASM so that they replace the defaults. For funny or incomplete syscalls, list them in NOASM to stop them from getting built as defaults.
OpenPOWER on IntegriCloud