Commit Graph

62 Commits

Author SHA1 Message Date
darrenr
960df3c8d1 Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records.  The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
2003-06-28 14:20:43 +00:00
rafal
3171f081c8 Make this work on fast platforms by making sure signals are held for at
least 1us.  Documentation I've found for the simple (SPP) parallel port
mode says that data should be stable 500ns before STROBE, STROBE should
be pulsed for no less than 500ns, and that data should be stable another
500ns after STROBE has been de-asserted.

Makes lpt@ebus on my Sun Ultra5 work with my HP DeskJet 712C, at least in
polled mode.  Thanks to Martin for astutely noting it was probably a bug
with STROBE being pulsed too quickly.
2002-12-10 07:19:25 +00:00
jdolecek
e0cc03a09b merge kqueue branch into -current
kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
2002-10-23 09:10:23 +00:00
gehenna
77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
lukem
a4bae8b066 add/cleanup RCSID 2001-11-13 13:14:31 +00:00
thorpej
cb450cc444 Use device_lookup(). 2000-07-06 01:47:34 +00:00
thorpej
fc96443d15 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 07:01:25 +00:00
perry
d5a261206d Replace the #ifdef'ed variable DELAYs with a pair of non-ifdefed
DELAY(1)'s. This should fix interrupt driven lpt driver hang and
reboot problems for the group of users who have experienced them, and
shouldn't hurt anyone else.
1999-03-29 21:50:06 +00:00
perry
8ade3b61ba Add two #ifdef BROKEN_LPT_DELAY's in to the central write byte
& strobe cycle. These bracket DELAY()'s of BROKEN_LPT_DELAY
microseconds. This can be used to kludge around mysterious hangs and
reboots some users experience. The cause of these failures is still
not known, but is conjectured to be hardware bug originated failures
in the bus cycle.
1999-03-25 02:17:38 +00:00
thorpej
873e1d2a51 Fix printf format problems on Alpha. 1999-02-12 01:51:37 +00:00
perry
6413810bf3 Stop spurious lpt messages from being printed -- approved by fvdl. 1998-10-14 20:09:06 +00:00
mycroft
6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
is
6054d626f9 Switching dev/ic/lpt.c to use spllpt() instead of spltty(). It doesn't use
tty structures, and on some machines (namely the DraCo internal lpt, and some
multi-i/o boards for Amigas and DraCos), tying spltty to the pretty high printer
interupt level would hurt serial performance.

On all affected ports but Amiga, spllpt() has been defined in machine/intr.h
to be spltty(), thus preserving old behaviour. Portmasters are encouraged to
change is, if they feel something else is better (e.g., one of its own were
possible).
1998-07-18 21:27:25 +00:00
cgd
c2f42b2213 Implement a flag to indicate that the driver attached correctly.
This is useful in the case where an attachment's probe routine
verifies that there is indeed hardware present but something goes
"wrong" in the attach causing the device to be unusable.  (Without
keeping track of this, in that case incorrect ports could be
accessed or uninitted pointers could be deferenced on open or at
other times.)
1998-02-02 22:54:55 +00:00
thorpej
095c4c092d Adjust for config changes. 1998-01-12 09:23:08 +00:00
thorpej
0ac93f48ea Use malloc()/free(), not geteblk()/brelse(), for the device buffer. 1997-12-07 16:09:36 +00:00
is
59129515bb Finalize the isa/lpt.c split:
The isa attachment code is in isa/lpt_isa.c now, which attaches to the
already created ic/lpt* files.
You don't need to change your config files, but you need to re-"config" if
using lpt at isa.
XXX The "lpt" device definition should be in sys/conf/files instead, but to
my knowledge, there are some ports which have private copies of lpt, and would
choke on that. No need to make people unhappy 7 days before release branching.
1997-10-14 15:50:15 +00:00
is
3ad599d701 First part of splitting lpt.c, and the NetBSD/Amiga "supio" frontend. Needs
a bit more work to allow an ISA frontend.
1997-09-27 22:44:11 +00:00
mikel
06ecebc8c0 add missing argument to LPRINTF() declaration; from Geoff Wing in PR 4072.
I also made inclusion of LPRINTF() dependent solely on the symbol
  LPTDEBUG, initialized lptdebug variable to 0 instead of 1, and
  matched arguments to format strings in LPRINTF() calls.
1997-09-02 01:37:19 +00:00
cgd
197d80c63a update these so they compile whether or not __BROKEN_INDIRECT_CONFIG
is defined.
1996-12-05 01:25:23 +00:00
thorpej
769a499800 New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
	  devices.  It's all "bus space" now, and space tags
	  differentiate the space with finer grain than the
	  bus chipset tag.
	- Add memory barrier methods.
	- Implement space alloc/free methods.
	- Implement region read/write methods (like memcpy to/from
	  bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
1996-10-21 22:34:38 +00:00
christos
86373f8cf9 backout kprintf changes 1996-10-13 01:37:04 +00:00
christos
58953408cb printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:04:48 +00:00
mycroft
cec36bf8d5 Use intr.h. 1996-05-12 23:51:23 +00:00
christos
a1609dc859 - Fix gcc -Wall warnings
- BUG: if (error = ...() == EWOULDBLOCK)
1996-04-29 20:30:48 +00:00
cgd
51e85d07b9 update for addition of a machine-dependent cookie as the first argument
to isa_intr_{,dis}establish().
1996-04-11 22:27:59 +00:00
mycroft
0609135a66 Add explicit return types. 1996-04-10 19:03:46 +00:00
cgd
b55176ea0c since this driver tries to block its interrupt with spltty(), it must
attach that interrupt with IPL_TTY.
1996-03-18 09:14:32 +00:00
cgd
b5c1728e22 clean up <machine/bus.h> changes a bit; no real functional change.
prototype lpt_port_test().
1996-03-17 13:40:29 +00:00
thorpej
6d9ea4cf59 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 00:43:52 +00:00
cgd
2c11ad408c convert to use I/O mapping/access macros in <machine/bus.h>.
Mostly mechanical changes, except for probe/attach, which have
to map (and, in the case of probe, unmap) the I/O space that the
chip will use.
1996-03-08 22:17:58 +00:00
mycroft
3da4b2a160 The IST_* and IPL_* constants are not bus-specific; don't treat them as such.
Change splimp -> splnet in Ethernet, ARCnet, and FDDI drivers.
1995-12-24 02:29:35 +00:00
cgd
8a640328ed clean up several ISA device interfaces: autoconfiguration, header
inclusion, and interrupt configuration.  more work still needs to be done,
but it's getting better...
1995-04-17 12:06:30 +00:00
cgd
3a7bbb1acd lip service to making ISA support machine-independent. This is the first
round: moving the drivers into a machine-independent directory.
Some drivers (e.g. fd.c) not moved because they use other pc features (e.g.
CMOS settings), and none of the non-driver files moved, because they're
still pretty much PC specific.  eventually (when other ports with ISA
busses really start using this code), more 'high-level' ISA support will
live here.
1995-01-29 07:36:54 +00:00
mycroft
c5d5ca8150 Don't check the control port at all; too unreliable. 1995-01-26 07:35:49 +00:00
mycroft
3dddacd1ce Rearrange tests so offline' has higher priority than out of paper'. 1995-01-22 00:12:39 +00:00
mycroft
b5cf1b5ddd Add interrupt sharing types. 1995-01-03 01:30:14 +00:00
mycroft
35cdd801e6 Convert port, IRQ, and DRQ numbers to ints. 1994-11-18 21:57:40 +00:00
cgd
6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
cgd
022ee8f7fe new RCS ID format. 1994-10-27 04:14:23 +00:00
mycroft
a69dd750a2 b_un.b_addr -> b_data 1994-06-16 01:07:30 +00:00
mycroft
37c76e16d1 Only print the blasted messages *once* per error. 1994-05-27 08:54:52 +00:00
cgd
e47989d1e5 turn off spontaneous printing of messages when DEBUG turned on 1994-05-23 02:33:23 +00:00
mycroft
685508a6b4 Remove now-bogus cast. 1994-05-05 07:52:53 +00:00
cgd
a0a7429482 lots of changes: prototype migration, move lots of variables, definitions,
and structure elements around.  kill some unnecessary type and macro
definitions.  standardize clock handling.  More changes than you'd want.
1994-05-05 05:35:42 +00:00
mycroft
eb036e74c5 Don't need isa.h. 1994-04-22 23:02:40 +00:00
mycroft
3f5e4f423f Implement dynamic IRQ configuration and IRQ sharing. Inline spl*() calls.
Reorganize and clean up the relevant code.
1994-04-07 06:48:19 +00:00
mycroft
592ec61b17 Updates for new autoconfig. 1994-03-29 04:35:37 +00:00
mycroft
0c082bcaf8 DELAY() --> delay(). This is not a macro. 1994-03-06 17:18:43 +00:00
mycroft
7408373b25 Speed it up a little... 1994-02-19 03:36:12 +00:00