Commit Graph

1286 Commits

Author SHA1 Message Date
thorpej
f8ae3272b9 Back out previous soqinsque() and soqremque() changes. This will
stop the panics until the socket queues get converted to <sys/queue.h>.
1996-11-26 23:24:04 +00:00
cgd
3340f02c2b fix two problems with shutdown hook code:
(1) after removing a shutdown hook (in shutdownhook_disestablish()),
    free it.  We created it, we have to free it.  Without this,
    shutdownhook_disestablish() leaks memory.
(2) in doshutdownhooks(), before running each hook, remove it from the
    shutdown hook list.  This makes sure that every hook is tried once
    (because doshutdownhooks() is called from before rebooting, and
    a fault in a shutdown hook will cause doshutdownhooks() to be called
    again), but prevents the hooks from potentially being run infinitely
    (as used to be possible, in the above-mentioned situation).
1996-11-24 00:42:31 +00:00
fvdl
ee489171ee Make previous change in interpreter entry point calculation dependant on
a 'mips' define. XXX

Just a temporary patch to get things going again for Linux ELF binaries,
needs to be solved properly.
1996-11-23 11:46:34 +00:00
cgd
e77b6879f7 Feature:
If not compiled with -D_KERNEL, include different includes and
do so macro magic so that this will fit sanely into test harnesses.
When used in user-land, this should be compiled with -D_EXTENT_TESTING.

Bug fixes:
(extent_insert_and_optimize) You can't do things like:
	LIST_REMOVE(elem->...le_next, ...);
	free(elem->...le_next, ...);
They just don't work (and will corrupt your list and/or malloc free list).

(extent_alloc_region_descriptor) Unless you wait, malloc can fail.
Don't accidentally deref a potentially-NULL pointer.
1996-11-21 18:46:34 +00:00
cgd
9ed8ce3b8f clean up a few spaces vs. tabs and KNF bogons. Make this compile
cleanly with -Wall -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual.
1996-11-15 23:53:32 +00:00
cgd
30ca7eaa8d clean up a few spaces vs. tabs bogons 1996-11-15 23:51:23 +00:00
jtc
d22cdecb45 Add clock_gettime, clock_settime, and clock_getres 1996-11-15 22:44:25 +00:00
thorpej
621d9e4932 Regen. 1996-11-14 04:52:30 +00:00
thorpej
9d9479eb2f Make ntp_gettime() and ntp_adjtime() like other system calls:
- The functions that implement them and the argument names are
  prepended with "sys_".
- Optional systems calls are "UNIMPL" if the support is not being
  compiled into the kernel.
1996-11-14 04:51:09 +00:00
thorpej
82b23eb20c Only call sysctl_ntptime() if NTP is compiled into the kernel. 1996-11-14 04:47:45 +00:00
thorpej
156e926117 Implement bitmask_snprintf(), which takes a value and a string
representing the names of those bits, prints them into a buffer
provided by the caller, and returns a pointer to that buffer.
Functionality is identical to that of the (non-standard) `%b' printf()
format, which will be deprecated.

Rename the non-exported function ksprintn() to ksnprintn(), and change
it to use a buffer provided by the caller, rather than at static
buffer.
1996-11-13 06:06:05 +00:00
jonathan
bbcd2bb1ef Elf32 fixes for mips shared libraries:
* handle interpreters with nonzero virtual address of entry-point:
   subtract p_vaddr from computed entrypoint, as the mips elf exec did.

 * Add #ifdef ELF_INTERP_NON_RELOCATABLE/#endif around the code
   that tries to choose a `good' address at which to load an interpreter,
   if none was set by the emul probe  function.
   (the address chosen could be improved to avoid  fragmenting the
    process virtual address space).

 * define ELF_INTERP_NON_RELOCATABLE in machine/elf_machdep.h for mips CPUs,
   which currently use a GNU-derived ld.so.

ELF_INTERP_NON_RELOCATABLE is not necessary for native NetBSD/alpha ELF
binaries. It may be required for GNU-derived ELF dynamic loaders (Linux/i386?)
1996-11-11 20:33:10 +00:00
thorpej
26a25a87b2 Optimization of soqinsque() and soqremque():
Keep queue of pending sockets in a double linked list.  Previously,
a singly linked list was used, giving O(N) insertion/deletion times,
and was a major time consumer for sockets with large pending queues.
The double linked list give O(C) insertion/deletion times with only
a small cost in complexity.

Since a socket can be on, at most, one queue at a time, both so_q and
so_q0 can safely be used as (forward and backward, respectively) queue
pointers.

Submitted my Matt Thomas <matt@3am-software.com>, a long time ago.
(Geez, I've been running with this patch for _months_, and had completely
forgotten about it!)
1996-11-10 05:58:37 +00:00
cgd
8a3333b2a9 Fix an inconsistency that came in with Lite: setrq() was renamed to
setrunqueue(), but remrq() was never renamed.  Rename remrq() to
remrunqueue().
1996-11-06 20:19:19 +00:00
gwr
f5927ca260 Minor nit in my change regarding const and non-ansi code... 1996-10-27 21:50:33 +00:00
gwr
2ada6af51b Oops, part of that last commit was not meant to go in.
The definitions of va_alist, va_dcl belong elsewhere.
1996-10-27 20:50:00 +00:00
gwr
a0d9bd5bb2 The hack-ish tricks to make the ANSI-style va_start macro work in
non-ANSI mode were not quite complete.  This makes non-ANSI work.
Perhaps it would be better to eliminate this hack altogether...
1996-10-27 20:30:52 +00:00
cgd
ce53653783 make the namei struct members ni_dirp and ni_next, and the componentname
struct member cn_nameptr 'const', since they should never be used to
modify the path name.  (Only the pathname buffer, cn_pnbuf, should be
modified.)  Propagate the const poisoning to code that uses the namei
and componentname structs.
1996-10-25 23:13:58 +00:00
cgd
9fa0b6391e don't thow away char_type's 'const'ness via a cast when passing it to scanc().
(1) that causes -Wcast-qual to be unhappy, and (2) the cast is unnecessary!
1996-10-25 22:11:39 +00:00
cgd
ca829ca73c don't assign non-const pointers from const pointers; make the appropriate
pointers 'const'.  (-Wcast-qual)
1996-10-25 22:01:44 +00:00
cgd
ef6504281a remove duplicate prototypes from tty_subr.c (ndqb, putc, b_to_q), and
make the first arg of b_to_q (the u_char * that points to data to be
stuffed into the queue) const, since it's not modified.
1996-10-25 21:20:29 +00:00
cgd
574f71ab26 replace a construction in sys_setitimer() that was too tricky for its
(and my!) own good with a more straightforward one that is equally (and
more apparently) correct.
1996-10-24 04:35:33 +00:00
cgd
8595fc3073 make coredump() use more sensible error returns (even though they're
not used by anything, for now), and implement MNT_NOCOREDUMP by checking
whether or not MNT_NOCOREDUMP is set on the file system where the dump
would land (i.e. the file system of the process's current working
directory), and disallowing the core dump if it's set.
1996-10-23 23:13:19 +00:00
cgd
6d3337bdf6 permit MNT_NOCOREDUMP as a generic mount flag. 1996-10-23 23:07:08 +00:00
matthias
a587cc60a0 * In dosetrlimit ensure that rlim_cur and rlim_max are >0. Otherwise
the kernel might crash due to invalid values passed to setrlimit.
1996-10-23 07:19:38 +00:00
jtc
4039b6bcba Return ESPIPE when filedes is associated with a FIFO. 1996-10-21 17:42:48 +00:00
mrg
8fd70c1fe1 in coredump(), check the SUGID bit rather than testing various parts
of the cred structures.  this prevents a previously set[gu]id process
from generating a core file.
1996-10-18 08:39:34 +00:00
perry
8a0600b163 removed #ifdef tahoe 1996-10-17 16:31:54 +00:00
thorpej
52c0d38a1a Several changes:
- Rename EX_NOBLOB to EX_NOCOALESCE; it's much more descriptive of
  what's going on.
- In extent_free_region_descriptor(), if we're a fixed extent,
  freeing a dynamically allocated region descriptor, and someone
  is waiting on the freelist, let the waiter have it, rather than
  free'ing it back to the system.
- Use ALIGN(), rather than our homegrown EXTENT_ALIGN(), when dealing
  with map overhead.  Privatize the EXTENT_ALIGN() macro; there's no need
  to export it.
- Implement EX_BOUNDZERO flag.  This changes the boundary line policy in
  extent_alloc() and extent_alloc_subregion(); boundary lines are
  computed relative to 0, rather then the start of the extent.
- Fix a nasty race between multiple participants doing region and
  descriptor allocation.
- Add a new flag to specify that it's ok to wait for space in the
  extent: EX_WAITSPACE.
- Blow away an unnecessary splhigh()/splx().
- Put a bunch of sanity code inside #ifdef DIAGNOSTIC/#endif.
1996-10-17 08:27:35 +00:00
ws
31bdb14ed5 Rename recently checked in KGDB to IPKDB to resolve conflicts with older KGDB 1996-10-16 19:32:08 +00:00
cgd
c8e4c454f2 curproc was being used directly for ru_{in,ou}block counting. Instead
of using it directly, use a local, and set that local to be curproc
if curproc is not NULL else a pointer to process 0's proc struct.
If syncing disks while handling a panic that occurred while 'curproc'
was NULL, the old code would dereference NULL and die.
1996-10-15 23:06:27 +00:00
cgd
279c087328 reorganize tsleep() so the (cold || panicstr) test is done before the
ktrace context switch checking.  If syncing disks while handling a panic
that occurred while 'curproc' was NULL, the old code would dereference
NULL and die.  The (slight) reorganization was done so that space (one extra
splhigh()), rather than time (one extra comparison), would be wasted.
1996-10-15 23:00:10 +00:00
cgd
709ebdf6ab panic must print a newline 1996-10-15 21:35:56 +00:00
cgd
0e4ddf059b deal more sanely with ELF binaries with only a single program header
section.  Patch come up with by Bob Baron <rvb+@cs.cmu.edu> and myself.
This entire bit of code (the code which sets daddr/dsize and taddr/tsize)
is very bogus, but it's not clear what the 'right' way to fix it is
and this patch fixes a problem preventing some ELF executables from
being run.
1996-10-13 22:54:52 +00:00
christos
f443b89c92 backout previous kprintf change 1996-10-13 02:32:29 +00:00
christos
ee3d88fbdf fix uiomove's first argument and remove unnecessary casts 1996-10-13 02:27:52 +00:00
cgd
4431ea58a9 replace ELF_ALIGN with ELF_TRUNC (round to lower alignment boundary) and
ELF_ROUND (round to higher alignment boundary), and use them properly.
Also, change a bit of code in elf_load_psection to use the next ELF_ROUND
macro.  This fixes a bug found by Robert Baron <rvb+@cs.cmu.edu> where
elf_load_psection, if given a properly aligned address at which to load
the section, would round actually load it at the next highest alignment
boundary.
1996-10-11 19:44:02 +00:00
christos
60d201973e printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:46:11 +00:00
christos
153ead2dff - Use debugging printf - macros instead if #ifdef #endif everywhere
- printf -> kprintf, sprintf -> ksprintf
1996-10-10 22:43:21 +00:00
thorpej
4a23efc7bc Fix botch in netbsd-1-2 merge (multiple inclusion of <sys/tty.h>),
pointed out by Jonathan Stone <jonathan@DSG.Standford.EDU>.
1996-10-10 00:27:41 +00:00
thorpej
f2e79979ad Merge the netbsd-1-2 branch back into the mainline. 1996-10-09 00:59:15 +00:00
mycroft
02ee12e4ba Use PHOLD() and PRELE() rather than frobbing p_holdcnt directly. 1996-10-09 00:04:39 +00:00
cgd
1878cacd45 KNF, de-static the functions that were static (so they'll show up
in ddb, etc.)
1996-10-08 03:40:40 +00:00
cgd
6ab18a1959 don't include <machine/exec.h> explicitly. No other changes needed, since
<sys/exec.h> was already being included.
1996-10-07 21:43:02 +00:00
cgd
cd3ab82ec2 clean up a comment added in the last commit 1996-10-07 18:29:24 +00:00
cgd
5d4cf83257 when loading interpreter: check its vnode type, check its mount point
for NOEXEC and NOSUID, and make sure the interpreter file is executable.
The mount point checks are done because, even though the interpreter
is not the program being 'executed', code from the interpreter is being
executed, and so the mount point's flags should be respected.
1996-10-07 18:24:48 +00:00
scottr
d2be4a69c2 Expand tab in copyright message; it loses on some consoles. 1996-10-05 06:32:43 +00:00
ws
2da166f660 Fix p_nice vs. NZERO code.
Change NZERO to 20 to always make p_nice positive.
On Christos' suggestion make p_nice explicitly u_char.
1996-10-02 18:04:56 +00:00
cgd
cc06b3f10f Remove the implicit inclusion of EXEC_ELF32 when COMPAT_LINUX and/or
COMPAT_SVR4 is included.
1996-10-02 05:30:29 +00:00
cgd
ccd26363f6 allow a.out executable support to be optional (conditioned on EXEC_AOUT),
and shell script support to be optional (conditioned on EXEC_SCRIPT).
Remove the implicit inclusion of EXEC_ECOFF when COMPAT_OSF1 and/or
COMPAT_ULTRIX is included, and of EXEC_ELF32 when COMPAT_LINUX and/or
COMPAT_SVR4 is included.
1996-10-02 05:29:29 +00:00
cgd
60b9a20b61 initialize vnode_free_list and mountlist at compile time with the new
queue.h list/queue head initializer macros.  mountlist was converted so
that panics (or other reboots) early on in kernel startup don't cause
sys_sync() to croak.  vnode_free_list was converted because it was nearby.
1996-10-01 22:49:11 +00:00
cgd
3b34cba879 exec vnode locking protocol changes: in a nutshell, don't keep vnodes
locked for any longer than we have to.
1996-09-30 23:18:43 +00:00
cgd
6f5b5cefc7 make the check_header and load_file functions static 1996-09-30 23:02:14 +00:00
ws
0d59d2eb20 Enter new KGDB on panic just like other kernel debuggers 1996-09-30 17:32:01 +00:00
cgd
fea9aa2096 clean up a comment (in code derived from the a.out code, where i cleaned
up the comment earlier).
1996-09-27 03:38:27 +00:00
cgd
2f42e5b8ed fix some typos and clean up some comments. 1996-09-26 23:34:46 +00:00
cgd
0e097578a2 add and use a machine-dependent header, which currently defines some
macros to use to remove #ifdefs from the machine ID case check.
Eventually, these headers will contain other information, e.g.
machine-dependent relocation information, etc.
1996-09-26 21:50:55 +00:00
cgd
79bd41b179 add support and reorganize for 64-bit ELF, included by EXEC_ELF64
option.  (Also, make EXEC_ELF32 option a way to explicitly include
32-bit ELF support.)
1996-09-26 20:51:03 +00:00
christos
3f15a06497 Recognize %.2x as %02x 1996-09-25 21:03:06 +00:00
cgd
80c82b8766 rename exec_elf.c to exec_elf32.c, since it execs 32-bit ELF. exec_elf32.c
was copied from exec_elf.c on the CVS server to keep the logs intact.
1996-09-20 22:33:23 +00:00
jtc
16fe807b60 renamed sys_getlogin to sys___getlogin. required by libc namespace conventions 1996-09-19 04:52:12 +00:00
thorpej
0d3a57ea3f Add COMPAT_M68K4K to the exec switch. 1996-09-10 22:05:03 +00:00
mycroft
7cbc74f45c Use INFTIM, not -1. 1996-09-07 21:47:23 +00:00
mycroft
1449e67e30 Modify poll(2) prototype. 1996-09-07 14:20:09 +00:00
mycroft
07d2eae876 Regen. 1996-09-07 14:18:04 +00:00
mycroft
cdd2b02b50 Modify poll(2) prototype. 1996-09-07 14:16:42 +00:00
mycroft
264dd4757c Regen. 1996-09-07 12:56:49 +00:00
mycroft
2bc736661a Implement poll(2). 1996-09-07 12:40:22 +00:00
mycroft
59f71c45fc Clean up sys_select() slightly. 1996-09-05 15:32:52 +00:00
mycroft
af113f915d Use SET(), CLR(), ISSET(). 1996-09-05 15:31:40 +00:00
mycroft
b3eac79b64 tty stop functions really should return void, not int, and certainly not both. 1996-09-02 06:43:16 +00:00
christos
da17295d91 Calling shmdt(2) before calling shmat(2) would crash the system because
p->p_vmspace->vm_shm would be NULL. Protected the rest of the cases where
that might happen too. This was the reason why sunxdoom would panic the
system in SVR4 emulation.
1996-09-01 22:53:06 +00:00
mycroft
de1c962824 Don't core dump if ruid != euid or rgid != egid. 1996-09-01 01:56:10 +00:00
cgd
f8ed933394 implement realloc(), just like the user-land version, except it takes
"type" and "flags" arguments a la kernel malloc().
1996-08-27 20:01:42 +00:00
cgd
d7083cda8d update so that SYSCALL_DEBUG works again. s/nosys/sys_nosys/g.
(It must not have been used for a long time!)
1996-08-20 22:00:36 +00:00
explorer
a9ef8aef84 This fixes a nasty little bug where traceroute (and other raw-ip sending
programs which attach their own header) can crash the machine.  The problem
in this case was:
	a variable "space" was set to the total data to copy,
	len was used to remember how much to copy in this chunk (mbuf),
	in one case, len = min(MCLBYTES - max_hdr, resid) but
		size -= MCLBYTES;
	 instead of
		size -= len;

Note that userland programs can still crash the machine by providing
bogus data in the ip->ip_len field I suspect.  I haven't verified this,
but will soon be doing so and applying a fix of some sort.  Probably
clamping the ip->ip_len value to the true packet size will be ok.
1996-08-14 05:53:18 +00:00
explorer
1177a1fc69 formatting fix only 1996-08-14 05:43:35 +00:00
explorer
13659c5c84 spelling error only 1996-08-14 05:43:19 +00:00
thorpej
d719cb7901 Inside some DIAGNOSTIC code, cast some pointer arithmetic results
to long to quiet the compiler.
1996-08-13 23:25:10 +00:00
mrg
cd658e4447 oops, need to copyinstr() here. how come it worked anyway? 1996-08-11 04:05:33 +00:00
mrg
72bad48e62 implement RB_STRING, derived from SunOS, via compat_sunos. 1996-08-10 00:23:14 +00:00
mrg
5abbf990f3 Change reboot(2) to take two arguments: bootopt like normal and also
a boot string for firmware that can do this, such as the SPARC and
the sun3 models.  It is currently silently ignored on all other
hardware now, however.  The MD function "boot()" has been changed to
also take a char *.
1996-08-09 10:30:23 +00:00
thorpej
3946240709 Fix unititialized variable warning. Pointed out by Aaron Brown. 1996-07-25 20:41:48 +00:00
abrown
062b2cdd6b Fix unused variable warning for an "int i" left over from the old disk
statistics code.
1996-07-24 16:13:04 +00:00
thorpej
aba7675464 In extent_alloc_subregion(), don't adjust the initial boundary check
value if we're not concerned with boundary checking.  Avoids a stupid
infinite loop.
1996-07-23 23:09:10 +00:00
explorer
67b1de765f Add compile-time and run-time control over automatic niceing 1996-07-17 21:54:04 +00:00
thorpej
0462d3063c Remove old-style disk instrumentation code. 1996-07-12 22:00:42 +00:00
jtc
f9a9b2e372 Used signed instead of unsigned longs for sec and usec variables to
handle cases which would otherwise yeild wildly wrong results.
1996-07-11 00:09:29 +00:00
cgd
1c5ea3c014 print difference between pointers with %ld, so that -Wformat works
on the Alpha and for consistency.  Also, other minor formatting cleanups.
1996-07-10 18:15:22 +00:00
chuck
9c9676883e add native mode atm protocol layer 1996-07-04 03:16:56 +00:00
pk
947ec65105 sunos_compat: return EIO when TIOCGPGRPing a half-open pty. This is
expected by SunOS pty-allocating programs (telnetd,rlogind,..).
1996-07-02 21:19:02 +00:00
mycroft
8ea2fc5788 Regen. 1996-06-23 11:08:01 +00:00
mycroft
351bdbd445 Implement setre[ug]id() compatibly with 4.3BSD, SunOS, and Linux. 1996-06-23 11:04:11 +00:00
thorpej
6041e29f1f My extent map manager. Sort of like resource maps, but more flexible.
Understands allocation aligment and boundary restrictions, "specific region"
allocations, and suballocations.  Capable of statically or dynamically
allocating map overhead.

Many thanks to Matthias Drochner for running the code for me, and sending
me bug fixes, optimizations, and suggestions.  Also, many thanks to
Chris Demetriou for his extremely helpful suggestions.

XXX No manual page yet.  One is forthcoming, as soon as I can scare up
the time to write one.  This has been sitting on my plate for quite a
while, and several projects are waiting for it.  Time to move on.
1996-06-23 00:10:08 +00:00
mycroft
506cefab8c In the sync case of bwrite(), move the accounting earlier so that so that the
delayed write is logically converted to a sync write, mirroring the async case.
In bdwrite(), move the tape case earlier to avoid needless reassignbuf()s.
1996-06-18 20:50:23 +00:00
pk
b298c40fbe Call reassignbuf() at splbio in bdwrite(). 1996-06-17 22:21:31 +00:00
cgd
d73abf41aa avoid unnecessary checks of m_get/MGET/etc.'s return values. When
they're called with M_WAIT, they are defined to never return NULL.
1996-06-14 22:21:12 +00:00
christos
e2e0f65050 Merge pagedvn changes from OpenBSD and added mips defines. Also added
ELF_MAP_PAGE_ZERO define. The entry point computation is different than
the one OpenBSD uses.
1996-06-14 18:15:55 +00:00
jtc
2074cccbb8 Cast sec' to a u_quad_t in sec * 1000000 + usec' so the expression
is computed with quad integer arithmetic (so it won't overflow after
4294 seconds).
1996-06-13 23:22:22 +00:00
pk
7b9f9e5426 Check user access rights only if `uio_segflg' says it's a user space buffer. 1996-06-13 22:30:18 +00:00
christos
306987eb37 - Pass the Elf exec header in the emulation dependent probe functions.
- remove static from elf_read_from().
1996-06-13 18:35:25 +00:00
cgd
1abc77f86d if kmem_malloc() fails while trying to allocate an mbuf cluster, try
and free some space by calling m_reclaim().  Also, log the "mb_map full"
error message (at most) every 60-seconds.  The old code would log it
once over the lifetime of the system, but that's not a useful diagnostic.
(More useful is the new behaviour, which roughly indicates how often
periods of heavy load occur, without spamming the console and system
logs with messages.)
1996-06-13 17:02:23 +00:00
cgd
06c209646e handle the case where kmem_malloc() returns NULL in the 'can wait' case.
Right now, this code just panic()s (same as kmem_malloc() used to do
before, but different message), but in the future it should be modified
to try to reclaim wasted memory.
1996-06-13 16:53:34 +00:00
cgd
f41d0a3d9b in select(), if it's a small number of file descriptors use a
automatic array rather than an array allocated with alloca().
(This was the only use of alloca() in the kernel, and it wasn't
necessary or consistent with the way other functions in this file
work.)
1996-06-13 05:08:47 +00:00
cgd
1e2b610d5a #ifdef __alpha__, call a machine-dependent function with new device
structure and 'aux', right before ca_attach is called for the
newly-attached device.  This allows the alpha port to do root device
autodetection without modifying every bus and device driver which could
be in the 'boot path.'  In the long run, it may make sense to make
this machine-independent.
1996-06-13 04:50:29 +00:00
pk
50e7d72655 Protect vnode when updating for started IO on buffers. 1996-06-11 11:15:36 +00:00
briggs
0a55dbede5 Do not declare tickfixcnt ifdef NTP. 1996-06-09 04:51:03 +00:00
cgd
57b8bdb5c3 Fix a bug where free()ing an already-free block, or even a block that looked
like it might have already been freed, would cause a crash because of a bad
pointer dereference.  Pointed out by Brian Noble <bnoble@cs.cmu.edu>.
1996-06-06 19:13:32 +00:00
mrg
8def9fa734 don't tty_detach() in ttyfree(). make the user of ttyfree() do
the tty_detach() as not all ttymalloc()'ed ttys are tty_attach()ed.
1996-06-06 15:31:24 +00:00
mrg
b9c4c21d8e add a comment on how to use tty_attach(). 1996-06-04 13:59:10 +00:00
mycroft
abfbe7c6c4 Deal with FD_SETSIZE larger than the default. 1996-06-02 14:48:23 +00:00
jtk
ef561b71a7 print out file systems being unmounted, #ifdef DEBUG. pr#1492 1996-06-01 20:24:05 +00:00
mrg
a715717750 now that tty.h has queue.h, we do not need it here. 1996-05-31 00:03:05 +00:00
cgd
2fc4279f35 a few minor KNF nits 1996-05-30 23:43:31 +00:00
mrg
13eaf2e29b check tty_count first (from cgd). 1996-05-30 23:32:33 +00:00
mrg
ade39d6cb2 call tty_init(). 1996-05-29 19:10:16 +00:00
mrg
5583238255 impliment ttylist stats based on disk stats. 1996-05-29 02:02:42 +00:00
mycroft
4c8302e0f4 Oops. Add missing label. 1996-05-23 17:07:03 +00:00
mycroft
8d0a82819c We can only get a control mbuf for PRU_SEND or PRU_SENDOOB. Add diagnostic
code to panic in this case.
1996-05-23 16:49:08 +00:00
mycroft
5288bfd58b Make sure the control and data mbufs are freed in all cases. 1996-05-23 16:41:49 +00:00
mycroft
03232fb1f2 Separate some code into separate functions.
Make unp_addr be a pointer to the sockaddr, not to the mbuf, as with raw
sockets.
Other minor cleanup.
1996-05-23 16:03:45 +00:00
mycroft
08cc6b486f And PRU_SEND. 1996-05-22 19:06:07 +00:00
mycroft
b85e5d8f5e PRU_CONNECT also needs a proc pointer. 1996-05-22 19:00:52 +00:00
mycroft
49d52c9b1c Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and
PRU_CONTROL.  The usrreq interface really needs to be split up, but this will have to wait.
Remove SS_PRIV completely.
1996-05-22 13:54:55 +00:00
mycroft
627bb9bd50 Remove bogus comment in setgid(). 1996-05-22 02:22:47 +00:00
mrg
92292a798d initialise securelevel to zero to allow it to be patchable. this is _not_ a security issue. 1996-05-20 17:49:05 +00:00
jonathan
950ec8ffb3 Remove unused locals "struct ecoff_filehdr *efp = &execp->f;". 1996-05-19 20:36:06 +00:00
jonathan
431ae5d022 Add line discipline code, initialization, and config support for MosquitoNet's
Metricom Ricochet starmode-radio-IP driver.
1996-05-19 17:17:50 +00:00
pk
bcc0cb3fa0 Don't touch retval[] in socketpair(); manual page says this system call
return 0 on success (PR#2428).
1996-05-17 22:45:32 +00:00
tls
3052b5a949 fix obscure problem involving ptrace of init 1996-05-15 06:17:47 +00:00
mycroft
9401257bde Regen. 1996-05-11 18:30:39 +00:00
mycroft
261382c331 Change VOP_UPDATE() semantics:
* Make 2nd and 3rd args timespecs, not timevals.
* Consistently pass a Boolean as the 4th arg (except in LFS).
Also, fix ffs_update() and lfs_update() to actually change the nsec fields.
1996-05-11 18:26:27 +00:00
cgd
3b4db01a70 update for new exec_ecoff.h header, clean up a bit (KNF + changes similar
to those made in the header).
1996-05-09 23:44:44 +00:00
mycroft
584810c846 Implement futimes(). 1996-04-23 10:29:02 +00:00
mycroft
7ee33b9890 Regen. 1996-04-23 10:27:28 +00:00
mycroft
af747826c6 Add futimes(), at position 206. 1996-04-23 10:24:21 +00:00
christos
4ef330b934 remove include of <sys/cpu.h> 1996-04-22 01:38:12 +00:00
thorpej
e408d7413a Fix __sysctl() to return the proper value to the caller, to match
documented behavior.  sysctl(3) is documented to return 0 on success,
-1 on failure.  The previous behavior was to return -1 on failure
and the number of bytes copied back down to user space.
Fixes part of PR #1999, from Kevin M. Lahey <kml@nas.nasa.gov>
1996-04-12 23:21:37 +00:00
ragge
62b2afac2d Removed a function that were #ifdef vax'ed. 1996-04-09 17:21:56 +00:00
cgd
fbce6d4468 Make config_found_sm() (and therefore config_found()) and config_rootfound()
return a struct device * of attached device, or NULL if device attach failed,
rather than 1/0 for success/failure, so that code that bus code which needs
to know what the child device is doesn't have to open-code a hacked variant
of config_found().  Make config_attach() return struct device *, rather than
void, to facilitate that.
1996-04-04 06:06:18 +00:00
cgd
e3c70ced5f call config_init() before autoconfiguration, to initialize alldevs and
allevents lists.
1996-04-04 00:26:28 +00:00
cgd
8c248b98cc change 'struct device' and 'struct evcnt' lists (alldevs and allevents) to
be TAILQ's.  TAILQ_HEAD's of those structs are now 'struct devicelist' and
'struct evcntlist', respectively.
1996-04-04 00:25:44 +00:00
christos
96776962f7 Fix PR2277; make lkmenodev() be the same type as enodev(). 1996-03-31 21:40:27 +00:00
christos
8b63c1fbac Goodbye kern_conf.h 1996-03-30 22:26:30 +00:00
christos
e2d37158ba Change %r -> %: as for recursive printf's 1996-03-30 22:25:18 +00:00
christos
87a65718ea Eliminate kern_conf.h 1996-03-30 22:24:38 +00:00
christos
0babd67cbc Fix db_printf formats. 1996-03-30 22:23:18 +00:00
christos
174916004d Fix another printf format warning. 1996-03-29 01:55:12 +00:00
cgd
f92325cf2f kill unnecessary (and sometimes dangerous) casts of ioctl commands to int 1996-03-29 00:25:30 +00:00
thorpej
44dcfee5ea Move an #ifdef FIFO so this compiles on a SPARC (-Wall) if FIFO is not
defined.
1996-03-22 06:51:04 +00:00
fvdl
6c53a8d22f Remove previously introduced bug: always make sure mappings of a removed
file don't stick around.
1996-03-18 23:06:08 +00:00
pk
bf834e7def Remove extraneous argument from sysctl_doprof().
Fix a printf format.
1996-03-17 02:44:40 +00:00
thorpej
532e997971 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 00:57:14 +00:00
christos
c9e746a335 Fix printf() formats. 1996-03-16 23:17:04 +00:00
mycroft
6b1f642521 Calculate the equivalent of `SHIFT_HZ' at run time, in initclocks(). 1996-03-15 07:56:00 +00:00
cgd
1b7b5cb771 support nested #if/#else/#endif sets, to allow ULTRIX compat code to handle
Mips ULTRIX and VAX ULTRIX from the same syscall table.
1996-03-15 01:25:12 +00:00
christos
e79beaff89 - fdopen -> filedescopen
- bring kgdb prototype in scope.
1996-03-14 19:01:08 +00:00
mycroft
65bd075be8 Reran makesyscalls.sh. 1996-03-08 21:05:40 +00:00
mycroft
79bb0bd2c7 Move an assignment inside #ifdef NTP. 1996-03-08 06:27:30 +00:00
christos
4a43afe50f - Make things compile cleanly after the NTP additions.
- Remove unused variables in exec_ecoff.c
1996-03-07 14:31:16 +00:00
cgd
a8804b9fb4 Do not build vnode_if.[ch] for each kernel. Build them once, like the
various syscall sources/headers, and just compile them.  From PR 2142, OK'd
by mycroft.  (These are now generated files.)
1996-02-29 21:01:12 +00:00
cgd
3d67685d36 Do not build vnode_if.[ch] for each kernel. Build them once, like the
various syscall sources/headers, and just compile them.  From PR 2142, OK'd
by mycroft.
1996-02-29 20:54:58 +00:00
mycroft
d66ea3596c Add dependency for syscallargs.h. 1996-02-29 16:02:30 +00:00
jonathan
1f6d8c1c1f Fix for PR kern/2140: a typo in the nested CPP if/else/endif caused
SHIFT_HZ to be undefined for values of HZ other than 64.
1996-02-29 02:48:53 +00:00
cgd
c6a9e56518 Replace config_found() with config_found_sm(), which adds a cfmatch_t to the
argument list.  This allows easy 'submatching', which will eliminate a fair
bit of slightly tricky duplicated code from various busses.  config_found()
is now a #define in sys/device.h, which invokes config_found_sm().
1996-02-27 21:45:46 +00:00
jonathan
e7ef034c05 Add NTP kernel precision timekeeping from Dave Mill's xntp distribution
and the "kernel.tar.Z" distribution on louie.udel.edu, which is older than
xntp 3.4y or 3.5a, but contains newer kernel source fragments.

This commit adds support for a new kernel configuration option, NTP.
If NTP is selected, then the system clock should be run at "HZ", which
must be defined at compile time to be one value from:
  60, 64, 100, 128, 256, 512, 1024.

Powers of 2 are ideal; 60 and 100 are supported but are marginally less
accurate.

If NTP is not configured, there should be no change in behavior relative
to pre-NTP kernels.

These changes have been tested extensively with xntpd 3.4y on a decstation;
almost identical kernel mods work on an i386.  No pulse-per-second (PPS)
line discipline support is included, due to unavailability of hardware
to test it.

With this in-kernel PLL support for NetBSD, both xntp 3.4y and xntp
3.5a user-level code need minor changes. xntp's prototype for
syscall() is  correct for FreeBSD, but not for NetBSD.
1996-02-27 04:20:30 +00:00
cgd
c0cdc0cf04 when printing data modified on the free list:
(1) do not cast it to (void *), and
	(2) print it as 0x%x, rather than %p.
This is not perfect (because the data being printed is "int32_t"-sized), but
is more correct than printing it as a pointer because the data is _not_ a
pointer, it is data to be printed in hex, and on some systems, pointers are
wider than the data items being printed, which leads to excess and misleading
output.  The only 'right' solution to this is to have a printf specifier
that prints the fixed-sized types the right way, and that's not really
practical.
1996-02-20 23:56:16 +00:00
fvdl
56a654e17f Changes for NVSv3 code: pull in more NFS include files into kern_time.c
to get types right (overkill for just one function call, but oh well).
Clear B_NEEDCOMMIT in bdwrite().
1996-02-18 11:57:06 +00:00
christos
20df3b41ab uipc_proto.c: No need for the forward decls anymore; everything is prototyped.
kern_time.c: add header to get the NFS prototypes if needed.
1996-02-13 21:10:43 +00:00
christos
09afd77655 More proto fixes 1996-02-09 18:59:18 +00:00
mycroft
06a1236be9 Rearrange the locking in sys_unlink(), more like nfsrv_remove(). 1996-02-09 15:39:12 +00:00
mycroft
53fccab940 Fix vop_link, vop_symlink, and vop_remove semantics in several ways:
* Change the argument names to vop_link so they actually make sense.
* Implement vop_link and vop_symlink for all file systems, so they do proper
  cleanup.
* Require the file system to decide whether or not linking and unlinking of
  directories is allowed, and disable it for all current file systems.
1996-02-09 14:45:36 +00:00
fvdl
d6b5a89f90 Use a default, 'safe' address to map the loader to in case the an emulation-
specific probe function did not specify it. It picks the same address
as mmap() does for a non-fixed map at address 0. See also the comment
around a similar line of code in vm/vm_mmap.c.
1996-02-09 13:25:54 +00:00
mycroft
bf6bf23e7b If parent is in ppwait, wake it up early to prevent deadlock. 1996-02-09 01:19:21 +00:00
mycroft
7366dec9ec No need for LOCKPARENT in sys_lstat(), and eliminate dead variables. 1996-02-08 02:54:20 +00:00
jtc
d9d402d0fb Revert to sane symlink semantics. This something we should have done
long ago.  Fixes many PRs.
1996-02-07 16:55:56 +00:00
pk
00acf2040e unp_detach() return type botch. 1996-02-04 20:32:15 +00:00
christos
4aea4494ff new files... 1996-02-04 02:19:27 +00:00
christos
e630447d8c First pass at prototyping 1996-02-04 02:17:43 +00:00
christos
cc3c2e69cd First pass at prototyping 1996-02-04 02:17:39 +00:00
christos
8a5b1b92e2 First pass at prototyping 1996-02-04 02:15:01 +00:00
christos
df9a562f20 Removed tty_compat.c; it is part of the kernel compat library... 1996-02-02 18:49:42 +00:00
mycroft
bb7cccd06d Do the previous change a little differently. 1996-02-02 07:49:52 +00:00
jtc
e19bfae4f9 Rename struct timespec fields to conform to POSIX.1b 1996-02-01 00:18:04 +00:00
mycroft
99686e0059 Add a vnode** argument to getvnode(), prototype it, and make it return
EBADF if the file descriptor has been revoked.
1996-01-30 20:05:33 +00:00
mycroft
436d930db5 Use insmntque() rather than manually frobbing the mount list. 1996-01-30 18:21:08 +00:00
cgd
6ffadcadf6 fix off-by-one error in tickfix code. (should increment when count >=
interval, because count goes from 0->(interval-1) to count interval
ticks.)
1996-01-17 04:37:31 +00:00
fvdl
961c294fd5 * Don't rely on the protection bits of segments anymore to decide whether
it's text or data; use the entry point instead (this solves some trouble
  with ELF executables with strange permissions)
* Incorporate some fixes from r_friedl@informatik.uni-kl.de sent to
  netbsd-bugs a while ago
1996-01-16 23:07:18 +00:00
pk
ba8a7101f0 Correct test for ECHONL (from der Mouse; PR#1922). 1996-01-10 20:52:27 +00:00
thorpej
5b39541e48 New generic disk framework. Highlights:
- New metrics handling.  Metrics are now kept in the new
	  `struct disk'.  Busy time is now stored as a timeval, and
	  transfer count in bytes.

	- Storage for disklabels is now dynamically allocated, so that
	  the size of the disk structure is not machine-dependent.

	- Several new functions for attaching and detaching disks, and
	  handling metrics calculation.

Old-style instrumentation is still supported in drivers that did it before.
However, old-style instrumentation is being deprecated, and will go away
once the userland utilities are updated for the new framework.

For usage and architectural details, see the forthcoming disk(9) manual
page.
1996-01-07 22:01:38 +00:00
jtc
2fce159ff8 Changed name of sigaltstack's ss_base field to ss_sp to match XPG4.2 and
traditional usage.
1996-01-04 22:21:33 +00:00
thorpej
17eb6e2bc1 Move the old-style disk instrumentation "structures" to a central location
(sys/kern/subr_disk.c) and note that they should/will be deperecated.
1995-12-28 19:16:31 +00:00
mycroft
f597a53319 Remove the process from zombproc and its parent's child list before freeing
its resources.
1995-12-24 11:23:33 +00:00
mycroft
f183fc14f7 If __FORK_BRAINDAMAGE, continue stuffing retval[1] for the benefit of main(). 1995-12-10 08:26:02 +00:00
cgd
6652367efa (1) undef various EXEC_ cpp symbols before defining them, in case
they're already defined for some reason (this can happen
        on the alpha, for example, which needs to define EXEC_ECOFF
        in the std.alpha config file).
(2) minor spacing consistency.
1995-12-09 05:34:47 +00:00
mycroft
af942a9add Only expect vm_fork() to return if __FORK_BRAINDAMAGE is defined.
Use splstatclock() rather than splhigh() in one place.
Eliminate unused third arg to vm_fork().
1995-12-09 04:23:07 +00:00
mycroft
bcd91943f8 Remove unused third arg to shmfork(). 1995-12-09 04:12:56 +00:00
mycroft
feb42498e3 If we abort, make sure to free ep_emul_arg. 1995-12-09 04:11:00 +00:00
mycroft
00be80b604 Add a limfree(), and use it. 1995-12-09 04:09:32 +00:00
mycroft
27b9d9f436 Eliminate an extra variable. 1995-12-09 04:07:41 +00:00
mycroft
65806fd730 When converting from termios to sgtty, if RAW is set, use the previous\
settings of LITOUT and PASS8, since these cannot be determined from the\
termios modes.
1995-12-07 00:53:29 +00:00
thorpej
a5d3f68110 Add hooks for COMPAT_HPUX. 1995-11-28 08:07:25 +00:00
cgd
b69dc1f62c move ../sys/syscallargs.h out of the way when making new version,
just like we do for init_sysent.c, syscalls.c, and ../sys/syscall.h.
1995-11-22 23:11:32 +00:00
cgd
a321588516 update for new syscalls.master 1995-11-22 23:09:26 +00:00
cgd
a2ce90f34c change definition of profil() to make it 64-bit friendly. This has
no practical consequence on 32-bit systems.  old prototype was
int profil(char *, int, int, int), and new one is int profile(char *,
size_t, u_long, u_int).  the size_t is the size of the buffer,
and the u_long is the 'starting offset'.  (I changed the last int
to u_int, because it's treated as a u_int everywhere, and isn't
logically a signed value.)
1995-11-22 23:07:19 +00:00
mycroft
7edc899fdd ffs -> ufs 1995-11-11 22:00:15 +00:00
gwr
dd962ebbf6 Make sys_mount accept "ufs" as an alias for "ffs" 1995-11-07 22:41:02 +00:00
christos
16c4374c1f Make the ktrace code emit a record that indicates the current emulation
every time there is an attach or detach event.
1995-10-22 00:35:06 +00:00
mycroft
ec64328797 Check for todo<0, done<0, and done>todo. 1995-10-10 02:51:45 +00:00
mycroft
5a44558c93 Reran makesyscalls.sh. 1995-10-10 01:33:26 +00:00
mycroft
44a38d8470 Add aliases for all compat functions. 1995-10-10 01:32:53 +00:00
mycroft
2dd293d3c3 Add hooks for COMPAT_FREEBSD, from Noriyuki Soda. 1995-10-10 01:26:36 +00:00
thorpej
c819cd372d In lkmioctl(), disallow LMRESERV, LMLOADBUF, LMUNRESRV, LMREADY,
and LMUNLOAD if securelevel > 0.  From Matthew Green <mrg@eterna.com.au>
1995-10-10 00:23:20 +00:00
mycroft
55c46e9514 Reran makesyscalls.sh. 1995-10-07 06:41:34 +00:00
mycroft
245f292fed Prefix names of system call implementation functions with `sys_'. 1995-10-07 06:25:19 +00:00
mycroft
2d9aa901e9 Write core dumps with mode 0600. 1995-10-06 16:12:05 +00:00
mycroft
62f5268325 Fix oversight in previous. 1995-10-05 08:50:02 +00:00
mycroft
9806359967 Make PARENB depend on RAW and ANYP, but not on LITOUT or PASS8. 1995-10-05 08:38:55 +00:00
mycroft
1c5d240ffa Make PASS8 = !ISTRIP and LITOUT = !OPOST, if CSIZE is CS8. 1995-10-05 02:45:06 +00:00
mycroft
f5f86fc38b Fix type errors. 1995-10-05 01:42:22 +00:00
mycroft
210951a875 Switch to using SET(), CLR(), and ISSET() macros, like tty.c. 1995-10-05 01:35:07 +00:00
thorpej
42c10934c1 Fix typo in declaration of exit(), pointed out by Chris Demetriou. 1995-09-27 20:26:51 +00:00
cgd
08cae70f24 fix annoying but non-critical rounding but in ttyinfo(). (If
microseconds goes over 10^6 when rounding, increment seconds.)
1995-09-22 00:11:35 +00:00
thorpej
60024eb978 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 21:40:36 +00:00
thorpej
1f5a887dbf makesyscalls.sh changed 1995-09-19 21:31:49 +00:00
thorpej
70bf3eea21 Emit prototypes for system call functions and append them to the
`syscallargs' header file.
1995-09-19 21:28:56 +00:00
thorpej
7f6d48201f s/memcmp/bcmp/ 1995-09-16 00:28:08 +00:00
ws
166530c153 Distribute cache entries more evenly 1995-09-08 14:15:07 +00:00
mycroft
873ed30f83 so_pcb should be a void *. 1995-08-17 02:57:20 +00:00
mycroft
a87c08a36e Access rights are now stored in MT_CONTROL mbufs. Document this. 1995-08-16 01:03:19 +00:00
mycroft
0ecd5256ad Allocate PCBs with malloc(), more mgetclr(). Be more careful to free the
PCB after it's done with.
1995-08-16 00:29:50 +00:00
mycroft
d23236204d When resetting a signal, change ps_sigact, just to be sure. 1995-08-14 06:07:55 +00:00
mycroft
5c03d498db Fix typos. 1995-08-14 01:47:03 +00:00
mycroft
2e95cf3d31 Implement SA_RESETHAND and SA_NODEFER.
Only return SA_NOCLDSTOP in the sigaction struct for SIGCHLD.
Rename ss_flags bits.
1995-08-13 22:53:59 +00:00
mycroft
36a94a031a Lock the process in core before operating on it. 1995-08-13 09:05:51 +00:00
mycroft
5482957905 splnet --> splsoftnet 1995-08-12 23:59:09 +00:00
mycroft
80d7b0695a minphys() functions really should return void. 1995-08-12 20:30:45 +00:00
thorpej
0f77910137 Add and document a `kern.rawpartition' sysctl. 1995-08-04 18:36:08 +00:00
cgd
32b4385a97 fix bug pointed out by, and do the cleanup suggested by
Alasdair Baird <alasdair@wildcat.demon.co.uk>.  From pr 1301.
1995-08-02 22:01:46 +00:00
mycroft
605a125097 After an I/O operation completes, immediately set B_BUSY again. Also,
lower spl sooner, and remove an unneeded splbio()/splx() pair.
1995-07-27 02:37:12 +00:00
cgd
e9d17d38b5 avoid unnecessary aging of buffers. This used to make sense, when buffer
caches were much smaller, but makes little sense now, and will become more
useless as RAM (and buffer cache) sizes grow.  Suggested by Bob Baron.
1995-07-24 21:19:27 +00:00
cgd
b45221af72 prototype strategy and minphys, use & check minphys return value 1995-07-24 07:45:24 +00:00
mycroft
73d0d3717e Don't toss out tty stop signals if we're being traced. 1995-07-24 03:18:42 +00:00
christos
7de0fcfd12 Add KTR_EMUL to indicate a switch between syscall emulations.
Currently this record is emitted only on exec. Maybe it should
be emitted on ktrace() attach too.
1995-07-19 15:19:08 +00:00
cgd
f5bbdfba41 bdwrite() should upgrade writes to tape devices by sending them to
bawrite().  it's logically more correct (doesn't return an error code,
because it's async; bdwrite is also async), it still writes things
in-order, it makes sure the proper accountins is done (see the
wasdelayed cases in bwrite()), and it allows writes to vnodes on volumes
mountd with the MNT_ASYNC to be converted into delayed writes the way
God, err, Kirk intended.  Convert synchronous bwrite()s on MNT_ASYNC
file systems to delayed writes.
1995-07-12 07:56:31 +00:00
cgd
9c3fe30d92 fix long-standing XXX in getblk(): NFS does funky things (somewhat
explained in comments), which can cause a race condition.  amazingly,
the _only_ time i've ever seen or heard of this problem was in some
comments and sources by Rick Macklem, and when running against the
a DEC OSF/1 NFS server running on an Alpha.
1995-07-12 07:39:00 +00:00
mycroft
7263209ce6 Make each disk and tape driver define its own read and write functions.
Deprecate rawread() and rawwrite() completely.  Remove d_strategy from cdevsw to
force the abstraction barrier.
1995-07-04 07:15:28 +00:00
mycroft
083ba962e2 Oops; need fcntl.h. 1995-07-03 16:58:38 +00:00
mycroft
9a4505cb89 Close routines take file flags, not I/O flags. Fix two incorrect usages. 1995-07-02 18:13:02 +00:00
christos
1654fca494 Remove unused define 1995-06-30 02:57:20 +00:00