Commit Graph

28408 Commits

Author SHA1 Message Date
Matthew Dillon
33bd457d91 Makes contigalloc[1]() create the vm_map / underlying wired pages in the
kernel map and object in a manner that contigfree() is actually able to
free.  Previously contigfree() freed up the KVA space but could not
unwire & free the underlying VM pages due to mismatched pageability between
the map entry and the VM pages.

Submitted by:	Thomas Moestl <tmoestl@gmx.net>
Testing by: mark tinguely <tinguely@web.cs.ndsu.nodak.edu>
MFC after:	3 days
2001-10-13 04:23:37 +00:00
Mark Peek
5930786540 Add memory disk support to allow the boot process to proceed a bit further. 2001-10-12 20:02:50 +00:00
Mark Peek
f57f841372 Modify a virtual address check to allow use of the openfirmware callback
used by the PowerPC simulator (PSIM).
2001-10-12 19:55:04 +00:00
Mark Peek
03ea73346d Add standard calls to device_add_child() and root_bus_configure(). 2001-10-12 19:53:22 +00:00
Matthew Dillon
00a6f47f13 Finally fix the VM bug where a file whos EOF occurs in the middle of a page
would sometimes prevent a dirty page from being cleaned, even when synced,
resulting in the dirty page being re-flushed to disk every 30-60 seconds or
so, forever.  The problem is that when the filesystem flushes a page to
its backing file it typically does not clear dirty bits representing areas
of the page that are beyond the file EOF.  If the file is also mmap()'d and
a fault is taken, vm_fault (properly, is required to) set the vm_page_t->dirty
bits to VM_PAGE_BITS_ALL.  This combination could leave us with an uncleanable,
unfreeable page.

The solution is to have the vnode_pager detect the edge case and manually
clear the dirty bits representing areas beyond the file EOF.  The filesystem
does the rest and the page comes up clean after the write completes.

MFC after:	3 days
2001-10-12 18:17:34 +00:00
Matt Jacob
b03c6ed6e5 Traverse the list of network interfaces rather than use if_index- if_index is
not guaranteed to be dense with respect to the actual list of interfaces.
2001-10-12 18:04:44 +00:00
John Polstra
215e696b60 Correct the input/output/clobber specifications for the cpuid
instruction.  Stefan Keller <dres@earth.serd.org> noticed that CPU
identification was broken when compiled with -O2, and tracked it
down to the asm statement, which was storing values into memory
without specifying that memory was modified.  He submitted a patch
which added "memory" as a clobber, but I refined it further to
arrive at this version.

MFC after:	3 days
2001-10-12 16:49:28 +00:00
Thomas Moestl
84bcb99195 Add inthand_add() and inthand_remove() for use by the MD bus code and
some glue code.
2001-10-12 16:06:41 +00:00
Thomas Moestl
ccece9b5ff Fix some warnings. 2001-10-12 16:00:30 +00:00
Thomas Moestl
b6aaa482ef Save the floating point context to the right pcb in cpu_fork(), and add
an empty stub for is_physical_memory().
2001-10-12 15:58:48 +00:00
Thomas Moestl
c2f5c600c1 Make the NTOHL, NTOHS, HTONL and HTONS macros (which are nops on
sparc64) empty to avoid compiler warnings.
2001-10-12 15:55:45 +00:00
Thomas Moestl
5f19cf9309 Implement DELAY() using the %tick register. 2001-10-12 15:51:19 +00:00
Thomas Moestl
4bc38523ec Add pmap_kenter_flags(), which is used by MD bus code that will be
committed soon, add a stub form pmap_kenter_temporary(), and implement
pmap_extract() and pmap_kextract().
2001-10-12 15:49:51 +00:00
Doug Rabson
cc6fae1156 Pass the correct trapframe pointer to fork_exit - sp is trapframe-16. 2001-10-12 11:50:09 +00:00
Doug Rabson
5b341f5baf If the faulting instruction is a cmpxchg, then isr.w and isr.r will both
be set. We need to check isr.w before isr.r so that we can correctly
handle a cmpxchg to a copy-on-write page.

This fixes the hang-after-fork problem for dynamically linked programs.
2001-10-12 11:49:11 +00:00
Poul-Henning Kamp
602150cc70 Set ulptusein = 0 so that the machine doesn't hang solid after a
printjob.

There is probably a better fix, but this at least makes USB printing
working again.
2001-10-12 11:05:58 +00:00
Peter Pentchev
88fbb423d4 Remove the panic when trying to register a sysctl with an oid too high.
This stops panics on unloading modules which define their own sysctl sets.

However, this also removes the protection against somebody actually
defining a static sysctl with an oid in the range of the dynamic ones,
which would break badly if there is already a dynamic sysctl with
the requested oid.

Apparently, the algorithm for removing sysctl sets needs a bit more work.
For the present, the panic I introduced only leads to Bad Things (tm).

Submitted by:	many users of -current :(
Pointy hat to:	roam (myself) for not testing rev. 1.112 enough.
2001-10-12 09:16:36 +00:00
Matt Jacob
6b89c0be2e roll out last change 2001-10-12 02:30:53 +00:00
John Baldwin
a2f2b3afcd - Catch up to the new ucred API.
- Add proc locking to the jail() syscall.  This mostly involved shuffling
  a few things around so that blockable things like malloc and copyin
  were performed before acquiring the lock and checking the existing
  ucred and then updating the ucred as one "atomic" change under the proc
  lock.
2001-10-11 23:39:43 +00:00
John Baldwin
bd78cece5d Change the kernel's ucred API as follows:
- crhold() returns a reference to the ucred whose refcount it bumps.
- crcopy() now simply copies the credentials from one credential to
  another and has no return value.
- a new crshared() primitive is added which returns true if a ucred's
  refcount is > 1 and false (0) otherwise.
2001-10-11 23:38:17 +00:00
John Baldwin
698166ca55 Whitespace fixes. 2001-10-11 22:49:27 +00:00
John Baldwin
6a90c862d3 Rework some code to be a bit simpler by inverting a few tests and using
else clauses instead of goto's.
2001-10-11 22:48:37 +00:00
Matt Jacob
5aa8fe17f8 Fix declaration disagreement. 2001-10-11 22:02:14 +00:00
Matt Jacob
cbedf1aa6f Remove the hiding of some prototype declarations. 2001-10-11 21:48:02 +00:00
Matt Jacob
abafa9b9aa remove unused variable declaration 2001-10-11 21:47:27 +00:00
David E. O'Brien
14a4ecde9e We use proc_rwmem (with the correct number of args) rather than procfs_domem
in the new world order or procfs.

Submitted by:	des
2001-10-11 21:17:31 +00:00
Jonathan Lemon
d2b4566aa6 Fix the ``WARNING: Driver mistake: repeat make_dev'', caused by using
the wrong index variable within a loop.  I have no idea how this managed
to work on my test box.

Spotted by: fenner
2001-10-11 18:39:05 +00:00
Matt Jacob
458c32f2e8 Note that PROCFS is mandatory at this time- until we fix the
ptrace code to not call things directly from procfs we can't
very well have procfs be a module.
2001-10-11 18:36:41 +00:00
John Baldwin
fa78c35ad2 Oops, these already included sys/lock.h, they just did so after
sys/mutex.h which is too late.
2001-10-11 18:25:57 +00:00
John Baldwin
61d80e90a9 Add missing includes of sys/ktr.h. 2001-10-11 17:53:43 +00:00
John Baldwin
7106ca0d1a Add missing includes of sys/lock.h. 2001-10-11 17:52:20 +00:00
Doug Rabson
65601f6da8 Fix typo in comment. 2001-10-11 13:47:20 +00:00
Doug Rabson
47806f084a Implement MCOUNT hook for assembler. Probably doesn't work right. 2001-10-11 13:35:31 +00:00
Doug Rabson
b4cc6db2df Implement mcount trampoline (untested). 2001-10-11 13:31:55 +00:00
Doug Rabson
f334c8bff7 * Change the calling convention for execve so that it conforms to normal
C calling conventions. This allows crt1.c to be written nearly without
  any inline assembler.
* Initialise cpu_model[] so that the hw.model sysctl works properly.
2001-10-11 12:31:50 +00:00
Crist J. Clark
4479e72cc6 Documentation nitpick. IPFIREWALL_VERBOSE logging really has nothing
to do with "dropped packets." Any packets matching rules with the
'log' directive are logged regardless of the action, drop, pass,
divert, pipe, etc.

MFC after:	1 day
2001-10-11 11:21:18 +00:00
Peter Wemm
9e3b3d75f0 Update comments regarding the transient nature of k_kproc and u_md
in struct user.
2001-10-11 08:15:16 +00:00
Michael Reifenberger
91a701cd13 Fix SysV Semaphore Handling.
Updated by peter following KSE and Giant pushdown.
I've running with this patch for two week with no ill side effects.

PR:		kern/12014: Fix SysV Semaphore handling
Submitted by:	Peter Jeremy <peter.jeremy@alcatel.com.au>
2001-10-11 08:15:14 +00:00
Jonathan Lemon
ffb5a10458 Move device nodes into a /dev/net/ directory, to avoid conflict with
existing devices (e.g.: tunX).  This may need a little more thought.

Create a /dev/netX alias for devices.  net0 is reserved.

Allow wiring of net aliases in /boot/device.hints of the form:
	hint.net.1.dev="lo0"
	hint.net.12.ether="00:a0:c9:c9:9d:63"
2001-10-11 05:54:39 +00:00
Warner Losh
7549e3fe46 takashi shibagaki-san posted a similar patch to nomads. It seems that
more laptops work w/o the shutdown code than with it on reboot.  So
let's disable it for a while.
2001-10-11 05:41:27 +00:00
Jonathan Lemon
cfeff1b693 Set if_type and if_addrlen before calling if_attach(), so the values are
available for the routine to use.
2001-10-11 05:37:59 +00:00
Warner Losh
f3bfc73757 Use the NetBSD init code for the TOPIC parts as a more complete basis
for initializing the parts.  Since I don't have any of these parts in
any of my working laptops, I'm committing this to allow people to test
it.  Will MFC when I receive reports of it working.
2001-10-11 05:37:32 +00:00
Paul Saab
cbc89bfbfe Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader
tunable.

Reviewed by:	peter
MFC after:	2 weeks
2001-10-10 23:06:54 +00:00
John Baldwin
f21fc12736 Add a temporary hack that will go away with the ucred API update to bzero
the duplicated mutex before initializing it to avoid triggering the check
for init'ing an already initialized mutex.
2001-10-10 20:45:40 +00:00
John Baldwin
6a40eccec3 Malloc mutexes pre-zero'd as random garbage (including 0xdeadcode) my
trigget the check to make sure we don't initalize a mutex twice.
2001-10-10 20:43:50 +00:00
Doug Rabson
e913ca22e2 Move setregs() out from under the PROC_LOCK so that it can use functions
list suword() which may trap.
2001-10-10 20:04:57 +00:00
Archie Cobbs
6628011155 Fix bug that cheated hook names out of the last 2 bytes.
MFC after:      3 days
2001-10-10 19:58:11 +00:00
Archie Cobbs
129bc89568 Let "raw" mean IPPROTO_RAW instead of IPPROTO_IP.
Noticed by:	jdp
MFC after:	3 days
2001-10-10 19:51:13 +00:00
Orion Hodson
9b6a5708db use pcm_getbuffersize() 2001-10-10 17:56:35 +00:00
Bruce Evans
d6a990d799 Added used includes. <sys/_lock.h> is a prerequisite for <sys/_mutex.h>,
and <sys/queue.h> is a prerequisite for both <sys/_lock.h> and
<sys_mutex.h>.
2001-10-10 10:26:07 +00:00
Doug Rabson
d91b6696b7 Add a definition for the ia64's special PLT_RESERVE entry in the _DYNAMIC
section.
2001-10-10 09:00:27 +00:00
Andrey A. Chernov
5f2fc29ab3 Bump FreeBSD_version for strcasestr() 2001-10-10 02:38:37 +00:00
Robert Watson
8a7d8cc675 - Combine kern.ps_showallprocs and kern.ipc.showallsockets into
a single kern.security.seeotheruids_permitted, describes as:
  "Unprivileged processes may see subjects/objects with different real uid"
  NOTE: kern.ps_showallprocs exists in -STABLE, and therefore there is
  an API change.  kern.ipc.showallsockets does not.
- Check kern.security.seeotheruids_permitted in cr_cansee().
- Replace visibility calls to socheckuid() with cr_cansee() (retain
  the change to socheckuid() in ipfw, where it is used for rule-matching).
- Remove prison_unpcb() and make use of cr_cansee() against the UNIX
  domain socket credential instead of comparing root vnodes for the
  UDS and the process.  This allows multiple jails to share the same
  chroot() and not see each others UNIX domain sockets.
- Remove unused socheckproc().

Now that cr_cansee() is used universally for socket visibility, a variety
of policies are more consistently enforced, including uid-based
restrictions and jail-based restrictions.  This also better-supports
the introduction of additional MAC models.

Reviewed by:	ps, billf
Obtained from:	TrustedBSD Project
2001-10-09 21:40:30 +00:00
Ian Dowse
3c7bcedd06 Remove the Xresume* labels from the i386 interrupt handlers; the
code in ipl.s and icu_ipl.s that used them was removed when the
interrupt thread system was committed. Debuggers also knew about
Xresume* because these labels hide the real names of the interrupt
handlers (Xintr*), and debuggers need to special-case interrupt
handlers to get the interrupt frame.

Both gdb and ddb will now use the Xintr* and Xfastintr* symbols to
detect interrupt frames. Fast interrupt frames were never identified
correctly before, so this fixes the problem of the running stack
frame getting lost in a ddb or gdb trace generated from a fast
interrupt - e.g. when debugging a simple infinite loop in the kernel
using a serial console, the frame containing the loop would never
appear in a gdb or ddb trace.

Reviewed by:	jhb, bde
2001-10-09 19:54:52 +00:00
Doug Rabson
7e3e8e556f Clarify a comment.
Requested by: jhb
2001-10-09 19:50:29 +00:00
Scott Long
baadfb4c1e Update to using the pcm_getbuffersize() method.
Fix an off-by-one error in the saving of the dsp memory.
Up the play channels to 2.

MFC after:	3 days
2001-10-09 19:46:09 +00:00
John Baldwin
8688bb9383 proces -> process in a comment. 2001-10-09 17:25:30 +00:00
Robert Watson
32d186043b o Recent addition of (p1==p2) exception in p_candebug() permitted
processes to attach debugging to themselves even though the
  global kern_unprivileged_procdebug_permitted policy might disallow
  this.
o Move the kern_unprivileged_procdebug_permitted check above the
  (p1==p2) check.

Reviewed by:	des
2001-10-09 16:56:29 +00:00
John Baldwin
5162c5cc1e Use crhold() instead of crdup() since we aren't modifying the cred but
just need to ensure it remains immutable.
2001-10-09 16:48:57 +00:00
John Baldwin
9935282d50 Use crhold() instead of crdup(). The md(4) driver doesn't modify the ucred
that it uses, so it merely needs to bump its refcount to make it immutable
rather than obtain its own copy.
2001-10-09 16:37:51 +00:00
Robert Drehmel
1e8ff53804 Remove an unneeded variable declaration and statement.
Approved by:	jake
2001-10-09 16:06:28 +00:00
Yoshihiro Takahashi
5ad8aff376 Added Logitec LHA-301 pnp id. 2001-10-09 15:30:19 +00:00
Doug Rabson
f53482978c Don't include isavar.h - we don't need it. 2001-10-09 10:24:37 +00:00
Doug Rabson
ac0a5b09e0 Add a minimalist kernel config which can run inside SKI. 2001-10-09 10:14:06 +00:00
David E. O'Brien
2009ab8277 Bump for switch to XFree86 4.x. 2001-10-09 07:36:36 +00:00
Jonathan Lemon
f3a48bd0ae The kernel doesn't have <stdio.h> or <string.h>. Remove these. 2001-10-09 04:05:58 +00:00
Peter Wemm
caf4b18ba9 Make this compile after last commit. It should be:
"td ? td->td_proc : NULL", not "td ? td->td_proc, NULL"
2001-10-09 02:40:45 +00:00
Matt Jacob
572ce00d3e Note that this driver is soon to be deprecated and removed from FreeBSD. 2001-10-09 00:14:41 +00:00
Julian Elischer
7e49874f08 Don't dereference td if it's NULL.
Submitted by:	Alexander N. Kabaev <ak03@gte.com>
2001-10-08 23:47:44 +00:00
John Baldwin
f955d6dc66 Don't attempt to initialize the pcaudio device on open. The attach routine
already does the initialization (though it didn't set pca_initialized, so
we always initialized twice) and since attach calls make_dev(), there's no
way that pcaopen() can be called before pcaattach().
2001-10-08 23:35:40 +00:00
John Baldwin
74e4502e62 Replace 'curproc' with 'td->td_proc'. 2001-10-08 21:05:46 +00:00
John Baldwin
2a89a48fbd Allow atomic ops to be somewhat safely used in userland. We always use
lock prefixes in the userland case so that the binaries will work on both
SMP and UP systems.
2001-10-08 20:58:24 +00:00
Doug Rabson
a3490d55d1 Make printtrap() more informative. 2001-10-08 20:21:04 +00:00
Matthew Dillon
917efbaaba WS Cleanup 2001-10-08 19:51:13 +00:00
Mark Peek
f379be7abf Page align the data segment. 2001-10-08 10:43:34 +00:00
Cameron Grant
a791cfee44 use pcm_getbuffersize()
only creat a mic recording channel if the codec supports it
2001-10-08 06:10:39 +00:00
Cameron Grant
50388172c5 use pcm_getbuffersize()
use seperate dma tags for buffers and control info
2001-10-08 06:01:13 +00:00
Cameron Grant
39dbd126c7 use pcm_getbuffersize() 2001-10-08 05:59:54 +00:00
Marcel Moolenaar
8daca20f62 s/alpha/${MACHINE_ARCH}/g 2001-10-08 01:41:45 +00:00
Mark Peek
351bd3334f Add a call to init_param() to initialize some necessary variables. 2001-10-08 00:44:21 +00:00
Matthew Dillon
962922dcd2 Remove panics for rename() race conditions. The panics are inappropriate
because the IN_RENAME flag only fixes a few of the huge number of race
conditions that can result in the source path becoming invalid even
prior to the VOP_RENAME() call.  The panics created a serious security
issue whereby an attacker could fairly easily cause the panic to
occur, crashing the machine.

The correct solution requires a great deal of work in the namei
path cache code.

MFC after:	0 days
2001-10-08 00:37:54 +00:00
Cameron Grant
82ab7a3bc2 * register the correct number of channels
* include hw buffer size in sndstat info
2001-10-07 23:31:52 +00:00
Cameron Grant
a9d2ee22ac use mixer channel numbers, not channel masks- this should fix sb/sbpro mixer
problems.
2001-10-07 23:28:34 +00:00
Doug Rabson
e4ef1eb797 Implement inline versions of ntohl etc. 2001-10-07 21:09:35 +00:00
Dag-Erling Smørgrav
3da3249106 Dissociate ptrace from procfs.
Until now, the ptrace syscall was implemented as a wrapper that called
various functions in procfs depending on which ptrace operation was
requested.  Most of these functions were themselves wrappers around
procfs_{read,write}_{,db,fp}regs(), with only some extra error checks,
which weren't necessary in the ptrace case anyway.

This commit moves procfs_rwmem() from procfs_mem.c into sys_process.c
(renaming it to proc_rwmem() in the process), and implements ptrace()
directly in terms of procfs_{read,write}_{,db,fp}regs() instead of
having it fake up a struct uio and then call procfs_do{,db,fp}regs().

It also moves the prototypes for procfs_{read,write}_{,db,fp}regs()
and proc_rwmem() from proc.h to ptrace.h, and marks all procfs files
except procfs_machdep.c as "optional procfs" instead of "standard".
2001-10-07 20:08:42 +00:00
Dag-Erling Smørgrav
23fad5b6c9 Always succeed if the target process is the same as the requesting process. 2001-10-07 20:06:03 +00:00
Dag-Erling Smørgrav
26c293c7ee These flags aren't just for procfs - in fact, these days theye are primarily
used by ptrace(2) - so tweak the accompanying comments a little.
2001-10-07 19:47:37 +00:00
Dag-Erling Smørgrav
080cf92b85 Remove some useless preprocesor paranoia. 2001-10-07 19:41:19 +00:00
Dag-Erling Smørgrav
8d5f9fac24 In procfs_readdir(), when the directory being read was a process directory,
the target process was being held locked during the uiomove() call.  If the
process calling readdir() was the same as the target process (for instance
'ls /proc/curproc/'), and uiomove() caused a page fault, the result would
be a proc lock recursion.  I have no idea how long this has been broken -
possibly ever since pfind() was changed to lock the process it returns.

Also replace the one and only call to procfs_findtextvp() with a direct
test of td->td_proc->p_textvp.
2001-10-07 19:37:13 +00:00
Doug Rabson
e0e2fed358 * Use srlz.i to serialise changes to psr.ic
* Don't enable psr.i at the same time as psr.dt and psr.ic

These changes improve stability considerably.
2001-10-07 18:40:01 +00:00
Matt Jacob
1c3749836f Add some somewhat vague documentation for this driver and a list
of Hardware that might, in fact, work.
2001-10-07 18:26:47 +00:00
Doug Rabson
a067d21032 Make the interrupt routing a bit less chatty unless bootverbose is set. 2001-10-07 18:25:43 +00:00
Matt Jacob
71793c0dc4 Some patches from Doug for ia64 support- the principle one being the
appropriate cache flush that provides MEMORY_BARRIER in between handoffs
between host && RISC processor for the shared memory request/response
queues.

Submitted by:	dfr@nlsystems.com
2001-10-07 18:18:50 +00:00
Luigi Rizzo
7d4b046991 Export interrupt statistics via sysctl.
MFC-after: 3 days
2001-10-07 17:03:56 +00:00
Ian Dowse
c6cd7661ed Mention that ed requires miibus.
Suggested by:	Eugene Grosbein <eugen@grosbein.pp.ru>
2001-10-07 16:39:40 +00:00
Ian Dowse
80f42b555d Fix a typo in do_sigaction() where sa_sigaction and sa_handler were
confused. Since sa_sigaction and sa_handler alias each other in a
union, the bug was completely harmless. This had been fixed as part
of the SIGCHLD changes in revision 1.125, but it was reverted when
they were backed out in revision 1.126.
2001-10-07 16:11:37 +00:00
Doug Rabson
ca11f4e176 Remove bogus include. 2001-10-07 14:20:01 +00:00
Benno Rice
225845627b Whitespace fixes. 2001-10-07 13:27:27 +00:00
Benno Rice
a6bfff4582 Add new files needed by previous commit. 2001-10-07 13:24:56 +00:00
Benno Rice
cae2c81dc2 Mega-patch for OpenFirmware loader support.
- Flesh out ofw_readin routine.
- Add OpenFirmware load and exec routines.
- Make sure memory allocation for the kernel is done correctly.
- Change the way the heap is allocated so as to make it easier to deallocate
  when we hand over.
- Add a command to print memory maps similar to the one for ia64.

With this patch, I can now load and hand over to a kernel on my iMac.  There
are some problems with OpenFirmware routines failing after the hand over that
still need to be addressed.
2001-10-07 13:22:25 +00:00
Yoshihiro Takahashi
f2eeb19063 Rewrite the pc98 bus_space stuff.
The type of bus_space_tag_t is now a pointer to bus_space_tag structure,
and the bus_space_tag structure saves pointers to functions for direct
access and relocate access.

Added bsh_bam member to the bus_space_handle structure, it saves access
method either direct access or relocate access which is called by
bus_space_* functions.

Added the mecia device support. If the bs_da and bs_ra in bus tag are set
NEPC_io_space_tag and NEPC_mem_space_tag respectively, new bus_space stuff
changes the register of mecia automatically for 16bit access.

Obtained from:	NetBSD/pc98
2001-10-07 10:04:18 +00:00
Robert Watson
c175d2226f o Introduce an 'options REGRESSION'-dependant sysctl namespaces,
'regression.*'.
o Add 'regression.securelevel_nonmonotonic', conditional on 'options
  REGRESSION', which allows the securelevel to be lowered for the purposes
  of efficient regression testing of securelevel policy decisions.
  Regression tests for securelevels will be committed shortly.

NOTE: 'options REGRESSION' should never be used on production machines, as
it permits violation of system invariants so as to improve the ability to
effectively test edge cases, and improve testing efficiency.
2001-10-07 03:51:22 +00:00
Marcel Moolenaar
946c6b9978 Regen. 2001-10-07 00:21:18 +00:00
Marcel Moolenaar
dd73368406 Fix the NODEF entry for setpgid() so that it matches the NODEF
entries in sys/kern/syscalls.master.
2001-10-07 00:20:08 +00:00
Luigi Rizzo
06bd2f9c81 Make this compile again after the changes to make bridge kld'able 2001-10-07 00:18:48 +00:00
Marcel Moolenaar
49ead724c6 Fix breakage caused by previous commit. The lkmnosys and lkmressys
syscalls are of type NODEF but not in a way that fits the given
definition of that type. The exact difference of lkmressys and
lkmnosys is unclear, which makes it all the more confusing. A
reevaluation of what we have and what we really need is in order.

Spotted by: Maxime Henrion <mux@qualys.com>
Pointy hat: marcel
2001-10-07 00:16:31 +00:00
Matt Jacob
cd37f56f5a Misunderstanding documentation caused me to try and set 1Gbps/2Gps/Auto
connection speed for the 2300 in the wrong offset in the ICB. Oops.

Respect some QLogic errat wrt PCI errors on certain shared host/RISC registers.
2001-10-06 20:41:18 +00:00
Matt Jacob
3bd4033010 Whups- remember to zero the isr pointer arg. 2001-10-06 19:34:43 +00:00
Matt Jacob
db4fa023f8 Respect QLogic's errata- read BIU_ISR even on the 2300
to see if there's an interrupt (avoids PCI parity errors
which can occur on the 2312 if you access some registers
from the host at the same time the RISC on the 2312 is
C accessing them).

MFC after:	1 day
2001-10-06 19:19:24 +00:00
Yoshihiro Takahashi
31b2da2bea - Moved the bus_dma declarations from bus_{at386,pc98}.h into bus_dma.h.
(bus_dma.h is repo-copied from bus_at386.h)
- Added '#include <machine/bus_dma.h>' into bus.h for backward compatibility.
2001-10-06 16:27:21 +00:00
Doug Rabson
e2676403d8 Move console probes until after we set boothowto so that 'boot -h' works. 2001-10-06 16:06:48 +00:00
Doug Rabson
d0ad824d68 Assume round-to-nearest mode for floating point. 2001-10-06 15:57:22 +00:00
Doug Rabson
bb94354d67 Enable console. There are far too many 'ifdef __i386__' in this file. 2001-10-06 13:34:30 +00:00
Doug Rabson
c4e7b7e2e0 Put the label at the same place as i386 for compatibility. 2001-10-06 12:35:22 +00:00
Søren Schmidt
8975eded26 Update with latest ATA/ATAPI ver 6 rev 2 items. 2001-10-06 11:07:04 +00:00
Doug Rabson
300634ffe0 Delete legacy pcib code - we can't possibly work without acpi on ia64. 2001-10-06 10:09:57 +00:00
Doug Rabson
8022a260d2 Remove nexus_pcib.c. 2001-10-06 10:09:14 +00:00
Marcel Moolenaar
18819cbb5c o Change ia64_memory_address to explicitly take a u_int64_t
o  Add memcpy_fromio, memcpy_io, memcpy_toio, memset_io,
   memsetw and memsetw_io. I'm not sure this is the right
   place for it, though.
2001-10-06 09:31:43 +00:00
Marcel Moolenaar
885f6ac360 Make this compile on ia64. 2001-10-06 09:27:43 +00:00
Doug Rabson
79b2d7690f Implement these using mux1 and extr.u. I'll update the userland versions
similarly. Actually, they should be inline on gcc.
2001-10-06 08:35:05 +00:00
Bill Fenner
242c766b79 - Fix typo in "didn't find tag in list" code -- != should have been ==.
This fixes the panic when receiving a packet with an unknown tag, and
  also allows reception of packets with known tags.
- Allow overlapping tag number spaces when using multiple hardware-assisted
  VLAN parent devices (by comparing the parent interface in
  vlan_input_tag() just as in vlan_input() ).
- fix typo in comment

MFC after:	1 week
2001-10-06 05:02:11 +00:00
Peter Wemm
887f6fb8d4 Fix some 64-bit uncleanliness. 2001-10-06 04:09:26 +00:00
Peter Wemm
cd5178beb8 Fix some style bugs before fixing some real bugs. 2001-10-06 04:03:20 +00:00
Peter Wemm
555143d0df Fix a stack trashing bug when int != sizeof(pointer)
This fixes the ia64 boot!  We have scsi disks!
2001-10-06 03:49:38 +00:00
Peter Wemm
5e0f6bc415 Fix a warning. (unused p if not INVARIANTS) 2001-10-06 02:13:58 +00:00
Peter Wemm
c4d33a56b1 Add ia64/ia64/sapic.c 2001-10-06 02:03:00 +00:00
Jayanth Vijayaraghavan
c24d5dae7a Add a flag TF_LASTIDLE, that forces a previously idle connection
to send all its data, especially when the data is less than one MSS.
This fixes an issue where the stack was delaying the sending
of data, eventhough there was enough window to send all the data and
the sending of data was emptying the socket buffer.

Problem found by Yoshihiro Tsuchiya (tsuchiya@flab.fujitsu.co.jp)

Submitted by: Jayanth Vijayaraghavan
2001-10-05 21:33:38 +00:00
Matthew Dillon
845bd795c9 vinvalbuf() was only waiting for write-I/O to complete. It really has to
wait for both read AND write I/O to complete.  Only NFS calls vinvalbuf()
on an active vnode (when the server indicates that the file is stale), so
this bug fix only effects NFS clients.

MFC after:	3 days
2001-10-05 20:10:32 +00:00
Doug Rabson
23620bde07 Add ia64 to the list of machines which don't do unaligned reads. 2001-10-05 19:04:23 +00:00
Doug Rabson
f1c1087a06 Add BOOTP support. 2001-10-05 19:03:01 +00:00
Doug Rabson
734047dd77 Fix some dependency violations (don't know why gas didn't catch this). 2001-10-05 19:02:21 +00:00
Doug Rabson
bff497f753 Use physical addresses, not virtual addresses when calling PHYS_TO_VM_PAGE. 2001-10-05 19:00:03 +00:00
Doug Rabson
8540504bac Eliminate some alpha craziness. 2001-10-05 18:59:02 +00:00
Doug Rabson
9e9ce1b861 In in_cksumdata, len must be a signed type. 2001-10-05 18:58:22 +00:00
John Baldwin
43150722c9 The aio kthreads start off with a root credential just like all other
kthreads, so don't malloc a ucred just so we can create a duplicate of the
one we already have.
2001-10-05 17:55:11 +00:00
Doug Rabson
34c5f03685 Low-level code for programming the I/O SAPIC. 2001-10-05 10:35:42 +00:00
Doug Rabson
aa55386965 Re-route interrupts on ia64 so that we can get the I/O SAPIC interrupt
numbers (the BIOS leaves legacy PIC interrupt numbers in the intline
registers).
2001-10-05 10:33:42 +00:00
Doug Rabson
7a7029581c Wire up most of the interrupt handling infrastructure. Not sure it works
right yet but its enough for the ATA probe to work. The SCSI probes which
follow are broken though.
2001-10-05 10:30:09 +00:00
Doug Rabson
ae0d75fe5f Fix typo which meant that we never actually found the ACPI 2.0 table. 2001-10-05 10:29:03 +00:00
Doug Rabson
c3a9c0057f Disable interrupts when we are in DDB. 2001-10-05 08:23:08 +00:00
Doug Rabson
c7521efc59 Add ia64_get_lid(). 2001-10-05 08:20:41 +00:00
Paul Saab
8c4026b54f Activate the bridge/dummynet modules.
Reminded by:	ru
2001-10-05 07:09:27 +00:00
Paul Saab
4787fd37af Only allow users to see their own socket connections if
kern.ipc.showallsockets is set to 0.

Submitted by:	billf (with modifications by me)
Inspired by:	Dave McKay (aka pm aka Packet Magnet)
Reviewed by:	peter
MFC after:	2 weeks
2001-10-05 07:06:32 +00:00
Paul Saab
db69a05dce Make it so dummynet and bridge can be loaded as modules.
Submitted by:	billf
2001-10-05 05:45:27 +00:00
Warner Losh
239db728ab Regen. 2001-10-05 05:32:51 +00:00
Warner Losh
e9530498a7 MFNetBSD:
1.139: augustss; Add EigerLabs sound card.
	1.138: ichiro; Typo
	1.137: ichiro; GEMTEK CF-size WaveLAN card based on Prism2.5 eval
	1.136: ichiro; Symbol Spctrum24 LA4100 Series CF WaveLAN card
	1.135: pooka; Psion Gold Card
	1.134: christos; zonet zen (Henrik Berglund)
	1.133: christos; dlink-660+ (janberg@netbsd.org)
	1.132: itojun; 3Com 3CRWE62092A Wireless LAN
2001-10-05 05:32:27 +00:00
Mike Smith
43896e913a Update usage of AcpiEnableEvent to reflect a new argument.
Fix acpi_DeviceIsPresent to check for valid _STA data and to check
the "present" and "functioning" bits.

Use acpi_DeviceIsPresent in acpi_pcib rather than rolling our own
(also broken) version.
2001-10-04 23:21:09 +00:00
Mike Smith
9bdd67479e Update list of sources to match 20010920 snapshot. 2001-10-04 23:19:17 +00:00
Mike Smith
276dda21ea Update to reflect one file added, one removed. 2001-10-04 23:18:03 +00:00
Mike Smith
828ac44151 Remove file obsoleted by the 20010920 snapshot. 2001-10-04 23:17:35 +00:00
Mike Smith
947ff3286e Merge our local patches into the 20010920 snapshot. Note that the
"implicit return" hack in psparse.c was resubmitted by Iwasaki-san.

Submitted by:	iwasaki
2001-10-04 23:15:26 +00:00
Mike Smith
875063d979 This commit was generated by cvs2svn to compensate for changes in r84493,
which included commits to RCS files with non-trunk default branches.
2001-10-04 23:12:14 +00:00
Mike Smith
4de815b5b2 Import of the Intel ACPI CA 20010920 snapshot. 2001-10-04 23:12:14 +00:00
Mike Smith
93b8a677a3 This commit was generated by cvs2svn to compensate for changes in r84491,
which included commits to RCS files with non-trunk default branches.
2001-10-04 23:12:13 +00:00
Mike Smith
584be850df Import of the Intel ACPI CA 20010920 snapshot. 2001-10-04 23:12:13 +00:00
Ian Dowse
564bfabecb Remove the SSLEEP case from the load average computation. This has
been a no-op for as long as our CVS history goes back. Processes in
state SSLEEP could only be counted if p_slptime == 0, but immediately
before loadav() is called, schedcpu() has just incremented p_slptime
on all SSLEEP processes.
2001-10-04 22:33:31 +00:00
Søren Schmidt
c36c574aaa Update the promise raid structure with some of the info I've gathered
before I'm accused of "lending" it from somebody else.
2001-10-04 18:02:26 +00:00
Dag-Erling Smørgrav
50f74e92b8 Final style(9) commit: placement of opening brace; a continuation indent I
missed in the previous commit; a line that exceeded 80 characters.  No
functional changes, but the object file's md5 checksum changes because some
lines have been displaced.
2001-10-04 16:35:44 +00:00
Dag-Erling Smørgrav
8a8d4e459c More style(9) fixes: no spaces between function name and parameter list;
some indentation fixes (particularly continuation lines).

Reviewed by:	md5(1)
2001-10-04 16:29:45 +00:00
David Malone
ecac78e7bd Bump __FreeBSD_version after change in ABI for discriptor and creds passing
on 64 bit platforms.

Reviewed by:	imp
2001-10-04 16:14:43 +00:00
Dag-Erling Smørgrav
c5799337ea This file had a mixture of "return foo;" and "return (foo);"; standardize
on "return (foo);" as mandated by style(9).

Reviewed by:	md5(1)
2001-10-04 16:09:22 +00:00
Mark Peek
ec84f10383 Add nmdm driver.
PR:		31027
Submitted by:	Edwin Groothuis <edwin@mavetju.org>
MFC after:	1 day
2001-10-04 15:37:55 +00:00
Doug Rabson
56c0b43aab Add eficlock.c and remove sscclock.c. 2001-10-04 15:28:56 +00:00
Doug Rabson
02c76ceb97 Don't pretend the argument to clockattach is a device - it isn't. 2001-10-04 15:28:27 +00:00
Doug Rabson
a14927b550 * Don't pretend the object passed to clockattach is a device - it isn't.
* Declare itc_frequency properly.
2001-10-04 15:27:35 +00:00
Doug Rabson
377fa66e5e Use EFI (or some reasonable simulation) to read the RTC. 2001-10-04 15:26:05 +00:00
Doug Rabson
94d5f4bfd2 Fake the EFI runtime call GetTime. 2001-10-04 15:24:52 +00:00
Ruslan Ermilov
eea399e3ac Removed mentions of TARGET_ARCH from non-cross places. 2001-10-04 14:13:16 +00:00
David Malone
2bc21ed985 Hopefully improve control message passing over Unix domain sockets.
1) Allow the sending of more than one control message at a time
over a unix domain socket. This should cover the PR 29499.

2) This requires that unp_{ex,in}ternalize and unp_scan understand
mbufs with more than one control message at a time.

3) Internalize and externalize used to work on the mbuf in-place.
This made life quite complicated and the code for sizeof(int) <
sizeof(file *) could end up doing the wrong thing. The patch always
create a new mbuf/cluster now. This resulted in the change of the
prototype for the domain externalise function.

4) You can now send SCM_TIMESTAMP messages.

5) Always use CMSG_DATA(cm) to determine the start where the data
in unp_{ex,in}ternalize. It was using ((struct cmsghdr *)cm + 1)
in some places, which gives the wrong alignment on the alpha.
(NetBSD made this fix some time ago).

This results in an ABI change for discriptor passing and creds
passing on the alpha. (Probably on the IA64 and Spare ports too).

6) Fix userland programs to use CMSG_* macros too.

7) Be more careful about freeing mbufs containing (file *)s.
This is made possible by the prototype change of externalise.

PR:		29499
MFC after:	6 weeks
2001-10-04 13:11:48 +00:00
David Malone
59bdd40568 Allow sbcreatecontrol to make cluster sized control messages. 2001-10-04 12:59:53 +00:00
John Baldwin
2037ef8f1e Remove extraneous semicolon.
Submitted by:	Maxime Henrion <mux@qualys.com>
2001-10-04 10:39:56 +00:00
John Baldwin
9d60f0cbdb Comment out RESTARTABLE_PANICS so that it is not defined in LINT. It
introduces many useless warnings obscuring the useful ones.
2001-10-04 10:31:51 +00:00
John Baldwin
69ad5bdd3f Whitespace fixes. 2001-10-04 10:18:00 +00:00
Doug Rabson
5f926293f0 Add a couple of low-level acpi support files. 2001-10-04 08:45:54 +00:00
Doug Rabson
1676303c5c Add low-level ACPI support code and make a start on parsing the ACPI
interrupt information.
2001-10-04 08:45:19 +00:00
Doug Rabson
b0ee13ad5a Add busspace hacks for ia64. 2001-10-04 08:33:16 +00:00
Doug Rabson
1983594568 Use return_PTR, not return_VALUE when returning pointers. 2001-10-04 08:32:18 +00:00
Doug Rabson
ed136da6f4 Check the compatible ID as well as the hardware ID in acpi_MatchHid. 2001-10-04 08:31:17 +00:00
Bruce Evans
4c6bb41ef2 Fixed pedantic syntax error (trailing semicolon in enum). 2001-10-04 07:51:42 +00:00
Bruce Evans
b228f1f47a Fixed style bugs (indentation errors, missing punctuation, and unsorting)
in rev.1.61.
2001-10-04 07:25:16 +00:00
Bruce Evans
152bd66c13 Fixed a missing forward declaration and unsorting of prototypes in rev.1.18. 2001-10-04 07:12:37 +00:00
Bruce Evans
05e47d1f21 Fixed a missing proc -> thread substitution.
Broke future detection of this bug in userland by not declaring kernel
prototypes in userland.
2001-10-03 17:23:26 +00:00
Søren Schmidt
e55639dbdd Doh! committed from the wrong tree, this is the right "stuff"... 2001-10-03 11:36:25 +00:00
Søren Schmidt
7f6d63666d Proberly support the Promise TX2/4.
Programming info kindly provided by Daniela Engert <dani@ngrt.de>
2001-10-03 08:27:29 +00:00
Doug Rabson
712bc4a99a The encoding for the bus being passed to SAL was completely wrong. 2001-10-03 08:25:58 +00:00
Søren Schmidt
592fcea788 cosmetics in the bootverbose probe- 2001-10-03 08:25:37 +00:00
Søren Schmidt
9b7c4d4ea0 Hopefully fix the identify failed on ATAPI slaves on some notebooks. 2001-10-03 08:25:11 +00:00
Takanori Watanabe
c84f2b288e Add PnP ID 'IBM3781' for TP240 mouse. 2001-10-03 07:26:28 +00:00
Matt Jacob
77049e810b Let's not kid ourselves- we don't *really* support jumbframes yet.
We only support the size of frame we are currently allocating, which
is MCLBYTES - sizeof (struct ether_header) usable, so don't set an
MTU that would go over this.
2001-10-02 22:36:49 +00:00
Dag-Erling Smørgrav
b84ce33438 Add a PFS_DISABLED flag; pfs_visible() automatically returns 0 if it is set
on the node in question.  Also add two API functions for setting and clearing
this flag; setting it also reclaims all vnodes associated with the node.
2001-10-02 22:22:42 +00:00
Matt Jacob
1c3903d23f Various fixes and improvements- some from the folks at Sitara Networks (thx) 2001-10-02 22:21:21 +00:00
Dag-Erling Smørgrav
b7004390b3 Only print "XXX (un)registered" message if bootverbose. 2001-10-02 22:21:07 +00:00
Matt Jacob
22883e3c68 Fix problem where a user buffer outside of the area being tested
will be corrupted.

PR:		29194
Obtained from:	Tor.Egge@fast.no
MFC after:	2 weeks
2001-10-02 18:34:20 +00:00
Matt Jacob
8ec410b54a Documentation comment: note that the each NIC's softc is assumed to start
with an ifnet structure.

MFC after:	1 week
2001-10-02 18:08:34 +00:00
Robert Watson
ab66aa1468 o Replace two direct uid!=0 comparisons with suser_xxx() calls.
Obtained from:	TrustedBSD Project
2001-10-02 14:41:43 +00:00
Robert Watson
b73d2870cd o Replace two direct uid!=0 comparisons with suser_td() calls.
Obtained from:	TrustedBSD Project
2001-10-02 14:34:22 +00:00
Kazutaka YOKOTA
82fe828980 Fix the ANSI color escape sequence \E[m.
- Corretly map the ansi color number to a PC BIOS color.
- Handle multiple arguments to the escape sequence.
2001-10-02 13:11:35 +00:00
Kazutaka YOKOTA
4238458ba2 Fix the local macro: isvisible().
- The space char (0x20) IS a visible char :-)
2001-10-02 09:13:07 +00:00
Marcel Moolenaar
6b207c0e90 Remove redundant and misplaced "options DDB" line. 2001-10-02 06:18:23 +00:00
Matthew Dillon
4c94c7bfb9 Backout the last commit. The problem is actually much worse then I
first thought and may require serious work to the VOP_RENAME() api itself.
Basically, by the time the VOP_RENAME() function is called, it's already
too late.
2001-10-02 04:26:58 +00:00
Matthew Dillon
be2a975a9f IN_RENAME should only be cleared by the routine that set it. This fixes
a rename/rmdir race that has been shown to cause a panic.

Bug reported by: Yevgeniy Aleynikov <eugenea@infospace.com>
MFC after:	3 days
2001-10-02 02:58:48 +00:00
Matt Jacob
4a5470eebd Remove all OpenBSD/NetBSD code. It was the right place to start from, but
it now really gets in the way.

This allows us to fix several problems- not least of which was problems
of ordering about when you'd have a device softc for an miibus child
available or not. Move some steps of things around.

Put the ifnet/arpcom structure at the head of the softc (PR 29249).

Don't do tx gc in the interrupt service routine- that seems to make
things a bit more efficient.

Enable jumbo support by default- but this version of 'jumbo' is broken
because it really is just using multiple tfd/rfd's to match a packet,
which will never be > CLSIZE anyway.

This should begin the first steps toward cleaning this driver up.

PR:		29249
MFC after:	1 week
2001-10-02 00:13:44 +00:00
Mike Silbersack
0742c2bb67 grammar fix: to -> too 2001-10-01 23:41:13 +00:00
Matt Jacob
79a79ad9b8 Note the 'common knowledge' assumption that each NIC's softc starts
with an ifnet structure (so device_get_softc will get one).

If memory allocation fails in mii_phy_probe, don't just march ahead into
a panic- return ENOMEM.

MFC after:	1 week
2001-10-01 22:57:57 +00:00
John Baldwin
0479e3d339 Move the ap boot spin lock earlier in the lock order before the sio(4)
lock since we occasionally call printf() while holding the ap boot lock
which can call down into the sio(4) driver if using a serial console.
2001-10-01 22:50:30 +00:00
John Baldwin
7105201b3d Sigh, statclock_process() takes a KSE instead of a thread for its first
argument.
2001-10-01 22:26:47 +00:00
Warner Losh
cf7ed68316 Add d_thread_t. This is a typedef for struct thread in -current and
will be one for struct proc in stable.  those drivers needing to have
cross version portability should use d_thread_t instead of inventing
their own means.  Non-drivers, and drivers that either only run on
-current or must look under the covers of the struct proc/thread
should must not use this.

As noted in arch@, this minorly violates style(9), but the sys/conf.h
devsw already violates this and all I'm doing is extending the
violation to ease the burdon on device driver writers.  It was judged
that this minor violation, which doesn't impact userland or those
people not using it, was preferable to the alternatives (eg #define
proc thread).  C does not allow a way to rename or alias structs
easily, so we fall back to using a typedef.

Bump FreeBSD_version to reflect this change (porters guide to be done
in a separate commit).
2001-10-01 20:15:11 +00:00
Robert Watson
c6ab2f6b4e o Complete the migration from suser error checking in the following form
in vfs_syscalls.c:

    if (mp->mnt_stat.f_owner != p->p_ucred->cr_uid &&
        (error = suser_td(td)) != 0) {
            unwrap_lots_of_stuff();
            return (error);
    }

  to:

    if (mp->mnt_stat.f_owner != p->p_ucred->cr_uid) {
            error = suser_td(td);
            if (error) {
                unwrap_lots_of_stuff();
                return (error);
            }
    }

  This makes the code more readable when complex clauses are in use,
  and minimizes conflicts for large outstanding patchsets modifying the
  kernel authorization code (of which I have several), especially where
  existing authorization and context code are combined in the same if()
  conditional.

Obtained from:	TrustedBSD Project
2001-10-01 20:01:07 +00:00
Jonathan Lemon
25871c13b8 Update the hash table when sppp mucks directly with the interface address. 2001-10-01 18:14:49 +00:00
Jonathan Lemon
22c819a73a in_ifinit apparently can be used to rewrite an ip address; recalculate
the correct hash bucket for the entry.

Submitted by: iedowse  (with some munging by me)
2001-10-01 18:07:08 +00:00
Jonathan Lemon
a743950fc2 sppp rewrites the interface's ip address directly; this breaks when the
address is looked up via a hash table.  Add a hack to move the entry to
a new hash bucket when the address changes.

Submitted by: tmm
2001-10-01 18:03:56 +00:00
Luigi Rizzo
cc33247e33 Fix a problem with unnumbered rules introduced in latest commit.
Reported by: des
2001-10-01 17:35:54 +00:00
Ruslan Ermilov
32eef9aeb1 mdoc(7) police: Use the new .In macro for #include statements. 2001-10-01 16:09:29 +00:00
Søren Schmidt
7a845ac23c Change the way DAO/TAO mode is init'ed.
Fix a bogon introduced in the previous commit, that broke CDIOREADSUBCHANNEL.
2001-10-01 14:59:52 +00:00
Søren Schmidt
19a7ba3ed2 Add test_write element. 2001-10-01 14:56:56 +00:00
Kazutaka YOKOTA
b827a63aa6 Fix the function CD(): "Clear to the end of the screen".
- When the video BIOS is called to clear the region (x, y)-(79, 24)
  (by scrolling), the slashed region in Fig.1 is cleared.  CD() is
  supposed to clear the region shown in Fig.2.
        x                 x
    +-------+         +-------+
    |       |         |       |
   y|   ////|        y|   ////|
    |   ////|         |///////|
    |   ////|         |///////|
    +-------+         +-------+
      Fig.1             Fig.2

- Don't move the cursor during this operation.
2001-10-01 11:48:02 +00:00
Kazutaka YOKOTA
6c8e596705 This is white-space only change. No functional difference.
- Be consistent about placing spaces around keywords and
  operators; don't mix statements like "if(A==B)" and "if (X == Y)",
  "return(0)" and "return (-1)", "P=10" and "Q = 0", etc.

- Consitently indent lines. It's not good to indent by 8 columns
  in one part of the file, and by 4 columns in the other part.
2001-10-01 11:42:25 +00:00
Matthew Dillon
b5810bab2d After extensive testing it has been determined that adding complexity
to avoid removing higher level directory vnodes from the namecache has
no perceivable effect and will be removed.  This is especially true
when vmiodirenable is turned on, which it is by default now.  ( vmiodirenable
makes a huge difference in directory caching ).  The vfs.vmiodirenable and
vfs.nameileafonly sysctls have been left in to allow further testing, but
I expect to rip out vfs.nameileafonly soon too.

I have also determined through testing that the real problem with numvnodes
getting too large is due to the VM Page cache preventing the vnode from
being reclaimed.  The directory stuff made only a tiny dent relative
to Poul's original code, enough so that some tests succeeded.  But tests
with several million small files show that the bigger problem is the VM Page
cache.  This will have to be addressed by a future commit.

MFC after:	3 days
2001-10-01 04:33:35 +00:00
Dag-Erling Smørgrav
e4fea9d1dd Catch up with the visibility callback stuff, and give up trying to keep the
file definitions on single lines.
2001-10-01 04:31:05 +00:00
Dag-Erling Smørgrav
24efa9d3fa [the previous commit to pseudofs_vncache.c got the wrong log message]
YA pseudofs megacommit, part 2:

 - Merge the pfs_vnode and pfs_vdata structures, and make the vnode cache
   a doubly-linked list.  This eliminates the need to walk the list in
   pfs_vncache_free().

 - Add an exit callout which revokes vnodes associated with the process
   that just exited.  Since it needs to lock the cache when it does this,
   pfs_vncache_mutex needs MTX_RECURSE.
2001-10-01 04:26:33 +00:00
Dag-Erling Smørgrav
198bc14b1d YA pseudofs megacommit, part 1:
- Add a third callback to the pfs_node structure.  This one simply returns
   non-zero if the specified requesting process is allowed to access the
   specified node for the specified target process.  This is used in
   addition to the usual permission checks, e.g. when certain files don't
   make sense for certain (system) processes.

 - Make sure that pfs_lookup() and pfs_readdir() don't yap about files
   which aren't pfs_visible().  Also check pfs_visible() before performing
   reads and writes, to prevent the kind of races reported in SA-00:77 and
   SA-01:55 (fork a child, open /proc/child/ctl, have that child fork a
   setuid binary, and assume control of it).

 - Add some more trace points.
2001-10-01 04:22:20 +00:00
Matt Jacob
53036e9289 Begin to implement target mode that for Fibre Channel has a private
per-command component that we *don't* try and pass thru CAM. CAM just
is too risky and too much of a pain- structures get copied, but not
all info of interest can be considered safely transported thru all
consumers (including user space) from the incoming ATIO to the outgoing
CTIO- it's just much safer to have a buddy structure, identified by the
command's tag which *does* make it thru safely.

Pay attention to link speed and report 200MB/s xfer speed for a
23XX card in 2GPs mode.

MFC after:	1 week
2001-10-01 03:48:42 +00:00
Matt Jacob
c507669af4 Implement a call to get the actual link data rate (if 23XX) so we can
set whether it's a 2Gps or 1Gps link.

MFC after:	1 week
2001-10-01 03:45:54 +00:00
Jake Burkholder
5792b5403b Add identcpu.c. 2001-09-30 21:35:32 +00:00
Matthew Dillon
e2505aa676 Add __FBSDID's to libalias 2001-09-30 21:03:33 +00:00
Jake Burkholder
fc67f24833 Add contents to struct *reg. 2001-09-30 19:59:07 +00:00
Jake Burkholder
fa753b0bcb Optimize bcopy and bzero etc to use 64 bit loads and stores if possible.
Handle overlap in bcopy.
Add routines for copying and zeroing pages using physical addresses
directly.
Remove all the hacks to account for calling the firmware on its own
trap table, we use the kernel trap table.  There is still a problem
with OF_exit().
2001-09-30 19:50:39 +00:00
Jake Burkholder
c4bc2cc714 Use %ver to identify the cpu instead of openfirmware.
Submitted by:	robert
2001-09-30 19:45:34 +00:00
Jake Burkholder
92767809a8 Remove some debug code, add traces. 2001-09-30 19:44:19 +00:00
Jake Burkholder
6b75800a1e Return EIO for procfs_*_dbregs. 2001-09-30 19:43:18 +00:00
Dag-Erling Smørgrav
a73a153aff Specify readability and / or writeability for all nodes that need it. 2001-09-30 19:42:41 +00:00
Jake Burkholder
b34f88ee74 Add a place holder for PSTATE_SECURE, which detects if user code it
trying to set bad pstate bits.
2001-09-30 19:42:34 +00:00
Dag-Erling Smørgrav
7d8f809f00 pseudofs.h:
- Rearrange the flag constants a little to simplify specifying and testing
    for readability and writeability.

pseudofs_vnops.c:

  - Track the aforementioned change.

  - Add checks to pfs_open() to prevent opening read-only files for writing
    or vice versa (pfs_{read,write} would block the actual reads and writes,
    but it's still a bug to allow the open() to succeed).  Also, return
    EOPNOTSUPP if the caller attempts to lock the file.

  - Add more trace points.
2001-09-30 19:41:29 +00:00
Jake Burkholder
e5e8823f37 Split the low level trap code into trap, interrupt and syscall, its
easier and hopefully this code is done changing radically.

Don't use the mmu tlb register to address the kernel page table, nor
the 8k pointer register.  The hardware will do some of the page table
lookup by storing the the base address in an internal register and
calculating the address of the tte in the table.  However it is limited
to a 1 meg tsb, which only maps 512 megs.  The kernel page table only
has one level, so its easy to just do it by hand, which has the advantage
of supporting abitrary amounts of kvm and only costs a few more instructions.

Increase kvm to 1 gig now that its easy to do so and so we don't waste
most of a 4 meg page.

Fix some traces.  Fix more proc locking.

Call tsb_stte_promote if we get a soft fault on a mapping in the upper
levels of the tsb.  If there is an invalid or unreferenced mapping
in the primary tsb, it will be replaced.

Immediately fail for faults occuring in {f,s}uswintr.
2001-09-30 19:41:20 +00:00
Jake Burkholder
15b39a57a5 Implement sysarch(). 2001-09-30 19:06:45 +00:00
Jake Burkholder
c92d1bd289 Fix some traces. td->p_comm doesn't exist. 2001-09-30 19:05:30 +00:00
Jake Burkholder
956856ae06 Move the kernel to end of the first 4 gigabytes of address space, so that
one 4 meg page can map both the kernel and the openfirmware mappings.
Add the openfirmware mappings to the kernel tsb so we can call the firmware
on the kernel trap table and access kernel memory normally.
Implement pmap_swapout_proc, pmap_swapin_proc, pmap_swapout_thread,
pmap_swapin_thread, pmap_activate, pmap_page_exists, and pmap_phys_address.
2001-09-30 19:03:22 +00:00
Jake Burkholder
954f0d930e Add a macro to get the context from a tte tag, not necesarily a whole
tte.  Remove the old inline.
2001-09-30 18:55:05 +00:00
Jake Burkholder
ba0eb60597 Include <machine/setjmp.h> instead of <setjmp.h>. 2001-09-30 18:52:56 +00:00
Jake Burkholder
b71c31cefa Don't use types that require other headers. 2001-09-30 18:52:17 +00:00
Jake Burkholder
6df08a9593 Wrap hardware trap types in ifdef _kernel. 2001-09-30 18:51:18 +00:00
Jake Burkholder
18ef271232 Move the pcb the to the top of the kernel stack.
Add a guard page at the bottom of the kernel stack.  Its unclear how easy
it will be to detect these faults and do something useful.
Setup the registers on exec how the c runtime expects.
Implement various {fill,set}_*regs.
Fix proc locking.
2001-09-30 18:48:37 +00:00
Jake Burkholder
75c6786401 Don't overflow the ktr buffer <gulp>. 2001-09-30 18:42:56 +00:00
Jake Burkholder
c81f893d0c Implement PCPU_ADDR. Align functions on 16 bytes boundaries. 2001-09-30 18:41:57 +00:00
Jonathan Lemon
1a6fc8ef63 When FREE()ing kqueue related structures, charge them to the correct bucket.
Submitted by: iedowse
Forgotten by: jlemon
2001-09-30 17:00:56 +00:00
Wilko Bulte
031f57cf9c Add AlphaPC64 to comments. Correct names (ds10 -> DS10 etc) 2001-09-30 12:09:50 +00:00
Poul-Henning Kamp
40739c02ae The behaviour of whiteout'ing symlinks were too confusing, instead
remove them when asked to.
2001-09-30 08:43:33 +00:00
Ian Dowse
c5f4a9409b Add a change I forgot when adding ED_NO_MIIBUS. This will likely
be backed out with the rest of ED_NO_MIIBUS when the general miibus
code makes proper use of newbus.
2001-09-30 01:59:11 +00:00
Bosko Milekic
70a61707f6 Re-enable mbtypes statistics in the mbuf allocator. I disabled these
when I changed the allocator bits. This implements per-CPU mbtypes
stats by keeping net number of decrements/increments of a given mbtype
per-CPU and then summing all of the per-CPU mbtypes to produce the total
net number of allocated mbufs of the given mbtype.
Counters are carefully balanced to avoid/prevent underflows/overflows.

mbtypes stats are re-enabled with the idea that we may occasionally
(although very rarely) observe slight inconsistencies in the stat
reporting. Most of the time, we should be fine, though.

Also make appropriate modifications to netstat(1) and systat(1) to do
the necessary reporting.

Submitted by: Jiangyi Liu <jyliu@163.net>
2001-09-30 01:58:39 +00:00
Ian Dowse
9b04180c2c Add an option ED_NO_MIIBUS, which causes the `ed' driver to be
built without support for miibus PHYs. Most ed cards don't need
miibus support, so it's useful to be able to avoid the bloat of
all the mii devices for small fixed-purpose kernels.
2001-09-29 22:32:03 +00:00