Commit Graph

1456 Commits

Author SHA1 Message Date
jtc 7228c89e17 Added new macros:
SYSTRAP(x):             Expands to the code used to call syscall x.
				This is used to simplify other macros.

        SYSCALL_NOERROR(x):     Like SYSCALL except that "x" is a syscall
				that can never fail.

        RSYSCALL_NOERROR(x):    Like RSYSCALL except that "x" is a syscall
				that can never fail.
1996-10-17 22:47:14 +00:00
jtc 9d7f517756 Added new macros:
SYSTRAP(x):             Expands to the code used to call syscall x.
				This is used to simplify other macros.

        SYSCALL_NOERROR(x):     Like SYSCALL except that "x" is a syscall
				that can never fail.

        RSYSCALL_NOERROR(x):    Like RSYSCALL except that "x" is a syscall
				that can never fail.
1996-10-17 18:14:56 +00:00
cgd 55c6bc901c catch up with <machine/asm.h> changes, SYS.h changes, and the removal
of DEFS.h
1996-10-17 03:08:03 +00:00
cgd 7b8ed4c70b update for new <machine/asm.h> and generally clean up:
rename SYSCALL_NOLABEL as CALLSYS_ERROR (for consistency with CALLSYS_NOERROR
    now in asm.h), and implement it using CALLSYS_NOERROR.
reimplement SYSCALL, RSYSCALL, and PSEUDO to use the appropriate macros.
implement SYSCALL_NOERROR and RSYSCALL_NOERROR to do the same thing as
    SYSCALL and RSYSCALL, but without the error checking/handling.
1996-10-17 03:03:53 +00:00
cgd a2863e2f30 copy neither DEFS.h (it no longer exists) nor SYS.h (it's never been
necessary in libkern) to libkern any longer.
1996-10-17 02:58:18 +00:00
cgd 347f3d6114 kill this. Just include <machine/asm.h> directly 1996-10-17 02:57:08 +00:00
cgd 98a0fb0a16 fix a typo: take and cast a pointer to the argument, rather than trying
to cast the argument to a pointer.
1996-10-17 01:39:40 +00:00
perry 78954ddcf6 Nuked machine specific conditionals for tahoe. 1996-10-16 17:56:37 +00:00
perry 90dac65cbf Nuked tahoe machine specific conditionals. 1996-10-16 17:53:44 +00:00
jonathan 5965973b0f Add missing "t9, " to "la" insn in error-return case. 1996-10-16 06:21:10 +00:00
mrg e6b86e3b9c fix bogon in last change. 1996-10-14 10:41:07 +00:00
cgd 4cd050e74f temporary hack until better support for multiple toolchains is in the tree:
build SASM and SPSEUDO on the alpha without the '-k' flag to the assembler,
since -k is a flag specific to NetBSD's hacked assembler.
1996-10-13 20:28:55 +00:00
christos 858f971050 in_addr_t and in_port_t changes 1996-10-13 04:08:34 +00:00
christos b47990743d <machine/endian.h> -> <sys/types.h> 1996-10-13 00:05:33 +00:00
cgd 6e4431ed29 stnrcpy() isn't a function. strncpy() is. Use it instead. 1996-10-11 20:59:20 +00:00
jtc ace90ad26b Since the user provide his own message catalog (via NLSPATH and LANG)
the __strerror() and __strsignal() functions can not assume that the
messages will not overflow a NL_TEXTSIZE-sized buffer.

Noted by Mike Long <mike.long@analog.com> in PR
1996-10-11 00:51:07 +00:00
jtc bf5c90d5f9 merge in 1.2 branch 1996-10-09 01:46:13 +00:00
mrg 92390243e6 always update length; from vixie. 1996-10-08 04:09:58 +00:00
scottr 6f72cdccd4 Remove outdated BUGS section (from Mike Long, PR 2804) 1996-10-04 16:59:46 +00:00
cgd 61dc0e200c fix pasto: Elf_{Off,Word} rather than Elf32_{Off,Word} 1996-10-03 04:55:31 +00:00
cgd e5629b37cc clone from nlist_elf32.c (with ECOFF mods). Adds comments,
optimization, cleanup.
1996-10-01 13:37:05 +00:00
cgd 802cbd1ba7 clean up comments a bit. 1996-10-01 13:35:34 +00:00
cgd 561e189aaa "do over." Rewrite from scratch, or, more precisely, based on a high-speed
merge of libc's ECOFF nlist support (written by me, a while ago), and the
(relatively new, but again written by me) kvm_mkdb ELF support.
1996-10-01 00:32:52 +00:00
cgd 571692b849 fix a thinko in the check-removal changes 1996-10-01 00:27:38 +00:00
cgd e5699c2fe3 kill recently added 'check' functions, since they only add code to be more
expensive, i.e. they save nothing and add code.  also, beat it with the
style stick.
1996-09-30 23:51:05 +00:00
cgd 80fde3aab4 kill recently added 'check' functions, since they only add code to be more
expensive, i.e. they save nothing and add code.
1996-09-30 23:49:27 +00:00
christos e324d0c9f6 Reflect reality. 1996-09-28 19:08:22 +00:00
cgd 9a5eb71903 slightly tune what gets compiled in: On the Alpha, we need ECOFF and
ELF64.  On other architectures only include a.out support, since we don't
know whether or not they'll have the headers necessary for ECOFF and/or
ELF, and since they only want a.out for now (execpt the mips archs, but
they do Special things).  There should be a better way to select which
bits of nlist code get compiled in, but currently there is not.
1996-09-27 22:41:59 +00:00
cgd d1bae5c5d5 rename rcsid to e64rcsid, so it doesn't conflict with the one in nlist_elf32.c 1996-09-27 22:38:06 +00:00
cgd c8365a76b4 Seriously revamp libc's nlist()/__fdnlist() support:
(1) split nlist() into multiple files, for clarity and to make
	    ELF 32/64 support easier,
	(2) support multiple executable types at the same time, and
	(3) add support for 32- and 64-bit ELF (32-bit ELF support
	    originally from OpenBSD, but with several bug fixes so
	    that it actually handles symbols types more correctly
	    (and therefore _works_ for some of the more tricky uses
	    of the nlist routines) and changes for 64-bit ELF support).
1996-09-27 22:23:03 +00:00
matthias b92278aef8 The pc532 port now has string functions in assembler.
strcmp.S, strcpy.S and strlen.S are contributed by Randy Hyde.
1996-09-24 09:29:52 +00:00
matthias 9ea65c1c28 Changed KMSRCS to reflect new reality (Stringfunctions in assembler). 1996-09-24 09:18:29 +00:00
matthias 6a01b1234b Make it possible to have a md version of memccpy. 1996-09-24 09:14:18 +00:00
thorpej 95c870f69b Update for the new internal name for __getlogin(). 1996-09-23 02:43:11 +00:00
jtc 6c68d47b78 Renamed _getlogin syscall to __getlogin, as _getlogin is the namespace
clean name for getlogin.

Moved _getlogin.o (now __getlogin.o) from PSEUDO to ASM, as this
syscall really does have a return value (although it will "always"
succeed since it should only be called from libc's getlogin())
1996-09-19 04:50:02 +00:00
cgd 731ac8686e set the GP before accessing errno. 1996-09-17 21:16:12 +00:00
jonathan 9f3b05068c * Add Mips ABI changes for ELf shared library support.
From OpenBSD, patched into NetBSD by <bouyer@ensta.fr>.
* Include generic NetBSD/mips <mips/*.h> files, instead of old Sprite names.
1996-09-17 01:32:22 +00:00
jonathan 81b108b45f Add NetBSD RCSid headers, and change assembly-code LIBC_SCCS id tag string
from "Id:" to  "NetBSD:".
1996-09-16 18:10:35 +00:00
cgd a5adf9b9ba reload GP _before_ error check+branch 1996-09-15 18:18:26 +00:00
jtc 95c287709b set HAVE_STRERROR 1996-09-13 17:46:49 +00:00
jtc 9b9f8829d1 sync with tzcode96l 1996-09-10 22:04:29 +00:00
jtc b27646e2c2 import tzcode96l 1996-09-10 21:59:47 +00:00
mark 7332aa83f6 These files contains stub functions that just called abort() are no
longer needed now we have working assembly versions.
1996-09-09 22:06:25 +00:00
mark 10756ef086 Use the new assembly files for fpgetmask(), fpsetmask(), fpgetsticky()
and fpsetsticky().
1996-09-09 22:03:24 +00:00
mark 7f53925054 Initial commit of working versions of the functions for manipulating
the floating point cumulative exception flags and exception enable masks.
These functions replace the dummy C functions that just called abort().
1996-09-09 22:00:39 +00:00
cgd 8df506ad69 user better names for local labels, as suggested by Matt Thomas and
slightly tweaked.
1996-09-09 00:57:59 +00:00
cgd 86a813e847 remove unused local label 1996-09-09 00:51:27 +00:00
mycroft dc5f9bfad3 Increment minor version. 1996-09-08 00:03:56 +00:00
mycroft c49d89171e Mention that timeout is in milliseconds. 1996-09-07 21:53:08 +00:00
mycroft 28a375c45a Cross-reference poll(2). 1996-09-07 21:51:53 +00:00
mycroft 56b990d61e Document the use of INFTIM. 1996-09-07 21:50:07 +00:00
mycroft 52528cc4f8 Add a poll(2) man page. 1996-09-07 19:05:32 +00:00
mycroft f6f3a3525f Document EFAULT as a valid error. 1996-09-07 17:54:26 +00:00
mycroft 65e2460e9e Build a stub for poll(2). 1996-09-07 14:25:51 +00:00
jtc 4063ad5adb #ifdef _KERNEL, #include <lib/libkern/libkern.h> instead of <string.h>. 1996-08-15 22:45:17 +00:00
jtc 1e6bbdf957 Add memcmp.c and memset.c to KSRCS (files copied to libkern). 1996-08-15 22:36:59 +00:00
chuck 3dc0d5258f fix xdr_ypmap_parms (missing "&"'s in calls to xdr_ypdomain_wrap_string
and xdr_ypmap_wrap_string).   prevents segv in ypserv.
1996-08-15 21:43:03 +00:00
explorer 5b3a9aad8d Cute little bug with operator precedence in our stdio code. It appears
that flushing wasn't done right when input buffers were refilled, due
to a check like
	if (foo == _A | _B) which, since _A and _B are both != 0, always
evaluates to true.

Found by proven@cygnus.com
1996-08-13 07:54:00 +00:00
mrg 6dd52f02da as the new reboot(2) will only use the bootstr option if the new RB_STRING
flag is set, the major number does not need to change.  backing this out.
1996-08-10 00:25:36 +00:00
mrg 18393cb155 document RB_STRING. 1996-08-10 00:22:29 +00:00
thorpej 5ef055ef5c Phrasing/formatting tweaks, from Kenneth Stailey <kstailey@dol-esa.gov>
in PR #2677.
1996-08-09 19:09:32 +00:00
mrg 9c0b5cc2eb reboot(2)/getpgid(2) changes. 1996-08-09 14:10:45 +00:00
mrg 74693079c6 update for new reboot(2). 1996-08-09 10:32:11 +00:00
thorpej bb516fa80e Fix some potential type-size problems. 1996-08-09 10:06:02 +00:00
mark d5df3db65b Make this with whether __STDC__ is defined or not. 1996-08-07 17:39:44 +00:00
mark 4e058e1f10 Make sure errno is always zeroed before the syscall.
Don't trash r0 on exit.
1996-08-07 17:38:16 +00:00
phil 8bcbf9b3bb Make it correctly return unslept seconds if interrupted for any other
reason than SIGALRM.  (Was ALWAYS returning 0.)
1996-08-02 17:52:50 +00:00
jtc 943f3d2f5c The argument to isspace() must be representable as an unsigned char.
This change casts the argument to an unsigned char so that this
function will work with strings with their 8th bit set.
1996-07-20 01:09:05 +00:00
jtc 2d903c854c Changing type of "c" to unsigned did not fix the problem --- a signed
char is sign extended before it is assigned to an unsigned int.  This
fix, which has been tested with a different testcase, adds casts to
signed chars which results in proper behavior.
1996-07-20 01:03:54 +00:00
jtc 83481cc8e8 Changing type of "c" to unsigned did not fix the problem --- a signed
char is sign extended before it is assigned to an unsigned int.  This
fix, which has been tested with a different testcase, adds explicit
casts to unsigned char before the value of a character is copied.
1996-07-20 01:00:55 +00:00
explorer 24ff249a08 document AUTONICETIME and AUTONICEVAL sysctls 1996-07-17 18:06:36 +00:00
cgd 60bbd380f2 pull up bug fix from libkern:
>frob the mask so that only the low set bit is set, to avoid lossage.
1996-07-15 05:21:09 +00:00
cgd 2f6bb217b1 add an assembly version of ffs(). 1996-07-15 03:13:15 +00:00
jtc 24de9e4a12 The argument to isfoo() must be representable as an unsigned char, so
type of "c" has been changed to unsigned.  This change allows these
functions will work with strings with their 8th bit set.
1996-07-11 01:47:38 +00:00
jtc 6d8b15101f Install linkaddr.3 as link_addr.3 and link_ntoa.3 too. 1996-07-10 20:15:48 +00:00
thorpej 500e663387 Now that setreuid() and setregid() are system calls again, don't call
the C library "private" versions.  Doing so results in unresolved
symbols the next time a dynamically linked program is run after the
new C library is installed.
1996-07-08 16:42:49 +00:00
jtc a0d2fe2548 Thanks to the calling conventions used by some cpus, the argument lists
passed to the execl(), execle(), and execlp() functions are in the form
of the argument vector to be passed to execve().  On these architectures,
it is unnecessary to count the number of arguments, allocate space on
the stack, copy the arguments, etc.  The vector already on the stack
can be used instead.

When some arguments are passed in registers (like most RISC CPU's), it
should be possible to allocate stack space adjacent such that the
registers can be copied to that memory.  After that, the same
approach described above can be used.

This change takes advantage of this on the i386, m68k, and ns32k.  It
is probably true on the vax, but I am unable to check.  RISC CPU's
probably need assembly language implementations to ensure everything
is placed exactly as needed when registers are copied to the stack...
1996-07-04 07:18:56 +00:00
jtc 614420255a Split all exec*() functions out of exec.c into their own files. 1996-07-03 21:41:46 +00:00
jtc a174b58e2c Added a new VA_START macro to hide the differences between varargs.h
and stdargs.h.  This cleans up a lot of conditionals throughout this
file.
1996-07-03 19:53:46 +00:00
abrown 347a3b2582 Copy over from libkern:
> Prevent recursive invocation of mcount() while in kernel by setting profiling
> state to BUSY while in mcount(). This allows profiling to work when mcount()
> calls a profiled routine (for example, udiv on the SPARC).
1996-06-29 14:32:58 +00:00
jtc b021f209c3 Changed to conform to POSIX.2 B.3.2.2 "popen() shall ensure that any streams
from previous popen() calls that remain open in the parent process are closed
in the new child process."  Fixes PR #2575.
1996-06-29 00:51:49 +00:00
jtc 16e8217f5a new implementation that simply clears most significant bit 1996-06-26 15:05:40 +00:00
jtc 290756c01b use fscalel instead of ftwotoxl/fmulx 1996-06-26 15:04:06 +00:00
mycroft 601306abca Resurrect the setre[ug]id() stubs. 1996-06-23 11:52:49 +00:00
mycroft 23558a0acd Clean up removed files. 1996-06-23 11:50:33 +00:00
mycroft f699ec835f Remove the old (broken) setre[ug]id() emulation. 1996-06-23 11:27:59 +00:00
jtc 3a375fb249 Merged in changes from branch (make sure all memory, file descriptors,
mappings, etc. are freed and return (nl_catd) -1 on error).   Also fix
one minor bug and clean up NLSPATH parsing a bit more.
1996-06-21 06:21:04 +00:00
jtc 749fcbc59b Ensure user can't make us overrun fixed sized buffers. 1996-06-20 18:47:08 +00:00
jtc c40394d175 Fix NLSPATH processing --- catopen was not processing beyond the first
colon.  Try all paths in NLSPATH as per XPG4.2.  Expand %l, %t, and %c
to nothing.  Should be language, territory, and codeset.
1996-06-20 14:54:38 +00:00
jtc 0df251764e Changed clnt_{s,}p{errno,error,createerror} so that the functions that
output emit newlines and those that return a pointer to string do not
append them.

The existing behavior was inherited from RPC4.0, but this seems to have
been corrected sometime before SunOS 4.1.

The documentation has been updated to reflect the new behavior.
1996-06-19 20:38:43 +00:00
christos 1d4349e7c8 ypset(8) stopped working; reason:
xdr_ypbind_setdom() would always fail because the test for
xdr_ypdomain_wrap_string() was reversed. Fixed this and in
the process made all the function tests to be of the form:

	if (!xdr_foo())
		return FALSE;
	....
	return TRUE;

instead of having some of them like above and others like:
	if (xdr_foo() == FALSE)
		return FALSE;
	...

	return xdr_bar();

this is more consistant now and hopefully in the future people
will pattern match correctly and not introduce spurious errors.
1996-06-18 20:05:59 +00:00
cgd 0396d19a02 use p->hashfraction when doing non-time-critical calculations, rather than
using HASHFRACTION directly.  in time-critical calculations, if HASHFRACTION
is a power of two, check that p->hashfraction == HASHFRACTION and if so do
the calculation with the compiled-in value so that the compiler can optimize
out (potentially) expensive divisions.  if p->hashfraction != HASHFRACTION,
actually do the division.  This has the result that on machines with slow
division, the division can be optimized out of the common case, but that
if HASHFRACTION changes from the compiled-in value (for whatever reason),
profiling will still work.  Changes suggested by Chris Torek.
1996-06-12 04:15:34 +00:00
cgd 88fce69ea9 s/KERNEL/_KERNEL/ to match libkern version. 1996-06-12 04:03:33 +00:00
mark 29811afbb6 Set r1 to -1 on exit as well as r0 otherwise syscalls returning 64 bit
results will not read -1.
1996-06-05 19:02:12 +00:00
jtc ae94fc4d74 Note functions that probably can be removed 1996-06-01 21:39:21 +00:00
jtc 7c04139bcd Fix computation of ISO 8601 Week Of Year 1996-06-01 21:23:25 +00:00
jtc 8e1fdaa50e Don't special case shift counts > QUAD_BITS or == 0. The former is
undefined behavior (so we can do whatever we want) while the latter
doesn't happen much in actual practice.

These changes make these functions considerably smaller and faster.
1996-06-01 21:21:50 +00:00
jtc 17c5522d18 Re-arranged code a bit so that gcc can optimize this a bit better.
This change results in better code on the i386, m68k, & ns32k, and
equivalent code on the sparc.
1996-06-01 02:24:29 +00:00
jtc fb600c331a Fix typo in last change 1996-06-01 02:06:23 +00:00
jtc 5bbcde6a0d Enable use of assembly language shift routines on the m68k 1996-06-01 01:14:00 +00:00