Commit Graph

13571 Commits

Author SHA1 Message Date
Greg Lehey
c3dff4f036 Include Peter Wemm's renaming and restructuring
Remove #ifdefs for FreeBSD 2.c

Change from lkm to kld

correct type of `flags' in calls to set_drive_state.

set_drive_parms: handle anonymous drives correctly (remove them)

drive VOP functions: use the PID of the original opener to fool the
lock manager.

open_drive: be quiet about failures (they're normal when scanning the
partitions).

close_drive: lock drive before closing.

remove_drive: lock drive before deallocating.

read_drive_label: set drive up when all is OK

check_drive:
  Complete rewrite.  Offload most of the code to the new
  vinum_scandisk

format_config:
  use snprintf and %qd options to make much less emetic.
  Remove old supporting functions.

vinum_scandisk:
  Moved here from vinum.c
  Almost complete rewrite, incorporating much of what was check_drive.
  We still don't have a general way to find the drives on a system, so
  get the user to supply the names via the `read' command.  For each
  device, try each possible compatibility slice name (there's a danger
  of finding both /dev/da1h and /dev/da0s1h otherwise).  Sort the
  partitions found in reverse order of last update time and read them
  in, setting the `update' parameter to parse_config and descendents.

save_config: rename to daemon_save_config, since the function is now
called by the daemon.  Create a new function save_config which queues
the request with the daemon.

daemon_save_config:  some mods to allow for the unfamiliar
environment.
1999-01-21 00:35:35 +00:00
Greg Lehey
a01fbbe4ac Include Peter Wemm's renaming and restructuring
Change from lkm to kld

Recover from I/O errors by passing the request to the daemon, except
for plex I/O, which is not fault tolerant.
1999-01-21 00:34:14 +00:00
Greg Lehey
3a85d3f98a Remove old cruft 1999-01-21 00:33:47 +00:00
Greg Lehey
76714993c6 Include Peter Wemm's renaming and restructuring
Change from lkm to kld

Remove BROKEN_GDB kludge (it's not needed with klds)

Add code for interfacing with daemon

Modify device minor number encoding, use selector functions which also
permit anonymous plexes and subdisks.

Remove code for 2.x support.

Change messages to omit obvious words like 'plex' and 'subdisk.

give_plex_to_volume: invalidate subdisks being given to a plex which
is part of a volume with other plexes.

give_sd_to_plex: keep track of plex size in all cases

lock drives before closing them, to keep the daemon from getting
confused.

config_drive: handle partition type errors more gracefully

config_subdisk: set subdisk state correctly

find_drive, find_drive_by_dev, find_subdisk, find_plex, find_volume:
  set VF_NEWBORN flag when a new object is created

config_drive:
  Handle partition_status returns more cleverly.
  Replace the device name in some cases where it got overwritten.

config_subdisk:
  add parameter `update'.  If the object already exists, exit without
  any changes.
  Set state correctly.

config_plex, config_volume:
  add parameter `update'.  If the object already exists, exit without
  any changes.

parse_config:
  move read function to vinum_scandisk.
  add parameter `update' to pass to config_<object>.

remove_<object>_entry:
  print a message when the object is removed.

update_plex_config:
  Start defusing this function, which will go away some time.
  Remove calls to update_volume_config.
  Make size 64 bits
1999-01-21 00:32:54 +00:00
Greg Lehey
2ef3e3ddbc Include Peter Wemm's renaming and restructuring
Change from lkm to kld
1999-01-21 00:31:59 +00:00
Greg Lehey
eb1cd79843 Code for vinum daemon. 1999-01-21 00:31:31 +00:00
Greg Lehey
fc4e325173 Include Peter Wemm's renaming and restructuring
Change from lkm to kld

Remove BROKEN_GDB kludge (it's not needed with klds)

Add code for interfacing with daemon

Modify manner of determining when module is idle

Modify device minor number encoding, use selector functions which also
permit anonymous plexes and subdisks.

Remove code for 2.x support.

Move vinum_scandisk to vinumio.c

Remove myproc kludge

Keep track of open volumes by flag, not by pid (the pids caused some
problems with the lock manager).

free_vinum:
  Remove unmapped and defective regions from plexes.
  Wait for daemon to stop before returning

vinumopen:
  Don't refuse an open if the volume is already open.
1999-01-21 00:30:52 +00:00
Greg Lehey
efd86c9a8c Reflect changes in vinumstate.h 1999-01-21 00:30:24 +00:00
Greg Lehey
7230cf7d2a Include Peter Wemm's renaming and restructuring
Change from lkm to kld

Add structures for daemon

Remove old cruft

Increase RQINFO_SIZE to 128
1999-01-21 00:29:44 +00:00
Greg Lehey
e743f211c1 Include the copyright notice in the script, making the file COPYRIGHT
unnecessary.
1999-01-21 00:29:20 +00:00
Julian Elischer
ea5f0893fd Minor rearranging of code to allow simple protocol domains to be
added as KLDs.
1999-01-21 00:26:41 +00:00
Greg Lehey
447a8172e9 Add source file vinumdaemon.c 1999-01-21 00:25:47 +00:00
Matt Jacob
667d00a796 put it back the way it was 1999-01-20 23:00:31 +00:00
Andrew Gallatin
b8b442b5ab Fix some mildly annoying compiler warnings about unused variables
and incorrect types in printf() format strings.
1999-01-20 20:51:39 +00:00
Peter Wemm
f75ccec2a1 *blush*. As a quick fix, move configure()'s SYSINIT back a little to allow
CAM's xpt_init() to get in first.  I hope this will fix the build again,
sorry guys. :-(
XXX configure_start() and configure_end() seem to be a bit excessive.. both
here and in the i386 code.
1999-01-20 19:22:24 +00:00
Matt Jacob
7781f5a621 temporary fix so alpha stays working while configure code is fixed 1999-01-20 19:08:45 +00:00
Matt Jacob
89297ac4d1 I guess this is now a legacy driver (for alpha only right now).
At any rate, some changes had to be made so that alpha would compile.
1999-01-20 18:27:31 +00:00
Bill Fenner
7b1777101c Also consider the space left in the socket buffer when deciding whether
to set PRUS_MORETOCOME.
1999-01-20 17:45:22 +00:00
Bill Fenner
b0acefa8d4 Add a flag, passed to pru_send routines, PRUS_MORETOCOME. This
flag means that there is more data to be put into the socket buffer.
Use it in TCP to reduce the interaction between mbuf sizes and the
Nagle algorithm.

Based on:	"Justin C. Walker" <justin@apple.com>'s description of Apple's
		fix for this problem.
1999-01-20 17:32:01 +00:00
Eivind Eklund
15a1057c46 Add 'options DEBUG_LOCKS', which stores extra information in struct
lock, and add some macros and function parameters to make sure that
the information get to the point where it can be put in the lock
structure.

While I'm here, add DEBUG_VFS_LOCKS to LINT.
1999-01-20 14:49:12 +00:00
Jordan K. Hubbard
49e314e105 Put back this wholly innocent victim of Mike's drive-by shooting on alog;
it belongs to the labpc driver.  Mike will be in the corner wearing
the pointed hat, should anyone be looking for him.
1999-01-20 13:09:28 +00:00
KATO Takenori
38d2964075 Remove 'alog'. 1999-01-20 08:31:56 +00:00
KATO Takenori
3c4a8b442b Sync with sys/i386/conf/Makefile.i386 revision 1.136. 1999-01-20 08:29:48 +00:00
Warner Losh
07353d4247 o enable plug and play support for the aha driver. Given the cumbersome
pnp system in freebsd, I'm not sure how useful this will be, but my
  1542CP seems to work well in plug and play mode and does seem to
  probe correctly at all the oddball addresses/irq/drqs that I tried.
  [[
     I was unable to get /kernel.conf or /kernel.config to read in, so
     I wasn't able to verify that this method of userconfig works.  that's
     one thing that makes pnp so hard to use in the current scheme.
     Pointers to the right new way of doing this accepted.
  ]]
o Add some kludges to maybe bring support for 1540A/1542A into the
  driver.  Since I have no 154xA cards, and the only person I know
  that has them hasn't given me feedback, I'm making this commit
  blind.
o Honor unit numbers that are in the config file now.  This allows one
  to hard wire the unit numbers (and have high unit numbers for plug
  and pray devices, which can't seem to be hardwired) and have the
  cards not migrate from aha1 -> aha0 should aha0 go on the fritz.  I
  didn't verify that hard wired scsi busses would work, but did verify
  that hard wired aha addresses did work to a limited extent.  Both
  aha0 and aha1 must be hardwired, or when the card that was in aha0
  goes away, the probe for aha0 might pick up the card that otherwise
  would have been aha1.
1999-01-20 06:21:27 +00:00
Jordan K. Hubbard
c71d51c375 Make more messages conditional on bootverbose 1999-01-20 04:24:22 +00:00
Mike Smith
36b5facd86 Remove 'alog'. G'bye Jamil. 1999-01-20 03:29:59 +00:00
Kenneth D. Merry
6dd76100e4 By popular demand, back out the CONNER CFP* quirk entry, and return it to
its original form.  (Originally, it only applied to the CFP 2107.)

Hopefully we can come to some conclusion about which Conner drives are
broken for tagged queueing.
1999-01-20 01:13:20 +00:00
Stefan Eßer
441e39d74a Fix problem with zero valued map registers followed by valid map entries.
The previous code just ignored the invalid map register, but this gave
surprising results because of the way pci_map_port() associated the map
register offset supplied with a map entry in the map array.
1999-01-19 23:29:20 +00:00
Bill Fenner
cc133fa302 Fix bug in last commit (la was used uninitialized if no route was passed in). 1999-01-19 23:17:03 +00:00
Mike Spengler
9848a01e47 Prevent duplicate output lines from 'atm show arpserver' command on systems
with multiple ATM physical interfaces.
1999-01-19 23:16:11 +00:00
Mike Spengler
4515a6631a Prevent accessing freed signalling instance memory during detach processing. 1999-01-19 23:14:51 +00:00
Mike Spengler
cffed8a128 Don't return errors for 'atm show arpserver' command on sigpvc and spans
interfaces.
1999-01-19 23:11:40 +00:00
Peter Wemm
d7dfdda203 Relax linkage symbol scope restrictions to be more compatable with that
of shared libraries.
1999-01-19 22:26:46 +00:00
Peter Wemm
dcddc353f7 Hide the gensetdefs run the same way we hide the final ld command. 1999-01-19 17:08:28 +00:00
Kenneth D. Merry
1f04f5abd7 The Samsung WN34324U is broken for tagged queueing.
PR:		kern/9535
Submitted by:	NAKAJI Hiroyuki <nakaji@zeisei.dpri.kyoto-u.ac.jp>
1999-01-19 16:59:36 +00:00
Peter Wemm
e75a9dc0b6 Don't decrement userrefs unless the file was actually was unloaded.
Submitted by:	Ustimenko Semen <semen@iclub.nsu.ru>
1999-01-19 16:26:32 +00:00
Dag-Erling Smørgrav
1857b6fe17 Fix comment wording. 1999-01-19 15:11:46 +00:00
KATO Takenori
efcf88f963 Fixed argument to intr member of the variable kbd. 1999-01-19 14:08:04 +00:00
KATO Takenori
972a5e4d92 Sync with sys/dev/syscons and sys/dev/kbd drivers.
Submitted by:	Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1999-01-19 12:41:26 +00:00
Kazutaka YOKOTA
f359876ff1 syscons
- Bring down the splash screen when a vty is opened for the first
  time.
- Make sure the splash screen/screen saver is stopped before
  switching vtys.
- Read and save initial values in the BIOS data area early.
  VESA BIOS may change BIOS data values when switching modes.
- Fix missing '&' operator.
- Move ISA specific part of driver initialization to syscons_isa.c.

atkbd
- kbdtables.h is now in /sys/dev/kbd.

all
- Adjust for forthcoming alpha port.  Submitted by: dfr
1999-01-19 11:31:22 +00:00
Kazutaka YOKOTA
8bbbb12f07 Remove unused files.
They served well.  Now that their descendant is firmly in place
and taking over, they can now rest in peace...
1999-01-19 10:32:20 +00:00
Matthew Dillon
ba2871b74c Obtained from: Luoqi
Fix NFS file corruption problem introduced in 1.188.  The valid range
    was not being set properly, causing a later reference to the buffer
    to clear the B_CACHE bit.
1999-01-19 08:00:51 +00:00
Kenneth D. Merry
59190eaa10 Generalize the quirk entry for the Conner CFP* drives. It did just cover
the CFP2107, but it appears (not surprisingly) that the 1 gig and 4 gig
versions of that drive have the same problem with tagged queueing.

Also, fix the problem reported in PR kern/9482.  The XPT_DEV_MATCH case in
xptioctl() wasn't putting a proper path in the CCB before it called
xpt_action().  When CAMDEBUG is defined, and CAM_DEBUG_TRACE debugging is
turned on, the CAM_DEBUG statement at the beginning of xpt_action would end
up deferencing a NULL path pointer.  That of course caused a panic.

My solution is to just stick the xpt peripheral's path in the CCB.

PR:		kern/9482
Reviewed by:	gibbs
1999-01-19 01:02:47 +00:00
Peter Wemm
afce57191c Update for pcic for kld modules and activate 1999-01-19 00:41:17 +00:00
Peter Wemm
d17e4ee67d Update the pccard hooks to use a module style declaration instead. 1999-01-19 00:21:53 +00:00
Peter Wemm
9b3df7693a Initial update pccard code for KLD module support. Module support
however is only marginally useful until the new-style bus (pci and isa)
stuff comes onboard to give us a better shot at actually pci and isa
drivers loadable (or preloadable anyway).
1999-01-19 00:18:28 +00:00
Peter Wemm
6d2a8f1ca0 Call the xpt_init() hook during at the start of the configure() process
via SYSINIT().  This gets a little closer to making cam useable as a
module.
1999-01-19 00:13:05 +00:00
Peter Wemm
8d3e670c7d Break configure() into a couple of stages to allow insertion of
hooks (eg: by drivers or (pre)loadable modules into a convenient spot.
1999-01-19 00:10:59 +00:00
Julian Elischer
d800ff4aed Fix typo. Unit is spelled with a 'u'. 'init' just types too easily. 1999-01-18 21:27:03 +00:00
Julian Elischer
b645ff7fc3 Fix screwed up previous commit.
Obviously no-one is using this card on ISA as the interrupts
were NOT being handled.
1999-01-18 21:23:47 +00:00
Andrew Gallatin
a671d614ca Reserve a major number for use by the Iprobe device driver.
Iprobe is an alpha-only system profiling suite which I'm porting from
Linux/alpha to FreeBSD.

Iprobe works by using the hardware profiling support built into
alpha cpus.  In a nutshell,  what Iprobe does is to setup the alpha
performance counters to sample the pc at a fairly high rate & dumps
those pc samples out to user space.  Then some code runs to map the
sampled PCs to functions.  You get a bit more than that (like the PSL
word, so you can tell if you're in the kernel or userland, what the
ipl is, etc).
1999-01-18 20:38:37 +00:00
Andrew Gallatin
1e176a8ad1 Added support for the DEC EB64PLUS systype. (Part III)
o Add the EB64PLUS systype into the kernel configuration files
and add it to the GENERIC kernel

o Correct mcclock_isa.c's dependence on cia, it should depend on isa.
  This will allow avanti and eb64+ kernels to be built without the cia
  chipset support code.
1999-01-18 20:26:50 +00:00
Andrew Gallatin
5a51b2f3b6 Added support for the DEC EB64PLUS systype. (part II)
The DEC EB64PLUS support code.  Based on NetBSD's dec_eb64plus.c,v 1.15

Submitted by: Wilko Bulte <wilko@yedi.iaf.nl>
1999-01-18 20:18:49 +00:00
Andrew Gallatin
2c478084d6 Added support for the DEC EB64PLUS systype. (part I)
The new file pci_eb64plus_intr.s deals with the interrupt hardware
on the EB64PLUS and was obtained from NetBSD with the NetBSD
copyright intact

The apecs chipset support code was altered to allow routing interrupts
through pci if we're not running on an avanti.  Avanti's route all
interrupts through isa.

Tested by: Wilko Bulte <wilko@yedi.iaf.nl>
Partially reviewed by: dfr
1999-01-18 20:15:07 +00:00
Mike Smith
378972ac6b Transition from using Perl to using awk for our text-manipulation
needs.  This removes the dependancy on Perl for the generation of the
loader, allowing the world to be built on a perl-free system.

Submitted by:	Joe Abley <jabley@clear.co.nz>
1999-01-18 19:05:27 +00:00
KATO Takenori
5343d329b6 Added copyright.
Pointed out by:	Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1999-01-18 14:55:38 +00:00
KATO Takenori
07986a05ff Merge with sys/dev/syscons/syscons.c revision 1.292.
Submitted by:	Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1999-01-18 14:48:34 +00:00
KATO Takenori
1ec0a1bcd4 Don't forget to initialize va_mode.
Submitted by:	Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
Forgotten by:	kato
1999-01-18 14:47:01 +00:00
KATO Takenori
4e1cc33d71 Sync with sys/i386/i386/userconfig.c revision 1.126. 1999-01-18 11:01:57 +00:00
KATO Takenori
56cdcc561b Sync with sys/i386/conf/Makefile.i386 revision 1.135. 1999-01-18 11:00:29 +00:00
KATO Takenori
1835ec2219 Switched to new syscons driver.
Submitted by:	NOKUBI Hirotaka <hnokubi@yyy.or.jp> and
             	Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1999-01-18 08:38:08 +00:00
Julian Elischer
0fe90303e0 From inspection, ISA interrupts were completely broken..
revert some of the old ISA code.
(I can't test this but I'm working on the file.)
1999-01-18 07:55:02 +00:00
Bill Fenner
88658ab880 Get rid of MT_RTABLE; multicast routing no longer uses it. 1999-01-18 02:09:52 +00:00
Bill Fenner
01b7c0826f Use dynamic memory allocation instead of mbuf's for multicast routing
state.

Note: this requires a recompilation of netstat (but netstat has been
broken since rev 1.52 of ip_mroute.c anyway)

Obtained from:	Significantly based on Steve McCanne's
		<mccanne@cs.berkeley.edu> work for BSD/OS
1999-01-18 02:06:59 +00:00
Bill Fenner
9bb02c7b92 Rename igmp's MALLOC; it doesn't have anything to do with multicast routing. 1999-01-18 01:56:31 +00:00
Bill Fenner
e7bc5f272b If arpresolve() gets passed a route with a null llinfo, call
arplookup() to try again.  This gets rid of at least one user's
 "arpresolve: can't allocate llinfo" errors, and arplookup() gives
 better error messages to help track down the problem if there really
 is a problem with the routing table.
1999-01-18 01:54:36 +00:00
Dmitrij Tejblum
f0231545a1 Bring a bit closer to the normal form. (In particular, add
__BEGIN_DECLS/__END_DECLS).
1999-01-17 22:33:08 +00:00
Peter Wemm
79e1185f39 Replaced by /usr/bin/gensetdefs a few months ago. 1999-01-17 21:18:19 +00:00
Peter Wemm
f7dd86c147 Use the gensetdefs that is now in /usr/bin, it's a superset of the
one in the kernel source, and that one is already used for modules.

I don't _think_ this will hurt releases, aout-to-elf, etc, but it is
possible.  In all the cases I've looked at, config(8) has been
generated straight after a make world, so if /usr/sbin/config exists and
is the right version for the kernel, then we can pretty much count on
/usr/bin/gensetdefs being there too.
1999-01-17 21:17:27 +00:00
Peter Wemm
b34c073744 Missed a stray LKM #ifdef 1999-01-17 21:04:53 +00:00
Peter Wemm
8e203b83a7 Undo #undef KERNEL hack for vnode.h to avoid vnode_if.h.
XXX It probably makes sense to have a flag for bsd.kern.mk to avoid these
    rules.
XXX IO_NDELAY seems to be the main reason for it, when used in a cdevsw
    read or write "flag" context.  Perhaps a redundant declaration
    somewhere like sys/conf.h might help remove the need for vnode.h in
    these device drivers in the first place.
1999-01-17 20:53:48 +00:00
Peter Wemm
1351d07f0d Mountroot could concievably make sense to a KLD though, in the preload
case.  I'm not sure the autoconf code is up to it though...
1999-01-17 20:41:02 +00:00
Peter Wemm
55b8081be1 Remove references to an LKM that isn't built any more. 1999-01-17 20:39:08 +00:00
Peter Wemm
1e65ef01b0 Minor cleanup; no more references to LKM's. 1999-01-17 20:36:14 +00:00
Peter Wemm
1fb37cbd06 Remove the LKM glue since the support (src/lkm) has been gone a while.
This was impossible to use as an LKM anyway, but does work as a preloaded
kld module though.
1999-01-17 20:30:13 +00:00
Peter Wemm
880628ca6c Remove LKM support, src/lkm that built it is gone and it never worked as an
LKM anyway.  It does work as a preloaded KLD module though.
1999-01-17 20:28:12 +00:00
Peter Wemm
6bfaa53754 Clean up the KLD/LKM goop a bit. 1999-01-17 20:25:22 +00:00
Peter Wemm
6b3daecd80 "fix" long standing aicasm build glitch. The problem was the
reorganization in rev 1.16 of i386/include/types.h which changed
stdlib.h's use of <machine/types.h>.  The problem was the -I. was causing
machine/types.h to come from the current kernel source, while stdlib.h was
coming from /usr/include.  /usr/include/stdlib.h is as old as the last
'make world', the machine/types.h was as new as the current source.
1999-01-17 19:56:02 +00:00
Peter Wemm
90b66aad9f Add LKM option so that the remaining code (hopefully) doesn't go stale. 1999-01-17 19:09:41 +00:00
Peter Wemm
72a3f9e4d1 Add the lkm module 1999-01-17 19:06:06 +00:00
Peter Wemm
e54a0f3279 World, please meet the kld module called "lkm". If you have an a.out
kernel and you forgot to add 'options LKM', you can kldload this module
and get LKM compatability. (!)
1999-01-17 19:05:40 +00:00
Peter Wemm
f20a9c5af8 LKM kernel support becomes optional on "options LKM". (Bear in mind
that the default kernel is now ELF and cannot load these LKM's).
1999-01-17 19:02:39 +00:00
Peter Wemm
87acc0db42 - Move lkmnosys() to kern_syscall.c
- Have the VFS lkm support use vfs_register() etc rather than having it's
  own version.
- Have the syscall lkm support use syscall_register() etc rather than
  having it's own verison.
- Convert the lkm driver to a module.
1999-01-17 19:00:58 +00:00
Peter Wemm
46db48360d Move lkmnosys() from kern_lkm.c to here. 1999-01-17 18:58:04 +00:00
Peter Wemm
e99f57c354 Try and clean up the multiple formal loading support a bit, based on
suggestions from Greg Lehey some time ago.  In the face of multiple
potential file formats, try and give a more sensible error than just
ENOEXEC.

XXX a good case can be made that the loading process is wrong - the linker
should locate the file first (using the search paths etc), then run the
loaders to see if they recognize it.  While the present system allows for
the possibility of different search paths for different formats, we do not
use it and it just makes things more complicated than they need to be.
1999-01-17 17:58:52 +00:00
Bill Paul
8fb31185e7 Fix cut & paste mind-o: the entry for the xl driver should say ethernet,
not FDDI. *smak*
1999-01-17 17:42:22 +00:00
KATO Takenori
a464f91c8d Make old syscons work. (New syscons driver for PC98 is still under
development.)

Submitted by:	Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>
1999-01-17 15:42:27 +00:00
Kazutaka YOKOTA
f9e730bbb3 Retrun EAGAIN if the current video mode is a graphics mode. 1999-01-17 14:25:19 +00:00
Kazutaka YOKOTA
6d479db3c3 - Examine the error code from the screen saver and act accordingly.
0	success
	EAGAIN	try again later
	other	don't call this screen saver again
- Test flags consistently to examine the status of the screen saver.
	scrn_blanked: the screen saver is running
	scp->status & SAVER_RUNNING: the saver is running in this vty
- Correctlyu preserve status flag bits in set/restore_scrn_saver_mdoe().
1999-01-17 14:23:15 +00:00
Kazutaka YOKOTA
bc27c8dcdc Don't forget copying video mode flags to the adapter info. block when
changing video modes.
1999-01-17 14:12:48 +00:00
KATO Takenori
e53a4818c5 Sync with sys/i386/isa/wd.c revision 1.186. 1999-01-17 12:24:48 +00:00
Bruce Evans
400c9756b5 Removed the #defines of interrupt handlers to NULL. This hack was for
old (> 3 months) versions of config(8).
1999-01-17 06:33:43 +00:00
Bruce Evans
555421cf40 Pass the unit number to the DMA cookie lookup routine and use it
to look up cookies properly, at least for standard controllers.
Cookies are used so that we don't have to pass around lots of args.
All of the dmainit functions use the unit number so it is essential
that we pass them a cookie with the correct unit number.

This may break working configurations if there are bugs in the
dmainit functions like the ones I just fixed for VIA chipsets.

Broken in:	rev 1.4 of ide_pci.c and rev.1.139 of wd.c.
1999-01-17 05:46:25 +00:00
Bruce Evans
0abd520152 Fixed a 2-bit error in initializing MWDMA mode for VIA chipsets.
Prefetch/postwrite was enabled for the wrong controller.  (VIA
is bitwise big endian and we confused ourself by shifting left
instead of right.)

Extracted from:	last set of patches from the author
		(john hood <cgull@smoke.marlboro.vt.us>) on 7 Feb 1998
1999-01-17 05:18:54 +00:00
Bill Paul
d4a2465595 Small cosmetic tweak: in rl_rxeof(), use the constant RX_CMD_EMPTY_RXBUF
instead of the magic number 1.
1999-01-16 21:03:57 +00:00
Bill Paul
1851594ca0 Remove the code that manually pads frames to at least 60 bytes;
the ASIX chip supports auto-padding.
1999-01-16 20:40:52 +00:00
Bruce Evans
0c63b25bd1 Fixed a 1-bit error in initializing UDMA mode for VIA chipsets.
Instead of initializing UDMA mode, we turned it off and made sure that
it stays off by turning on the "UDMA enable by SET FEATURES" disable.

The damage was limited by bugs in cookie lookup, and suitable
initialization by some BIOSes.  The cookie list has slaves before
masters, and the unit number is ignored when cookies are looked up,
so cookie lookup always finds cookies for slaves and the bug only
clobbers slaves, so the bug was harmless for common configurations
with no slaves or only non-UDMA slaves.  UDMA initialization for
masters actually worked if the BIOS turns on the UDMA mode bit and
turns off the "UDMA enable by SET FEATURES" disable.
1999-01-16 19:48:01 +00:00
Matt Jacob
15da947cba Sascha Blank <blank@uni-trier.de> convinced me I was an
idiot about testing SA_QUIRK_2FM in samount. Fixed.

Removed the NORRLS quirk (to save quirk space) and left
the behaviour of being quiet about failed reserve/release
(failed due Illegal Request) the same.

Added a SF_QUIET_IR for prevent/allow for the same purposes.
1999-01-16 19:20:30 +00:00
Doug Rabson
c3654b5c4d A few small improvements to the bus code:
* A function device_printf() to make pretty-printing driver messages easier.
* A function device_get_children() to query the children of a device.
* Generic implementations of BUS_ALLOC_RESOURCE and BUS_RELEASE_RESOURCE.
* Change bus_generic_print_child() so that it is actually useful.
1999-01-16 17:44:09 +00:00
Doug Rabson
46bfb76599 Add kern_syscalls.c
Submitted by: Assar Westerlund <assar@sics.se>
1999-01-16 17:29:56 +00:00
KATO Takenori
4b05574297 There are two models of AMD K6-2 Model 8 (c.f. AMD's document), so the
CPU stepping must be checked.  Also, fixed print_AMD_info.

Submitted by:	Akio Morita <amorita@meadow.scphys.kyoto-u.ac.jp>
1999-01-16 13:41:33 +00:00
KATO Takenori
5d4a8edf37 Revise sio entries to synchronize with current driver.
Submitted by:	Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>
1999-01-16 13:20:42 +00:00
Kazutaka YOKOTA
ac060466a6 Fix palette save/load functions.
# They have been unchanged since the introduction of the VESA support.
# But, we started seeing the problem only recently ;-<
1999-01-16 12:56:00 +00:00
KATO Takenori
e42f0a2ea6 Sync with sys/i386/isa/wd.c revision up to 1.185. 1999-01-16 11:43:12 +00:00
KATO Takenori
a87737af86 Sync with sys/i386/isa/sio.c revision up to 1.223. 1999-01-16 11:42:16 +00:00
KATO Takenori
0061057d70 Sync with sys/i386/isa/npx.c revision 1.65. 1999-01-16 11:41:18 +00:00
KATO Takenori
21da8ffad1 Sync with sys/i386/isa/fd.c revision 1.131. 1999-01-16 11:40:02 +00:00
KATO Takenori
485f69e3db Sync with sys/i386/i386/machdep.c revision up to 1.125. 1999-01-16 11:39:08 +00:00
KATO Takenori
eb5417aa3a Sync with sys/i386/i386/machdep.c revision up to 1.322. 1999-01-16 11:38:03 +00:00
KATO Takenori
5b87bd54cf Sync with sys/i386/conf/majors.i386 revision up to 1.64. 1999-01-16 11:36:28 +00:00
Dag-Erling Smørgrav
9402dfb01a Move the definition of set_origin from logo_saver.c to saver.h. 1999-01-16 10:20:16 +00:00
Bill Paul
e4d0044c3a Stability fixes:
- In wb_rxeof(), if the received packet is less than MINCLSIZE bytes,
  copy it to an mbuf chain so as to be more frugal in our use of mbuf
  clusters.

- The Winbond chip, like the ASIX, wants the 'TX interrupt request'
  bit set in the _first_ fragment of a transmitted frame, not the
  last. (At least the Winbond manual states this unambiguously; too
  bad I wasn't paying attention when I read it the first time.)

- Turn off the transmit threshold mechanism (initialize the threshold
  to 0). This effectively puts the chip in 'store and forward' mode
  which seems to cut down on transmit errors a little. It may also
  reduce transmit performace a bit, but I'm willing to do that if it
  means better reliability.
1999-01-16 06:25:59 +00:00
Bill Paul
51b875b355 Fix some stability problems:
- Normally, the driver allocates an mbuf cluster for each receive
  descriptor. This is because we have to be prepared to accomodate up to
  1500 bytes (a cluster buffer can hold up to 2K). However, using up a
  whole cluster buffer for a tiny packet is a bit of a waste. Also,
  it seems to me that sometimes mbufs will linger in the kernel for
  a while after being passed out of the driver, which means we might
  drain the mbuf cluster pool. The cluster pool is smaller than the
  mbuf pool in general, so we do the following: if the packet is less
  that MINCLSIZE bytes, then we copy it into a small mbuf chain and
  leave the mbuf cluster in place for another go-round. This saves
  mbuf clusters in some cases while still allowing them to be used
  for heavy traffic exchanges with lots of full-sized frames.

- The transmit descriptor has a bit in the control word which allows
  the driver to request that a 'TX OK' interrupt be generated when
  a frame has been completed. Sometimes, a frame can be fragmented
  across several descriptors. The manual for the real DEC 21140A says
  that if this happens, the 'TX interrupt request' bit is only valid
  in the descriptor of the last fragment. With the ASIX chip, it seems
  the 'TX interrupt request' bit is only valid in the descriptor of
  the _first_ fragment. Actually, the manual contains conflicting
  information, but I think it's supposed to be the first fragment.
  To play it safe, set the bit in both the first and last fragment to
  be sure that we get a TX OK interrupt. Without this fix, the driver
  can sometimes be late in releasing mbufs from the transmit queue
  after transmission.
1999-01-16 06:19:38 +00:00
Matt Jacob
54e609ba5c More bandaids. One important one from Sascha Blank
(<blank@fox.uni-trier.de>) about quirks being set as
arithmetic values, not as bitfields. Add HP, Kennedy
and M4 1/2" reel quirk entries.

Do a lot of gratuitous source changing.

Audit all functions that build ccbs for the tape driver
and decide whether each one can be retried or not.

Still to do is some more state management post errors.
1999-01-16 04:02:31 +00:00
Mike Smith
d387675c42 Spell "ctlr" consistently. 1999-01-16 03:55:46 +00:00
John Polstra
5e26973571 Replace duplicated "old" linker set definitions with an include of
<sys/linker_set.h>.  Note, this isn't used on the i386.
1999-01-16 03:25:24 +00:00
Bruce Evans
86485cc940 Don't let bugs in ide_pci.c break wdprobe(), at least for standard
IDE hardare.  The attempted fix in rev.1.182 was a no-op except for
adding dozens of style bugs.  The undocumented options ALI_V and
DISABLE_PCI_IDE go away as a side effect.  ALI_V was a no-op because
rev.1.182 was a no-op.  DISABLE_PCI_IDE didn't actually disable
PCI IDE.  It disabled the buggy code in wdprobe() at a cost of
completely breaking support for Promise controllers.

Broken in:	rev.1.139
1999-01-16 01:06:23 +00:00
Mike Smith
38c9282d5c Fix breakage in rev 1.19; the second argument to ide_pci_candma is a
controller number, not a unit number.  Make this clear.
1999-01-16 00:36:53 +00:00
Justin T. Gibbs
2e03cdebd5 Add two missing break statements. 1999-01-15 23:24:23 +00:00
Mike Smith
a07089226d Oops, add the NMBCLUSTERS initialiser for the Alpha as well. 1999-01-15 18:00:19 +00:00
Mike Smith
2084f96c7f Add getenv_int(), specifically for retrieving integer values from kernel
environment variables.  This makes it easy to pass tuning parameters
in from the bootloader.
1999-01-15 17:25:02 +00:00
Mike Smith
8664a77199 Fetch an overide for NMBCLUSTERS from the kernel environment. Never allow
the value to be reduced below that defined when the kernel was built.
1999-01-15 17:24:05 +00:00
Bruce Evans
b8cf6ea776 Use a fast interrupt handler for the PCI version of the cy driver
if option CY_PCI_FASTINTR is configured and mapping the irq to a
fastintr is possible.  Unfortunately, this has to be optional because
pci_map_int_right() doesn't handle the INTR_EXCL flag right --
INTR_EXCL is honoured even if the interrupt needs to be non-exclusive
for other devices to work.
1999-01-15 10:00:12 +00:00
Bruce Evans
e93e63cb39 Fixed corruption of the fd buffer queue. Once upon a time, the active
buffer had to be left on the head of the queue for [bufq]disksort()
to sort against.  This isn't right for devices that can support multiple
active i/o's, and only the fd driver did it.  "Fixing" this in rev.1.36
of ufs_disksubr.c broke the fd driver in much the same way as rev.1.52
of <sys/buf.h> broke it (see rev.1.119).

Bug reported and fix tested by:	dt
1999-01-15 09:15:27 +00:00
Andrzej Bialecki
0d9ab84751 Fall back to /boot/boot.conf, if /boot/loader.rc was not fount. This is
to cover the transition period.

Suggested by:	msmith
1999-01-15 00:31:45 +00:00
Mike Smith
118537f287 Add sscanf/vsscanf/strtoq/strtouq to the kernel. Initially these will be used
for parsing kernel environment values, although they have utility elsewhere.
1999-01-15 00:03:39 +00:00
Andrzej Bialecki
1b855e4412 Change counter-intuitive pc@ and pc! to inb and outb.
Submitted by:	jkh
1999-01-14 23:48:03 +00:00
Bruce Evans
3b0db8df3e Backed out previous commit. MALLOC_DEFINE() needs <sys/kernel.h>. 1999-01-14 23:43:22 +00:00
Nicolas Souchu
602c5d866a Return error codes to user-land.
Submitted by: Takanori Watanabe <takawata@shidahara1.planet.sci.kobe-u.ac.jp>
1999-01-14 22:55:03 +00:00
Nicolas Souchu
78534d41e1 Terminate negociation if Ext. link negociation succeeds. This avoids
the unknown mode panic during boot probe.
1999-01-14 21:38:16 +00:00
John Polstra
0ec81012da Replace includes of <sys/kernel.h> with includes of
<sys/linker_set.h> in those files that use only the linker set
definitions.
1999-01-14 06:22:10 +00:00
Justin T. Gibbs
d95bc0d6d2 Add entry for the target mode black hole driver. 1999-01-14 06:16:45 +00:00
Justin T. Gibbs
863c602654 Add support for routing initiator transactions to disabled luns to the
black hole device.  The controller will now only accept selections if
the black hole device is present and some other target/lun is enabled
for target mode.

Handle the IGNORE WIDE RESIDUE message.  This support has not been tested.

Checkpoint work on handling ABORT, BUS DEVICE RESET, TERMINATE I/O PROCESS,
and CLEAR QUEUE messages as a target.

Fix a few problems with tagged command handling in target mode.

Wait until the sync offset counter falls to 0 before changing phase
after a data-in transfer completes as the DMA logic seems to indicate
transfer complete as soon as our last REQ is issued.

Simplify some of the target mode message handling code in the sequencer.
1999-01-14 06:14:15 +00:00
Justin T. Gibbs
c8bead2a12 Add support for wildcard device entries in the EDT. The target mode
'Black Hole' device uses this feature to schedule itself against any
target or lun attached to a controller that receives an unwanted request
from an initiator instead of having an instance per potential target/lun
request.

Use the wildcard entries to simplify wildcard async callback storage.

Don't announce devices twice to peripheral drivers.  The devices will
be announced as soon as the AC_PATH_REGISTERED event is registered by
the peripheral driver, so no manaul push of this event is required.

Reviewed by: Kenneth Merry <ken@FreeBSD.org>
1999-01-14 06:03:59 +00:00
Justin T. Gibbs
6fda903f5b The target mode 'Black Hole' device. This peripheral driver provides inquiry
data and sense information for target mode devices for which no other
peripheral driver is attached.  This simplifies the task of dealing with
luns that are not otherwise enabled for target mode if the controller
does not have firmware that automatically deals with this case (e.g.
the aic7xxx driver).
1999-01-14 06:00:29 +00:00
Justin T. Gibbs
443af83864 Properly handle transfers that only consume partial buffers. 1999-01-14 05:57:32 +00:00
John Polstra
045205a869 Move the linker set definitions into a new header file
<sys/linker_set.h>.  <sys/kernel.h> includes the new header, so
functionally everything is still the same.
1999-01-14 05:48:46 +00:00
Mike Smith
84252d6300 dftp -> dtfp Get it right... 1999-01-14 03:47:55 +00:00
Kenjiro Cho
34f3320ef4 add HZ missing in options.
changing HZ used to break xntpd's PLL but it should be ok now (unless
xntpd is misconfigured).
1999-01-14 03:30:48 +00:00
Kazutaka YOKOTA
47d8621a0b Fix various breakage after the recent keyboard driver change.
- Don't try to set typematic rate if there is not a keyboard.
- Fix wrong test on error code.
- Don't try to claim the keyboard twice.  The second call will fail.
1999-01-14 03:17:32 +00:00
Nick Hibma
5f2848a953 Removal unneccessary definitions 1999-01-14 01:35:12 +00:00
Nick Hibma
1c8fa23724 Corrected the latent fact that the uhub driver was providing a driver for
the usb device class instead of the uhub devclass. Only a problem with more
than one USB host controller.
1999-01-14 01:28:15 +00:00
Nick Hibma
86d7ad019e Added Entrega Parallel and Serial Connectors to the information
file.
1999-01-14 01:18:44 +00:00
Robert Nordier
05c7fdda18 In the event of a disk error, boot2 is expecting an error
code to be returned: give it one
1999-01-13 23:30:07 +00:00
Andrzej Bialecki
fb0b33b136 Change /boot/boot.conf to /boot/loader.rc - this name reflects what it
really is.

Agreed upon by:	jkh, msmith and many others
1999-01-13 21:59:58 +00:00
Andrzej Bialecki
c82de3cb3f Add words "pc!" and "pc@" which allow to manipulate I/O ports. This can
be helpful when directly fiddling with PC hardware.

Also, define "arch-i386" appropriately, as suggested by Daniel C. Sobral.
1999-01-13 21:31:50 +00:00
Kazutaka YOKOTA
00f19754a4 Use the correct macro to test flags; we need KBD_IS_INITIALIZED here,
not KBD_IS_PROBED.
1999-01-13 11:19:19 +00:00
Kazutaka YOKOTA
15401862e4 Calculate the number of bitmap colors in the correct way.
The bug found by: Kevin Street <street@iname.com>
1999-01-13 09:59:30 +00:00
Kazutaka YOKOTA
e1b5fc4c59 Move notes on some flags for AT keyboard. They used to be for sc0,
and now for atkbd0.

# I know I should be writing a man page rather than editing LINT...

Spotted by: tom@geotec.net (Tom Jackson)
1999-01-13 09:55:19 +00:00
Mike Smith
4e24cd8e44 Typo in patch application.
PR:		kern/9459
Submitted by:	"Daniel C. Sobral" <dcs@newsguy.com>
1999-01-13 08:11:41 +00:00