summaryrefslogtreecommitdiffstats
path: root/lib/libc/alpha
Commit message (Collapse)AuthorAgeFilesLines
* - Use the magic for ___sigreturn in __sigset.jeff2003-11-141-3/+11
| | | | | | | | - In __sigreturn call sigprocmask() to restore our signal state rather than returning through sigreturn(). jmp to ___sigreturn to restore our register state following this. Requested by: pete
* Remove incomplete support for running FreeBSD userland on old NetBSD kernelstjr2003-10-291-4/+0
| | | | lacking the issetugid() and utrace() syscalls.
* Fix wrong identifier on .end directive. The SYSCALL macro does namemarcel2003-08-164-4/+4
| | | | mangling and creates an .ent directive with the mangled name.
* 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
* Add signalcontext() which will be needed by libpthread.deischen2003-08-092-1/+104
| | | | Reviewed by: marcel
* Only allow trapframe formats instead of sigframe formats like themarcel2003-07-301-4/+4
| | | | | comment says and don't write the first 3 arguments to FRAME_TRAPARG_* as they are specific to sigframes.
* Add a comment describing why it's important for the values in thisdas2003-05-081-0/+7
| | | | | | file to be correct, and how to generate them automatically. Caused much pain and suffering for: peter
* Add __ldtoa(), a wrapper around gdtoa() to make it look like dtoa().das2003-04-051-0/+6
| | | | | | | In support of this, add some MD macros to assist in converting long doubles to the format expected by gdtoa(). Reviewed by: silence on standards@
* Replace our ancient dtoa/strtod implementation with the gdtoadas2003-03-122-0/+17
| | | | | | | | | | | | | | | | | | package, a more recent, generalized set of routines. Among the changes: - Declare strtof() and strtold() in stdlib.h. - Add glue to libc to support these routines for all kinds of ``long double''. - Update printf() to reflect the fact that dtoa works slightly differently now. As soon as I see that nothing has blown up, I will kill src/lib/libc/stdlib/strtod.c. Soon printf() will be able to use the new routines to output long doubles without loss of precision, but numerous bugs in the existing code must be addressed first. Reviewed by: bde (briefly), mike (mentor), obrien
* Remove these from libc; they are now system calls.deischen2003-02-181-374/+0
| | | | Prompted by: mini
* o Implement C99 classification macros isfinite(), isinf(), isnan(),mike2003-02-121-0/+5
| | | | | | | | | isnormal(). The current isinf() and isnan() are perserved for binary compatibility with 5.0, but new programs will use the macros. o Implement C99 comparison macros isgreater(), isgreaterequal(), isless(), islessequal(), islessgreater(), isunordered(). Submitted by: David Schultz <dschultz@uclink.Berkeley.EDU>
* Implement fpclassify():mike2003-02-082-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | o Add a MD header private to libc called _fpmath.h; this header contains bitfield layouts of MD floating-point types. o Add a MI header private to libc called fpmath.h; this header contains bitfield layouts of MI floating-point types. o Add private libc variables to lib/libc/$arch/gen/infinity.c for storing NaN values. o Add __double_t and __float_t to <machine/_types.h>, and provide double_t and float_t typedefs in <math.h>. o Add some C99 manifest constants (FP_ILOGB0, FP_ILOGBNAN, HUGE_VALF, HUGE_VALL, INFINITY, NAN, and return values for fpclassify()) to <math.h> and others (FLT_EVAL_METHOD, DECIMAL_DIG) to <float.h> via <machine/float.h>. o Add C99 macro fpclassify() which calls __fpclassify{d,f,l}() based on the size of its argument. __fpclassifyl() is never called on alpha because (sizeof(long double) == sizeof(double)), which is good since __fpclassifyl() can't deal with such a small `long double'. This was developed by David Schultz and myself with input from bde and fenner. PR: 23103 Submitted by: David Schultz <dschultz@uclink.Berkeley.EDU> (significant portions) Reviewed by: bde, fenner (earlier versions)
* Use __FBSDID.obrien2003-01-1928-42/+66
|
* libc_r wasn't so tied to libc for 22 months.ru2002-11-181-8/+8
|
* Disconnect the userland get/set/swapcontext() functions fromdeischen2002-11-162-2/+2
| | | | | | | | | libc. I want to keep these in some version for the thread library/ies, but don't know whether to have them repo-copied to libc_r or renamed and kept in libc. Change the name of an alpha macro that was changed with the system call commit.
* Re-apply the previously backed-out commit that fixes the problem wherearchie2002-10-311-1/+1
| | | | | | | | HUGE_VAL is not properly aligned on some architectures. The previous fix now works because the two versions of 'math.h' (include/math.h and lib/msun/src/math.h) have since been merged into one. PR: bin/43544
* Revert previous commit to unbreak world until we figure out thearchie2002-09-201-1/+1
| | | | right way to do it.
* Fix a problem with the definition of HUGE_VAL causing the gcc warningarchie2002-09-191-1/+1
| | | | | | "cast increases required alignment of target type" on some platforms. Reviewed by: bde
* 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
* Our default syscall.S is identical to what was explicitly being done forobrien2002-05-152-33/+1
| | | | Alpha and IA-64. So there is no need for special handling.
* Fix the style of the SCM ID's.obrien2002-03-221-1/+2
| | | | I believe have made all of libc .h's as consistent as possible.
* Remove 'register' keyword.obrien2002-03-212-3/+3
|
* Move swapcontext.c to the ${MACHINE_ARCH}/gen/Makefile.inc area, otherwisepeter2002-03-211-1/+1
| | | | | it causes undefined references to getcontext() and setcontext() on platforms other than i386 and alpha.
* o Move NTOHL() and associated macros into <sys/param.h>. These aremike2002-02-186-8/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | deprecated in favor of the POSIX-defined lowercase variants. o Change all occurrences of NTOHL() and associated marcros in the source tree to use the lowercase function variants. o Add missing license bits to sparc64's <machine/endian.h>. Approved by: jake o Clean up <machine/endian.h> files. o Remove unused __uint16_swap_uint32() from i386's <machine/endian.h>. o Remove prototypes for non-existent bswapXX() functions. o Include <machine/endian.h> in <arpa/inet.h> to define the POSIX-required ntohl() family of functions. o Do similar things to expose the ntohl() family in libstand, <netinet/in.h>, and <sys/param.h>. o Prepend underscores to the ntohl() family to help deal with complexities associated with having MD (asm and inline) versions, and having to prevent exposure of these functions in other headers that happen to make use of endian-specific defines. o Create weak aliases to the canonical function name to help deal with third-party software forgetting to include an appropriate header. o Remove some now unneeded pollution from <sys/types.h>. o Add missing <arpa/inet.h> includes in userland. Tested on: alpha, i386 Reviewed by: bde, jake, tmm
* Add getcontext, setcontext, makecontext, and swapcontext. Thesedeischen2002-01-104-0/+598
| | | | | | | | | functions are defined in SUSv2 and the latest POSIX spec. Thanks to Bernd Walter <ticso@cicely8.cicely.de> for helping debug my alpha assembly. Approved by: -arch
* Save and restore t12 in the jmp_buf. t12 is used during functiondeischen2001-12-222-0/+3
| | | | | | | | | calls. This change allows libc_r to create thread contexts with a different stack and return address. With much detective work by: Bernd Walter <ticso@cicely.de>
* Fix vendor ID's.obrien2001-11-0712-36/+60
|
* Clean up syscall generation in libc by removing HIDDEN_SYSCALLSdeischen2001-01-296-69/+28
| | | | | | | | | | | | | | 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-245-55/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
|
* Remove duplicate FreeBSD id tags.jhb2000-08-213-3/+0
|
* Take a shot at implementing a functional rfork_thread() for alpha. Thispeter2000-07-292-0/+66
| | | | | | was not fun and I am not entirely certain of the correctness, but it seems to work. (in fact, side by side testing of this code vs the x86 version turned up hidden bugs in the x86 code).
* Finish moving all IEEE fp types to be the same on all arch's.jhb2000-05-102-3/+3
|
* Add FreeBSD Id tags.obrien2000-05-1012-1/+13
|
* fp_except => fp_except_t for consistancy with the i386 and the traditionobrien2000-05-104-8/+12
| | | | C methoid of nameing types.
* 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-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | 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-2/+2
| | | | called _foo, not _thread_sys_foo.
* Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(),jasone2000-01-271-2/+4
| | | | | | | | | | | | | | | | | 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-18/+33
| | | | | | | 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
|
* Fixed corrupted tabs in previous commit.bde2000-01-141-2/+2
|
* Fix unresolved _libc_*() references in libc by creating weak aliasesjasone2000-01-131-0/+2
| | | | to the respective system call entry points.
* Add three-tier symbol naming in support of POSIX thread cancellationjasone2000-01-123-12/+28
| | | | | | 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().
* In longjmp, call sigreturn instead of osigreturn. The latter isn'tjdp1999-10-141-1/+1
| | | | | | visible from userland any more. Reviewed by: luoqi
* Not needed now the syscall matches the prototype.marcel1999-10-123-117/+0
|
* Remove old sig* wrappers.dfr1999-10-091-2/+1
|
* Fix misspelling of the "addq" opcode.jdp1999-09-291-1/+1
|
* sigset_t change (part 5 of 5)marcel1999-09-291-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------- 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.
OpenPOWER on IntegriCloud