summaryrefslogtreecommitdiffstats
path: root/lib/libc/amd64
Commit message (Collapse)AuthorAgeFilesLines
* De-orbit DEFS.h - the other arches do not use it, and it got replacedpeter2001-10-249-9/+6
| | | | | | 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-1320-43/+6
|
* MAN[1-9] -> MAN.ru2001-03-271-2/+2
|
* Clean up syscall generation in libc by removing HIDDEN_SYSCALLSdeischen2001-01-294-38/+9
| | | | | | | | | | | | | | 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-246-60/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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@
* rfork(2) wrapper for simple rfork-style threads. I have lost count ofpeter2000-07-291-1/+1
| | | | | | | | | | | | | | | the number of times I have given this to people and got asked: why isn't it in libc? It is impossible to do this without assembler glue to reset the stack for the new child process. int rfork_thread(flags, stack_addr, start_fnc, start_arg) int flags; Flags to rfork system call. See rfork(2). void *stack_addr; Top of stack for thread. int (*start_fnc)(void *); Address of thread function to call in child. void *start_arg; Argument to pass to the thread function in child. This is deliberately not documented or prototyped in includes until the corresponding alpha version is written.
* Use assembler directives rather than ALTENTRY() so that longjmp() andjasone2000-05-042-10/+8
| | | | | siglongjmp() are weak symbols. This is necessary to allow static linking with the linuxthreads library port.
* Take care to avoid having "strong" and "weak" symbols of the same name injasone2000-03-161-4/+0
| | | | libc_r.
* Undo the ill-conceived breakage of the previous commit and really fix:jasone2000-01-291-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | For libc_r renamed syscalls, correct symbol naming from _thread_sys_foo() <-- _foo() to _thread_sys_foo() <-- _foo() <-- foo(). This is necessary for system calls which libc_r doesn't define foo(). Some weak symbols such as poll() are defined twice. From what I understand, depending on one weak symbol or the other to be used is a bad idea. All such weak symbols defined in the libc_r-specific code should therefore be made strong (non-weak?). Simplify PSEUDO() to not define any weak symbols, since they aren't ever needed. alpha/SYS.h: Correct reversed usage of WEAK_ALIAS(), which has reversed arguments from __weak_reference(). Also, fix reversal of symbols, so that syscall foo() is a weak alias for _foo(). Add WEAK_ALIAS() call to PRSYSCALL(), which unlike the i386 version of PRSYSCALL(), is not defined in terms of PSYSCALL(). Make PSEUDO() equivalent to the i386 version.
* For syscalls that are renamed to _thread_sys_foo, create a weak aliasjasone2000-01-281-7/+7
| | | | called _foo, not _thread_sys_foo.
* Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(),jasone2000-01-271-6/+7
| | | | | | | | | | | | | | | | | just use _foo() <-- foo(). In the case of a libpthread that doesn't do call conversion (such as linuxthreads and our upcoming libpthread), this is adequate. In the case of libc_r, we still need three names, which are now _thread_sys_foo() <-- _foo() <-- foo(). Convert all internal libc usage of: aio_suspend(), close(), fsync(), msync(), nanosleep(), open(), fcntl(), read(), and write() to _foo() instead of foo(). Remove all internal libc usage of: creat(), pause(), sleep(), system(), tcdrain(), wait(), and waitpid(). Make thread cancellation fully POSIX-compliant. Suggested by: deischen
* Remove unnecessary alternate entry points for *setjmp(). Make the mainjasone2000-01-203-15/+18
| | | | | | | entry point the standard name when not compiling libc_r (for example, longjmp is the main entry point instead of __longjmp). Suggested by: bde
* Make minor entry point changes to support libc_r.jasone2000-01-193-6/+6
|
* Add three-tier symbol naming in support of POSIX thread cancellationjasone2000-01-124-12/+25
| | | | | | points. For library functions, the pattern is __sleep() <-- _libc_sleep() <-- sleep(). The arrows represent weak aliases. For system calls, the pattern is _read() <-- _libc_read() <-- read().
* Unbreak profiling. bde says this is not the cleanest way to fix thejasone2000-01-042-4/+4
| | | | | | problem, but that it works. Submitted by: bde
* Creating weak symbols doesn't work correctly when building an aout libc.jasone1999-12-242-8/+4
| | | | | | | | | | | | Doing the "right thing" here is difficult, so create two ENTRY points for each function (for example, __setjmp and setjmp are equivalent). This isn't pretty, but it works for both aout and ELF. libc symbol naming needs an overhaul in order to properly support function wrapping, specifically in the case of a real libpthread, and these duplicate entry points should be fixed as part of that overhaul. Pointed out by: bde
* Make setjmp, longjmp, sigsetjmp, and siglongjmp weak aliases forjasone1999-12-142-4/+12
| | | | | | | | __setjmp, __longjmp, __sigsetjmp, and __siglongjmp, respectively. This supports cancellation in the linuxthreads port. In the long run, a much more comprehensive solution will necessitate more dramatic changes to libc symbol naming, and these aliases will probably need modification at that time.
* Remove osig* from NOASM. It bogus now.marcel1999-10-141-2/+1
|
* \begin{quote}marcel1999-10-101-1/+1
| | | | | | | | | | | setjmp() gets the jmp_buf pointer from the wrong place (the place where the return address is) in the shlib case, and uses it (only) to fetch the current signal mask to address (return_address + 28). This address is normally read-only (I hope), so the sigprocmask() call has no effect except to return an error code. \end{quote} Submitted by: bde
* Remove syscall wrappers.marcel1999-10-091-3/+2
|
* sigset_t change (part 5 of 5)marcel1999-09-294-34/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------- 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-2825-45/+45
|
* 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
|
* Build the syscalls (in libc, not libc_r) with weak symbols so thatjb1998-05-051-3/+9
| | | | libpthread can override them as required.
* 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.
* Stop renaming these in libc_r because wrappered versions don't make sense.jb1998-04-293-30/+6
| | | | PR: i386/4826, bin/5953
* 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.
* Removed bogus .PATH statement.bde1997-10-161-3/+1
|
* Removed the subdirectory paths from the definitions of MAN[1-9]. Theybde1997-10-161-3/+2
| | | | | were a workaround for limitations in bsd.man.mk that were fixed about 2 years ago.
* Moved `SRCS+= frexp.c' to the correct Makefile.inc.bde1997-10-141-3/+3
| | | | Sorted SRCS.
* Changed all paths to be relative to src/lib instead of src/lib/libcjb1997-05-031-2/+5
| | | | | | | | | | so that all these makefiles can be used to build libc_r too. Added .if ${LIB} == "c" tests to restrict man page builds to libc to avoid needlessly building them with libc_r too. Split libc Makefile into Makefile and Makefile.inc to allow the libc_r Makefile to include Makefile.inc too.
* Fixed long lines.bde1997-04-191-8/+9
| | | | | | Removed unused macros CALL() and ASMSTR. Reviewed by: jdp
* Revert $FreeBSD$ to $Id$peter1997-02-2225-45/+45
|
* Moved definitions of PIC macros from SYS.h to DEFS.h so that SYS.hbde1997-02-141-20/+0
| | | | | | | | doesn't need to be included in files that have nothing to do with syscalls. Added missing `.text' to START_ENTRY so that ENTRY() works when invoked in the data section.
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-1425-45/+45
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Correct a "spelling" error in a comment.dyson1996-10-311-2/+2
|
* Submitted by: john birell (jb@cimlogic.com.au)julian1996-08-221-3/+3
| | | | | fixups for makefiles and for Thread-safe sycalls
OpenPOWER on IntegriCloud