Commit Graph

42 Commits

Author SHA1 Message Date
jmmv ddaa1b349e wsevent cleanup:
- Add a wsevent_inject function that atomically adds a set of events to an
  event queue and change all code that directly messed with a queue to use it.
- Replace the WSEVENT_WAKEUP macro with a regular function.
- Make WSEVENT_QSIZE, PWSEVENT and splwsevent private definitions to
  wsevent.c, instead of exposing them in the header file.
- Make the wsevent_init function take a process to attach to the queue,
  instead of leaving this task to the caller (which always did it).

Reviewed in tech-kern@.
2006-02-07 09:13:02 +00:00
jmmv 39d0d77704 Let this build when WSMUX_DEBUG is set after the merge of ktrace-lwp. 2005-12-25 17:23:42 +00:00
christos 95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
simonb a21c456e2e Call nanotime() directly, instead of doing the
microtime()/TIMEVAL_TO_TIMESPEC() dance.
2005-11-11 07:07:42 +00:00
ws 9d78e0cf36 PR-30566: Poll must not return <sys/errno.h> values.
Start with those places I can easily test.
2005-06-21 14:01:11 +00:00
augustss 949688eeaf Remember what keyboard layout is set in the mux, that way new keyboards
can be given the same layout.  Fixes kern/19153.
2005-04-30 03:47:12 +00:00
perry f31bd063e9 nuke trailing whitespace 2005-02-27 00:26:58 +00:00
simonb 5a696d0850 Fix uninitialised variable introduced with previous change.
Patch from mlelstv.
2003-09-23 09:16:07 +00:00
jdolecek 7cea8a1389 cleanup & uniform descriptor owner handling:
* introduce fsetown(), fgetown(), fownsignal() - this sets/retrieves/signals
  the owner of descriptor, according to appropriate sematics
  of TIOCSPGRP/FIOSETOWN/SIOCSPGRP/TIOCGPGRP/FIOGETOWN/SIOCGPGRP ioctl; use
  these routines instead of custom code where appropriate
* make every place handling TIOCSPGRP/TIOCGPGRP handle also FIOSETOWN/FIOGETOWN
  properly, and remove the translation of FIO[SG]OWN to TIOC[SG]PGRP
  in sys_ioctl() & sys_fcntl()
* also remove the socket-specific hack in sys_ioctl()/sys_fcntl() and
  pass the ioctls down to soo_ioctl() as any other ioctl

change discussed on tech-kern@
2003-09-21 19:16:48 +00:00
fvdl d5aece61d6 Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
2003-06-29 22:28:00 +00:00
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
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
atatat 31144d9976 Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command".  ERESTART is -1, which can lead to
confusion.  ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4.  No ioctl code should now return -1 anywhere.  The
ioctl() system call is now properly restartable.
2002-03-17 19:40:26 +00:00
takemura 29e873a235 Added wsmux_set_display() to fix the problem that wskbd wan't connected
to any display if keyboard was attached before display and both aren't console.
2002-03-02 08:22:26 +00:00
tsutsui c12b5c180d Call malloc(9) with M_ZERO flag instead of memset() after malloc(). 2002-01-12 16:41:02 +00:00
augustss 37f2beed3e Close multiplxees BEFORE removing the event variable they are
using (an interrupt at the wrong point caused disaster).
2001-11-22 00:54:23 +00:00
augustss dfbba4149c Injecting events into a mux that is not open is not an error. 2001-11-19 00:37:22 +00:00
lukem 139747fb15 add/cleanup RCSIDs 2001-11-13 06:17:46 +00:00
augustss 2158da33e3 Improve diagniostic message. 2001-11-07 03:26:06 +00:00
augustss d1ff85c9aa Improve debug messages a little. 2001-11-02 13:02:20 +00:00
augustss 246b858752 Inject events in the right place in the buffer. 2001-10-29 01:02:11 +00:00
augustss 14fc12f3b4 Cosmetics. 2001-10-27 00:39:29 +00:00
augustss 48673c604a Having a display does not preclude the mux from being open. 2001-10-27 00:34:57 +00:00
augustss eadca0dfa3 Remove TODO list. 2001-10-26 20:45:05 +00:00
augustss 6d55fe438e Change a debug message. 2001-10-26 20:35:55 +00:00
augustss 59121d58f5 Change back to have a wseventvar in the softc for event sources. This
way the effect of FIOASYNC survives close()/open().  Later versions
of XFree86 relies on this bug/feature.
Also add some more debug stuff.
2001-10-25 14:46:41 +00:00
shin a9df6b6421 make this compile without WSDISPLAY_COMPAT_RAWKBD. 2001-10-25 13:19:41 +00:00
augustss 2f1f0a1702 Major rototilling of the wsmux code. No user visible changes (except that
many bugs have been fixed).
Changes:
The wskbd, wsmouse, and wsmux are now "sub-classes" of wsevsrc, which is
a source of ws events.  This make the structure of those drivers a little
more uniform.
Many bug fixes involving adding and removing devices from muxes.
When a kernel is configured without wsmux there will now be none (unlike
before where you got a console mux anyway).
The kernel now compiles with all combinations of ws devices present.
2001-10-24 14:07:31 +00:00
jmc 97deb18c10 Wrap ifdef's cleaner so wsmouse_[add|rem]_mux only get pulled in if NWSMUX > 0. 2001-10-21 23:04:57 +00:00
augustss 5da06efad4 Allow for control devices (minor+128) to make it possible to manipulate
muxes that are in use.
Create muxes on demand.
2001-10-13 20:03:38 +00:00
augustss 82e5e6ab85 ANSIfy. 2001-10-13 15:56:15 +00:00
augustss d701e45c14 Two changes to the wsmux code:
* Allow the wsmux used by wsdisplay for the keyboard(s) to be explicitely
  specified with the kbdmux locator.
* Allow keyboards and mice that have a mux to be opened in the regular way.
These changes should be totally backwards compatible.
2001-10-13 13:35:59 +00:00
takemura 5b3cb6b1a1 Add async I/O support.
FIOASYNC ioctrl command had been forwarded from wsmux to each mouse devices
and the devices had set their own event queue async mode. But no one had took
care of the event queue's mode of wsmux itself. Wsmux should make it's own
event queue async mode when it receive FIOASYNC command.
2000-05-28 10:33:14 +00:00
augustss 9cec807b1c Return -1 from wsmux_displayioctl() if no muxes components like the ioctl(). 1999-11-08 10:10:25 +00:00
augustss 1e460723a5 Don't flag an error when doing ioctl() on a mux without any
multiplexees.  Should fix PR 8723.
1999-11-03 22:48:38 +00:00
nisimura 94073f1fd9 One more ioctl() fix. Most of WSDISPLAYIO_xxx were never been called when
no wsmux device is installed.
1999-08-26 06:37:42 +00:00
augustss 6516d0b239 Fix an ioctl() problem. From nisimura@itc.aist-nara.ac.jp (Toru Nishimura). 1999-08-25 21:05:21 +00:00
simonb 6b7eee9252 Initialise "error" in wsmux_detach_sc() before testing if it set. 1999-08-14 11:40:31 +00:00
augustss cdfc12a291 Make it possible to open wskbd devices for write (i.e. ioctl) even
if it is already open.
1999-08-07 15:04:35 +00:00
augustss b6b44d6809 Eliminate the need for needs-count for wsmux. This should make
wsdisplays work properly again.
1999-07-30 20:52:27 +00:00
augustss 3d3f77c49e Add the wsmux pseudo device. 1999-07-29 18:20:02 +00:00