725 Commits

Author SHA1 Message Date
marcel
ab78406859 Implement pluggable ioctl handlers.
Other modules can register and unregister ioctl handlers to extend the
ioctls known by the Linuxulator. A recent application is the vmware
port. The Linuxulator itself uses the new interface to register its
handlers as well. Handlers for the following types of ioctls have been
defined:
	cdrom
	console (=keyboard and VT handling)
	socket
	sound
	termio

All ioctl related defines and declarations have been moved to a new
file (linux_ioctl.h), except for the pluggable ioctl handler interface
definition.

While there, cleanup linux.h some more.

linux.h and linux_ioctl.[ch] have been made to conform to style(9) as
much as possible.

Inspired and reviewed by: Vladimir N. Silyaev
1999-12-04 11:10:22 +00:00
mdodd
87e31f4b90 Remove the 'ivars' arguement to device_add_child() and
device_add_child_ordered().  'ivars' may now be set using the
device_set_ivars() function.

This makes it easier for us to change how arbitrary data structures are
associated with a device_t.  Eventually we won't be modifying device_t
to add additional pointers for ivars, softc data etc.

Despite my best efforts I've probably forgotten something so let me know
if this breaks anything.  I've been running with this change for months
and its been quite involved actually isolating all the changes from
the rest of the local changes in my tree.

Reviewed by:	peter, dfr
1999-12-03 08:41:24 +00:00
mjacob
d7c9e9ad5f Set RB_VERBOSE into boothowto (provide proper layering from boot loader
(eventually) settings to kernel settings).

Prototype read_random to quiesce a warning.
1999-12-03 07:20:22 +00:00
gallatin
e0b4381b55 A port of NetBSD's AlphaServer 1000 and 1000A support. Thanks to Cristian
Angelini for allowing me to use his AS1000 to do the port.

Note that this is untested on AlphaServer 1000A hardware.

Reviewed by:	dfr
Tested by:   	Cristian Angelini <chr.ang@biella.alpcom.it>
Obtained From: 	NetBSD
1999-12-01 15:25:04 +00:00
dima
047f08a518 dummy version of read_random() until the real random driver is ported. 1999-11-30 23:49:54 +00:00
dima
b573ebb022 Add arc4random.c.
Please note that kernel is still broken on alpha.
1999-11-30 20:18:20 +00:00
marcel
e25c88391a Implement linux_sigaltstack. 1999-11-30 15:02:28 +00:00
marcel
ce9f30fbf1 Implement sigaltstack. 1999-11-30 15:00:17 +00:00
alfred
d7ac1dffb8 add linuxulator wrapper for SNDCTL_DSP_GETODELAY 1999-11-29 23:03:34 +00:00
gallatin
85af5ac744 inline spl functions.
In combination with Doug's recent alpha_cpu.h, this reduces the cost
of ipl raising/lowering significantly.  This is most pronounced when
doing file reads.

Reviewed by: dfr
1999-11-29 20:31:45 +00:00
dfr
8aa3813a4d Implement inline assembler wrappers for PALcode calls and for alpha
specific instructions such as rpcc and mb. This should provide some
performance improvements and will allow me to delete the file pal.s.
To allow people time to update their loadable modules, I will leave pal.s
alone for now.
1999-11-29 19:57:51 +00:00
obrien
35494eb053 Sort PCI SCSI controlers. 1999-11-28 00:59:03 +00:00
obrien
85441bb239 /sys adjustments to add the `sym' controler driver.
This is commented out in GENERIC as you cannot mix `sym' with `ncr' right now.
Note that LINT is no more broken by this commit.
1999-11-28 00:48:15 +00:00
marcel
8d58d1e492 Implement linux_ustat.
Reviewed by: bde
1999-11-27 16:55:14 +00:00
marcel
36c9f10d7d Change prototype of linux_ustat. 1999-11-27 16:50:54 +00:00
marcel
b35fbc0583 Implement fdatasync in terms of fsync. The regeneration of proto.h,
syscall.h and sysent.h was probably forgotten after the last change
syscalls.master.
1999-11-26 10:20:10 +00:00
peter
7cd73c98f5 Add pcm entries for the alpha too, since they were taken out of
conf/files and moved to i386/conf/files.i386

Forgotten by: tanimura
1999-11-22 16:10:26 +00:00
peter
01330ff49e Update the Alpha makefile to be more in line with the x86 version. It
was getting quite dated.  Attempt to minimize diffs between the two so
it's not as painful to do this next time.
1999-11-22 15:39:13 +00:00
peter
f01ff83295 Use %ll instead of %q as gcc moans bitterly about it. 1999-11-22 15:23:58 +00:00
peter
baa766d3ee Zap some latent problems hidden by differences between KERNEL and _KERNEL.
The KAME code intruduces _KERNEL, which exposes some of them.
1999-11-22 15:14:56 +00:00
n_hibma
2fabfe01a4 Add MOUSE_MSC_MAXBUTTON and MOUSE_IF_USB. 1999-11-22 14:38:11 +00:00
phk
b506adfada Use LIST_FOREACH to traverse the allproc list.
Submitted by:   Jake Burkholder jake@checker.org
1999-11-19 21:34:50 +00:00
gallatin
3544d646b5 Properly attribute interrupt time on alpha. Previously, interrupt time
was likely to be counted as idle time.

Note that we are counting time spent in software interrupt handlers as
interrupt time, so this invalidates the i386 meaning of intr_nesting_level.

Reviewed by: dfr, bde
Tested by: anderson@cs.duke.edu
1999-11-19 13:38:22 +00:00
peter
76de652082 Move Alpha conflicting entries (98,99) to 135,136. Renumber the zsc
CDEV_MAJOR entry to match..  Is "ipr" in the tree?  I can't find it.
1999-11-18 04:20:23 +00:00
n_hibma
3ce448a56f Typo 1999-11-16 22:02:16 +00:00
gallatin
3862469671 Mchines whose interrupts are not routed through the ISA pic were still
registering their interrupts with rman as though they were going through
the ISA pic.  This prevents a conflict between isa & pci for irqs on such
machines.

Also hookup the chipset struct before calling platform.pci_intr_init().
This allows me to call inw/outw down in the platform code.

Add interrupt printfs to match the CIA chipset.

Reviewed by: dfr
Tested by: wilko
1999-11-16 14:01:12 +00:00
dfr
f2208af484 Add the ata devices to the GENERIC kernel. Hopefully, this should allow
it to install from ATA cds and to ATA disks. I'll check after my next
release builds.
1999-11-15 09:09:00 +00:00
dfr
6dfb400106 Re-organise the code which manages the owner of the FP state (fpcurproc).
The old code was spread out through the machdep code and was sloppy about
enabling and disabling the FEN bit (which controls access to the FP
register set). This caused a DIAGNOSTIC warning "DANGER WILL ROBINSON:
FEN SET IN cpu_fork!" sometimes when operating under high loads and could
conceivably lead to processes getting incorrect FP results.

The new code is much more strict about the FEN bit and makes sure that
*only* fpcurproc ever has it enabled. This also allows us to remove a
section of code from the exception_return path which might improve
performance marginally.

Reviewed by: gallatin
1999-11-10 21:14:25 +00:00
dfr
b1f829ffa6 Drop ipl to zero before calling ast(). Make sure that this only happens
if we are really going to call ast() to avoid unexpected interrupt
recursion.

Reviewed by: bde, gallatin
1999-11-09 21:43:12 +00:00
dfr
0daa10b268 Fix a warning. 1999-11-09 21:23:11 +00:00
alc
49c5eada3d Passing "0" or "FALSE" as the fourth argument to vm_fault is wrong. It
should be "VM_FAULT_NORMAL".
1999-11-09 01:44:28 +00:00
yokota
6b891b634b - Added the following options; they have existed in syscons
for sometime, but haven't been registered here.

  SC_NORM_ATTR
  SC_NORM_REV_ATTR
  SC_KERNEL_CONS_ATTR
  SC_KERNEL_CONS_REV_ATTR

PR: kern/13176
1999-11-08 10:59:48 +00:00
yokota
060ce4c0b5 - Added a new kernel configuration option: SC_TWOBUTTON_MOUSE.
The new option will make the right mouse button the `paste' button.
  Useful for two button mice.

Submitted by: morganw@engr.sc.edu (Wes Morgan)
1999-11-08 10:04:29 +00:00
yokota
08dbd4e20b - Removed SC_VIDEO_DEBUG. It is broken and useless now. 1999-11-08 09:57:16 +00:00
peter
5b37dfdd4b Take a shot at using cdevsw_add() to get it working again. This really
needs to use make_dev().
1999-11-08 07:51:28 +00:00
phk
a7f67fc819 Remove the iskmemdev() function. Make it the responsibility of the mem.c
drivers to enforce the securelevel checks.
1999-11-07 12:01:32 +00:00
phk
316e3fdcc1 Remove the devsw magic from DEV_MODULE() 1999-11-07 10:01:17 +00:00
eivind
5b687accc4 Options cleanup.
* GC unused options
* Move options that exist on all architectures to conf/options
* Add missing options to LINT
* Sort undocumented options list in LINT

Reviewed by:	green
1999-11-06 23:41:10 +00:00
alc
034b0d2ccc Remove an unnecessary alignment check from osigreturn and sigreturn. (The
data is copyin()'ed to a properly aligned buffer.)

Return EFAULT rather than EINVAL if the sigcontext is inaccessible,
as specified by the documentation.

Submitted by:	bde
1999-11-04 23:23:13 +00:00
dfr
607d5ec791 Fix the atomic arithmetic primitives for address where (p&7) >= 4.
Reviewed by: gallatin
1999-11-04 09:55:07 +00:00
alc
876db944a5 Eliminate two useracc(..., VM_PROT_READ) calls that immediately precede
copyin() calls.

Submitted by:	bde
1999-11-04 07:21:41 +00:00
gallatin
cc3fdb5fc5 Add a second direct map window to increase the maximum RAM this platform
can deal with from 1GB to 2GB.   I have no way to test with >1GB because I
don't have high enough density memory to get any one box over 1GB.  However, I
have tested it on xp1000 & ds10 with < 1GB of memory & have verified that it
does no harm.
1999-11-03 01:16:11 +00:00
msmith
db4ab99c0c Cut out some extra dead code that I missed last time around. I think
this will fix the alpha kernel build now (MFS excluded).
1999-11-02 19:29:20 +00:00
msmith
4584f23d75 This is a complete rewrite of vfs_conf.c, which changes the way the root
filesystem is discovered.  Preference is given to using the kernel
environment variable vfs.root.mountfrom, which is set by the loader
according to the contents of /etc/fstab.  Changes in the MD code
provide fallback mechanisms for systems not using the loader.

A more robust fallback path is also provided, with the last recourse
being to prompt on the console for a root device.

These changes drastically simplify the machine-dependant parts of
the root configuration process.  In addition, support for CDROM root
devices has been removed; it was a nasty hack and didn't work.
1999-11-01 23:51:00 +00:00
peter
fca471ec42 Merge the alpha and x86 majors files together. There appear to be
only two conflicts, cdev #98 and cdev #99.  These should be fixed.
MAKEDEV should probably be merged as well.
Static majors are (hopefully) going away one day soon.
This file is informational and not machine parsed by anything any more.
1999-11-01 04:12:42 +00:00
peter
ff69a3419a Update examples using 'disk' and 'tape' - they used to have magic meaning
to config(8) for static device tables that have not existed for quite
some time.  They have been aliases for 'device' for a while, and "tape"
went away entirely as it wasn't used anywhere (except in an example
in LINT.. "fixed").
1999-11-01 04:02:58 +00:00
alc
61bba49fd7 The useracc() calls in osigreturn() and sigreturn() should specify
VM_PROT_READ rather than VM_PROT_WRITE.  (This mistake predates
the B_READ/B_WRITE -> VM_PROT_READ/VM_PROT_WRITE change.)

Submitted by:	bde
1999-10-31 19:39:51 +00:00
gallatin
d21512a6e1 Don't lower the ipl when returning from handling an interrupt.
If the ipl is lowered here, a machine can rapidly run out of stack
space when it is under heavy interrupt load.   Without this fix,
my test machine would fall over within a few seconds when forwarding
14,000 packets/sec.  With the patch, it has been up for over 24 hours
and has built the world at the same time.

submitted by: dfr@freebsd.org
1999-10-30 15:20:31 +00:00
marcel
4a66bff37d Allow the source root `S' to be overridden by defining it only when
it isn't already defined. It enables config(8) to create the kernel
build directory where it wants.
1999-10-30 09:28:27 +00:00
alc
a301513e80 The core of this patch is to vm/vm_page.h. The effects are two-fold: (1) to
eliminate an extra (useless) level of indirection in half of the page
queue accesses and (2) to use a single name for each queue throughout,
instead of, e.g., "vm_page_queue_active" in some places and
"vm_page_queues[PQ_ACTIVE]" in others.

Reviewed by:	dillon
1999-10-30 07:37:14 +00:00