Remove opms(4) for bebox (superseded by pms(4)).

Approved by christos.
This commit is contained in:
wiz 2002-04-18 15:44:20 +00:00
parent ca16b3dee1
commit 95bc0b09e2
9 changed files with 13 additions and 502 deletions

View File

@ -0,0 +1,2 @@
# $NetBSD: obsolete.bebox,v 1.1 2002/04/18 15:44:23 wiz Exp $
/dev/pms0

View File

@ -1,6 +1,6 @@
#!/bin/sh -
#
# $NetBSD: MAKEDEV,v 1.30 2002/03/16 17:03:31 martin Exp $
# $NetBSD: MAKEDEV,v 1.31 2002/04/18 15:44:21 wiz Exp $
#
# Copyright (c) 1990 The Regents of the University of California.
# All rights reserved.
@ -59,7 +59,6 @@
# Pointing devices:
# mms* Microsoft bus mouse
# lms* Logitech bus mouse
# pms* PS/2 mouse
# wsmouse* wscons mouse events
#
# Keyboard devices:
@ -136,7 +135,7 @@ all)
makedev lpt0 lpt1 lpt2 ttyv0 tun0 tun1 ipl
makedev bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7
makedev ccd0 ccd1 ccd2 ccd3 md0 ss0 ch0 uk0 uk1 random ttyCY0
makedev speaker lkm mms0 lms0 pms0 audio joy0 joy1 apm local satlink0
makedev speaker lkm mms0 lms0 audio joy0 joy1 apm local satlink0
makedev audio0 audio1 audio2 audio3
makedev ttyv0 ttyE0 ttyE1 ttyE2 ttyE3 ttyE4 ttyE5 ttyE6 ttyE7 ttyE8
makedev music rmidi0 rmidi1 rmidi2 rmidi3 rmidi4 rmidi5 rmidi6 rmidi7
@ -461,13 +460,12 @@ lpt*|lpa*)
mknod $name$unit c $chr $(($unit + $flags))
;;
bpf*|tun*|mms*|lms*|pms*|joy*)
bpf*|tun*|mms*|lms*|joy*)
case $i in
bpf*) name=bpf; unit=${i#bpf}; chr=23;;
tun*) name=tun; unit=${i#tun}; chr=40;;
mms*) name=mms; unit=${i#mms}; chr=35;;
lms*) name=lms; unit=${i#lms}; chr=36;;
pms*) name=pms; unit=${i#pms}; chr=37;;
joy*) name=joy; unit=${i#joy}; chr=26;;
esac
rm -f $name$unit

View File

@ -1,4 +1,4 @@
/* $NetBSD: conf.c,v 1.17 2002/03/16 16:55:54 martin Exp $ */
/* $NetBSD: conf.c,v 1.18 2002/04/18 15:44:21 wiz Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -150,8 +150,6 @@ cdev_decl(spkr);
cdev_decl(mms);
#include "lms.h"
cdev_decl(lms);
#include "pms.h"
cdev_decl(pms);
#include "cy.h"
cdev_decl(cy);
cdev_decl(mcd);
@ -226,7 +224,7 @@ struct cdevsw cdevsw[] =
cdev_lkm_dummy(), /* 34 */
cdev_mouse_init(NMMS,mms), /* 35: Microsoft mouse */
cdev_mouse_init(NLMS,lms), /* 36: Logitech mouse */
cdev_mouse_init(NPMS,pms), /* 37: PS/2 mouse */
cdev_notdef(), /* 37: was: opms (PS/2 mouse) */
cdev_tty_init(NCY,cy), /* 38: Cyclom serial port */
cdev_disk_init(NMCD,mcd), /* 39: Mitsumi CD-ROM */
cdev_bpftun_init(NTUN,tun), /* 40: network tunnel */

View File

@ -1,4 +1,4 @@
# $NetBSD: GENERIC,v 1.53 2002/04/12 08:10:53 gmcgarry Exp $
# $NetBSD: GENERIC,v 1.54 2002/04/18 15:44:22 wiz Exp $
#
# GENERIC machine description file
#
@ -20,7 +20,7 @@
include "arch/bebox/conf/std.bebox"
#ident "GENERIC-$Revision: 1.53 $"
#ident "GENERIC-$Revision: 1.54 $"
maxusers 32
@ -143,7 +143,6 @@ lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports
#lms1 at isa? port 0x238 irq 5
#mms0 at isa? port 0x23c irq 5 # Microsoft InPort mouse
#mms1 at isa? port 0x238 irq 5
#pms0 at pckbd? irq 12 # PS/2 auxiliary port mouse
pckbc0 at isa?
pckbd* at pckbc?

View File

@ -1,4 +1,4 @@
# $NetBSD: INSTALL,v 1.19 2002/04/12 08:10:54 gmcgarry Exp $
# $NetBSD: INSTALL,v 1.20 2002/04/18 15:44:22 wiz Exp $
#
# First try for BEBOX config file
#
@ -110,7 +110,6 @@ lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports
#lms1 at isa? port 0x238 irq 5
#mms0 at isa? port 0x23c irq 5 # Microsoft InPort mouse
#mms1 at isa? port 0x238 irq 5
#pms0 at pckbd? irq 12 # PS/2 auxiliary port mouse
#siop* at pci? dev ? function ? # NCR 538XX SCSI controllers
#scsibus* at siop?

View File

@ -1,4 +1,4 @@
# $NetBSD: files.bebox,v 1.33 2002/04/16 20:50:18 thorpej Exp $
# $NetBSD: files.bebox,v 1.34 2002/04/18 15:44:22 wiz Exp $
#
# First try for bebox specific configuration info
#
@ -123,10 +123,6 @@ file arch/bebox/isa/lms.c lms needs-flag
device mms
attach mms at isa
file arch/bebox/isa/mms.c mms needs-flag
device opms
attach opms at pckbcport with pms_hack
attach opms at pckbc with pms_pckbc
file arch/bebox/isa/pms.c pms | pms_hack | pms_pckbc needs-flag
include "dev/wscons/files.wscons"
include "dev/wsfont/files.wsfont"

View File

@ -1,4 +1,4 @@
/* $NetBSD: conf.h,v 1.5 2002/02/27 01:19:04 christos Exp $ */
/* $NetBSD: conf.h,v 1.6 2002/04/18 15:44:22 wiz Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -38,8 +38,6 @@
#include <sys/conf.h>
cdev_decl(pms);
bdev_decl(fd);
cdev_decl(fd);
@ -49,6 +47,4 @@ cdev_decl(mms);
cdev_decl(lms);
cdev_decl(pms);
cdev_decl(joy);

View File

@ -1,476 +0,0 @@
/* $NetBSD: pms.c,v 1.7 2001/09/16 16:34:29 wiz Exp $ */
/*-
* Copyright (c) 1994 Charles M. Hannum.
* Copyright (c) 1992, 1993 Erik Forsberg.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL I BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* XXXX
* This is a hack. This driver should really be combined with the
* keyboard driver, since they go through the same buffer and use the
* same I/O ports. Frobbing the mouse and keyboard at the same time
* may result in dropped characters and/or corrupted mouse events.
*/
#include "pms.h"
#if NPMS > 1
#error Only one PS/2 style mouse may be configured into your system.
#endif
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/systm.h>
#include <sys/buf.h>
#include <sys/malloc.h>
#include <sys/ioctl.h>
#include <sys/tty.h>
#include <sys/file.h>
#include <sys/select.h>
#include <sys/proc.h>
#include <sys/vnode.h>
#include <sys/device.h>
#include <sys/poll.h>
#include <machine/cpu.h>
#include <machine/intr.h>
#include <machine/pio.h>
#include <machine/mouse.h>
#include <machine/conf.h>
#include <dev/isa/isavar.h>
#define PMS_DATA 0x60 /* offset for data port, read-write */
#define PMS_CNTRL 0x64 /* offset for control port, write-only */
#define PMS_STATUS 0x64 /* offset for status port, read-only */
#define PMS_NPORTS 8
/* status bits */
#define PMS_OBUF_FULL 0x01
#define PMS_IBUF_FULL 0x02
/* controller commands */
#define PMS_INT_ENABLE 0x47 /* enable controller interrupts */
#define PMS_INT_DISABLE 0x65 /* disable controller interrupts */
#define PMS_AUX_ENABLE 0xa8 /* enable auxiliary port */
#define PMS_AUX_DISABLE 0xa7 /* disable auxiliary port */
#define PMS_AUX_TEST 0xa9 /* test auxiliary port */
#define PMS_8042_CMD 0x65
/* mouse commands */
#define PMS_SET_SCALE11 0xe6 /* set scaling 1:1 */
#define PMS_SET_SCALE21 0xe7 /* set scaling 2:1 */
#define PMS_SET_RES 0xe8 /* set resolution */
#define PMS_GET_SCALE 0xe9 /* get scaling factor */
#define PMS_SET_STREAM 0xea /* set streaming mode */
#define PMS_SET_SAMPLE 0xf3 /* set sampling rate */
#define PMS_DEV_ENABLE 0xf4 /* mouse on */
#define PMS_DEV_DISABLE 0xf5 /* mouse off */
#define PMS_RESET 0xff /* reset */
#define PMS_CHUNK 128 /* chunk size for read */
#define PMS_BSIZE 1020 /* buffer size */
struct pms_softc { /* driver status information */
struct device sc_dev;
void *sc_ih;
struct clist sc_q;
struct selinfo sc_rsel;
u_char sc_state; /* mouse driver state */
#define PMS_OPEN 0x01 /* device is open */
#define PMS_ASLP 0x02 /* waiting for mouse data */
u_char sc_status; /* mouse button status */
int sc_x, sc_y; /* accumulated motion in the X,Y axis */
};
int pmsprobe __P((struct device *, struct cfdata *, void *));
void pmsattach __P((struct device *, struct device *, void *));
int pmsintr __P((void *));
struct cfattach pms_ca = {
sizeof(struct pms_softc), pmsprobe, pmsattach,
};
extern struct cfdriver pms_cd;
#define PMSUNIT(dev) (minor(dev))
static __inline void pms_flush __P((void));
static __inline void pms_dev_cmd __P((u_char));
static __inline void pms_pit_cmd __P((u_char));
static __inline void pms_aux_cmd __P((u_char));
static __inline void
pms_flush()
{
u_char c;
while ((c = isa_inb(PMS_STATUS) & 0x03) != 0)
if ((c & PMS_OBUF_FULL) == PMS_OBUF_FULL) {
/* XXX - delay is needed to prevent some keyboards from
wedging when the system boots */
delay(6);
(void) isa_inb(PMS_DATA);
}
}
static __inline void
pms_dev_cmd(value)
u_char value;
{
pms_flush();
isa_outb(PMS_CNTRL, 0xd4);
pms_flush();
isa_outb(PMS_DATA, value);
}
static __inline void
pms_aux_cmd(value)
u_char value;
{
pms_flush();
isa_outb(PMS_CNTRL, value);
}
static __inline void
pms_pit_cmd(value)
u_char value;
{
pms_flush();
isa_outb(PMS_CNTRL, 0x60);
pms_flush();
isa_outb(PMS_DATA, value);
}
/*
* XXX needs more work yet. We should have a `pckbd_attach_args' that
* provides the parent's io port and our irq.
*/
int
pmsprobe(parent, match, aux)
struct device *parent;
struct cfdata *match;
void *aux;
{
u_char x;
/*
* We only attach to the keyboard controller via
* the console drivers. (We really wish we could be the
* child of a real keyboard controller driver.)
*/
if ((parent == NULL) ||
(strcmp(parent->dv_cfdata->cf_driver->cd_name, "pc") != 0))
return (0);
/* Can't wildcard IRQ. */
if (match->cf_loc[0] == -1)
return (0);
pms_dev_cmd(PMS_RESET);
pms_aux_cmd(PMS_AUX_TEST);
delay(1000);
x = isa_inb(PMS_DATA);
pms_pit_cmd(PMS_INT_DISABLE);
if (x & 0x04)
return 0;
return 1;
}
void
pmsattach(parent, self, aux)
struct device *parent, *self;
void *aux;
{
struct pms_softc *sc = (void *)self;
int irq = self->dv_cfdata->cf_loc[0];
isa_chipset_tag_t ic = aux; /* XXX */
printf(" irq %d\n", irq);
/* Other initialization was done by pmsprobe. */
sc->sc_state = 0;
sc->sc_ih = isa_intr_establish(ic, irq, IST_EDGE, IPL_TTY,
pmsintr, sc);
}
int
pmsopen(dev, flag, mode, p)
dev_t dev;
int flag;
int mode;
struct proc *p;
{
int unit = PMSUNIT(dev);
struct pms_softc *sc;
if (unit >= pms_cd.cd_ndevs)
return ENXIO;
sc = pms_cd.cd_devs[unit];
if (!sc)
return ENXIO;
if (sc->sc_state & PMS_OPEN)
return EBUSY;
if (clalloc(&sc->sc_q, PMS_BSIZE, 0) == -1)
return ENOMEM;
sc->sc_state |= PMS_OPEN;
sc->sc_status = 0;
sc->sc_x = sc->sc_y = 0;
/* Enable interrupts. */
pms_dev_cmd(PMS_DEV_ENABLE);
pms_aux_cmd(PMS_AUX_ENABLE);
#if 0
pms_dev_cmd(PMS_SET_RES);
pms_dev_cmd(3); /* 8 counts/mm */
pms_dev_cmd(PMS_SET_SCALE21);
pms_dev_cmd(PMS_SET_SAMPLE);
pms_dev_cmd(100); /* 100 samples/sec */
pms_dev_cmd(PMS_SET_STREAM);
#endif
pms_pit_cmd(PMS_INT_ENABLE);
return 0;
}
int
pmsclose(dev, flag, mode, p)
dev_t dev;
int flag;
int mode;
struct proc *p;
{
struct pms_softc *sc = pms_cd.cd_devs[PMSUNIT(dev)];
/* Disable interrupts. */
pms_dev_cmd(PMS_DEV_DISABLE);
pms_pit_cmd(PMS_INT_DISABLE);
pms_aux_cmd(PMS_AUX_DISABLE);
sc->sc_state &= ~PMS_OPEN;
clfree(&sc->sc_q);
return 0;
}
int
pmsread(dev, uio, flag)
dev_t dev;
struct uio *uio;
int flag;
{
struct pms_softc *sc = pms_cd.cd_devs[PMSUNIT(dev)];
int s;
int error = 0;
size_t length;
u_char buffer[PMS_CHUNK];
/* Block until mouse activity occurred. */
s = spltty();
while (sc->sc_q.c_cc == 0) {
if (flag & IO_NDELAY) {
splx(s);
return EWOULDBLOCK;
}
sc->sc_state |= PMS_ASLP;
error = tsleep((caddr_t)sc, PZERO | PCATCH, "pmsrea", 0);
if (error) {
sc->sc_state &= ~PMS_ASLP;
splx(s);
return error;
}
}
splx(s);
/* Transfer as many chunks as possible. */
while (sc->sc_q.c_cc > 0 && uio->uio_resid > 0) {
length = min(sc->sc_q.c_cc, uio->uio_resid);
if (length > sizeof(buffer))
length = sizeof(buffer);
/* Remove a small chunk from the input queue. */
(void) q_to_b(&sc->sc_q, buffer, length);
/* Copy the data to the user process. */
if ((error = uiomove(buffer, length, uio)) != 0)
break;
}
return error;
}
int
pmsioctl(dev, cmd, addr, flag, p)
dev_t dev;
u_long cmd;
caddr_t addr;
int flag;
struct proc *p;
{
struct pms_softc *sc = pms_cd.cd_devs[PMSUNIT(dev)];
struct mouseinfo info;
int s;
int error;
switch (cmd) {
case MOUSEIOCREAD:
s = spltty();
info.status = sc->sc_status;
if (sc->sc_x || sc->sc_y)
info.status |= MOVEMENT;
if (sc->sc_x > 127)
info.xmotion = 127;
else if (sc->sc_x < -127)
/* Bounding at -127 avoids a bug in XFree86. */
info.xmotion = -127;
else
info.xmotion = sc->sc_x;
if (sc->sc_y > 127)
info.ymotion = 127;
else if (sc->sc_y < -127)
info.ymotion = -127;
else
info.ymotion = sc->sc_y;
/* Reset historical information. */
sc->sc_x = sc->sc_y = 0;
sc->sc_status &= ~BUTCHNGMASK;
ndflush(&sc->sc_q, sc->sc_q.c_cc);
splx(s);
error = copyout(&info, addr, sizeof(struct mouseinfo));
break;
default:
error = EINVAL;
break;
}
return error;
}
/* Masks for the first byte of a packet */
#define PS2LBUTMASK 0x01
#define PS2RBUTMASK 0x02
#define PS2MBUTMASK 0x04
int
pmsintr(arg)
void *arg;
{
struct pms_softc *sc = arg;
static int state = 0;
static u_char buttons;
u_char changed;
static char dx, dy;
u_char buffer[5];
if ((sc->sc_state & PMS_OPEN) == 0) {
/* Interrupts are not expected. Discard the byte. */
pms_flush();
return 0;
}
switch (state) {
case 0:
buttons = isa_inb(PMS_DATA);
if ((buttons & 0xc0) == 0)
++state;
break;
case 1:
dx = isa_inb(PMS_DATA);
/* Bounding at -127 avoids a bug in XFree86. */
dx = (dx == -128) ? -127 : dx;
++state;
break;
case 2:
dy = isa_inb(PMS_DATA);
dy = (dy == -128) ? -127 : dy;
state = 0;
buttons = ((buttons & PS2LBUTMASK) << 2) |
((buttons & (PS2RBUTMASK | PS2MBUTMASK)) >> 1);
changed = ((buttons ^ sc->sc_status) & BUTSTATMASK) << 3;
sc->sc_status = buttons | (sc->sc_status & ~BUTSTATMASK) | changed;
if (dx || dy || changed) {
/* Update accumulated movements. */
sc->sc_x += dx;
sc->sc_y += dy;
/* Add this event to the queue. */
buffer[0] = 0x80 | (buttons ^ BUTSTATMASK);
buffer[1] = dx;
buffer[2] = dy;
buffer[3] = buffer[4] = 0;
(void) b_to_q(buffer, sizeof buffer, &sc->sc_q);
if (sc->sc_state & PMS_ASLP) {
sc->sc_state &= ~PMS_ASLP;
wakeup((caddr_t)sc);
}
selwakeup(&sc->sc_rsel);
}
break;
}
return -1;
}
int
pmspoll(dev, events, p)
dev_t dev;
int events;
struct proc *p;
{
struct pms_softc *sc = pms_cd.cd_devs[PMSUNIT(dev)];
int revents = 0;
int s = spltty();
if (events & (POLLIN | POLLRDNORM))
if (sc->sc_q.c_cc > 0)
revents |= events & (POLLIN | POLLRDNORM);
else
selrecord(p, &sc->sc_rsel);
splx(s);
return (revents);
}

View File

@ -1,4 +1,4 @@
# $NetBSD: DEVNAMES,v 1.107 2002/04/18 13:27:00 wiz Exp $
# $NetBSD: DEVNAMES,v 1.108 2002/04/18 15:44:20 wiz Exp $
#
# This file contains all used device names and defined attributes in
# alphabetical order. New devices added to the system somewhere should first
@ -783,7 +783,6 @@ opl MI
opm x68k
opms acorn32
opms arc
opms bebox
opms shark
oscsi hp300
osiop MI