summaryrefslogtreecommitdiff
path: root/sys/i386/isa/gsc.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386/isa/gsc.c')
-rw-r--r--sys/i386/isa/gsc.c166
1 files changed, 81 insertions, 85 deletions
diff --git a/sys/i386/isa/gsc.c b/sys/i386/isa/gsc.c
index 1fa83761b8535..44a97ea7c72e8 100644
--- a/sys/i386/isa/gsc.c
+++ b/sys/i386/isa/gsc.c
@@ -71,13 +71,9 @@
#define DMA1_READY 0x08
#ifdef GSCDEBUG
-#define lprintf(args) \
- do { \
- if (scu->flags & FLAG_DEBUG) \
- printf args; \
- } while (0)
+#define lprintf if(scu->flags & FLAG_DEBUG) printf
#else
-#define lprintf(args)
+#define lprintf (void)
#endif
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
@@ -230,16 +226,16 @@ lookup_geometry(struct gsc_geom geom, const struct gsc_unit *scu)
( ( geom.g_res != INVALID ) && ( tab.g_res == geom.g_res ) ) ||
( ( geom.s_res != INVALID ) && ( tab.s_res == geom.s_res ) ) )
{
- lprintf(("gsc.lookup_geometry: "
+ lprintf("gsc.lookup_geometry: "
"geometry lookup found: %ddpi, %ddpl\n",
- tab.dpi, tab.dpl));
+ tab.dpi, tab.dpl);
return i;
}
}
- lprintf(("gsc.lookup_geometry: "
+ lprintf("gsc.lookup_geometry: "
"geometry lookup failed on {%d, %d, 0x%02x, 0x%02x}\n",
- geom.dpi, geom.dpl, geom.g_res, geom.s_res));
+ geom.dpi, geom.dpl, geom.g_res, geom.s_res);
return INVALID;
}
@@ -257,7 +253,7 @@ get_geometry(const struct gsc_unit *scu)
{
struct gsc_geom geom = NEW_GEOM;
- lprintf(("gsc.get_geometry: get geometry at 0x%03x\n", scu->stat));
+ lprintf("gsc.get_geometry: get geometry at 0x%03x\n", scu->stat);
if ( ( geom.g_res = inb(scu->stat) ) == FAIL )
return INVALID;
@@ -280,18 +276,18 @@ buffer_allocate(struct gsc_unit *scu)
size = scu->blen * geomtab[scu->geometry].dpl / 8;
- lprintf(("gsc.buffer_allocate: need 0x%x bytes\n", size));
+ lprintf("gsc.buffer_allocate: need 0x%x bytes\n", size);
if ( size > MAX_BUFSIZE )
{
- lprintf(("gsc.buffer_allocate: 0x%x bytes are too much\n", size));
+ lprintf("gsc.buffer_allocate: 0x%x bytes are too much\n", size);
return ENOMEM;
}
scu->sbuf.size = size;
scu->sbuf.poi = size;
- lprintf(("gsc.buffer_allocate: ok\n"));
+ lprintf("gsc.buffer_allocate: ok\n");
return SUCCESS;
}
@@ -311,11 +307,11 @@ buffer_read(struct gsc_unit *scu)
int sps;
int delay;
- lprintf(("gsc.buffer_read: begin\n"));
+ lprintf("gsc.buffer_read: begin\n");
if (scu->ctrl_byte == INVALID)
{
- lprintf(("gsc.buffer_read: invalid ctrl_byte\n"));
+ lprintf("gsc.buffer_read: invalid ctrl_byte\n");
return EIO;
}
@@ -334,7 +330,7 @@ buffer_read(struct gsc_unit *scu)
if(delay >= scu->btime)
{
splx(sps);
- lprintf(("gsc.buffer_read: timeout\n"));
+ lprintf("gsc.buffer_read: timeout\n");
res = EWOULDBLOCK;
break;
}
@@ -350,16 +346,16 @@ buffer_read(struct gsc_unit *scu)
if(res != SUCCESS)
{
- lprintf(("gsc.buffer_read: aborted with %d\n", res));
+ lprintf("gsc.buffer_read: aborted with %d\n", res);
return res;
}
- lprintf(("gsc.buffer_read: invert buffer\n"));
+ lprintf("gsc.buffer_read: invert buffer\n");
for(p = scu->sbuf.base + scu->sbuf.size - 1; p >= scu->sbuf.base; p--)
*p = ~*p;
scu->sbuf.poi = 0;
- lprintf(("gsc.buffer_read: ok\n"));
+ lprintf("gsc.buffer_read: ok\n");
return SUCCESS;
}
@@ -388,25 +384,25 @@ gscprobe (struct isa_device *isdp)
scu->flags = FLAG_DEBUG;
- lprintf(("gsc%d.probe "
- "on iobase 0x%03x, irq %d, drq %d, addr %p, size %d\n",
+ lprintf("gsc%d.probe "
+ "on iobase 0x%03x, irq %d, drq %d, addr %d, size %d\n",
unit,
isdp->id_iobase,
isdp->id_irq,
isdp->id_drq,
isdp->id_maddr,
- isdp->id_msize));
+ isdp->id_msize);
if ( isdp->id_iobase < 0 )
{
- lprintf(("gsc%d.probe: no iobase given\n", unit));
+ lprintf("gsc%d.probe: no iobase given\n", unit);
return PROBE_FAIL;
}
stb = inb( GSC_STAT(isdp->id_iobase) );
if (stb == FAIL)
{
- lprintf(("gsc%d.probe: get status byte failed\n", unit));
+ lprintf("gsc%d.probe: get status byte failed\n", unit);
return PROBE_FAIL;
}
@@ -420,25 +416,25 @@ gscprobe (struct isa_device *isdp)
switch(stb & GSC_CNF_MASK) {
case GSC_CNF_DMA1:
- lprintf(("gsc%d.probe: DMA 1\n", unit));
+ lprintf("gsc%d.probe: DMA 1\n", unit);
scu->channel = 1;
break;
case GSC_CNF_DMA3:
- lprintf(("gsc%d.probe: DMA 3\n", unit));
+ lprintf("gsc%d.probe: DMA 3\n", unit);
scu->channel = 3;
break;
case GSC_CNF_IRQ3:
- lprintf(("gsc%d.probe: IRQ 3\n", unit));
+ lprintf("gsc%d.probe: IRQ 3\n", unit);
goto probe_noirq;
case GSC_CNF_IRQ5:
- lprintf(("gsc%d.probe: IRQ 5\n", unit));
+ lprintf("gsc%d.probe: IRQ 5\n", unit);
probe_noirq:
- lprintf(("gsc%d.probe: sorry, can't use IRQ yet\n", unit));
+ lprintf("gsc%d.probe: sorry, can't use IRQ yet\n", unit);
return PROBE_FAIL;
default:
- lprintf(("gsc%d.probe: invalid status byte 0x%02x\n", unit, (u_char) stb));
+ lprintf("gsc%d.probe: invalid status byte\n", unit, stb);
return PROBE_FAIL;
}
@@ -446,8 +442,8 @@ gscprobe (struct isa_device *isdp)
isdp->id_drq = scu->channel;
if (scu->channel != isdp->id_drq)
{
- lprintf(("gsc%d.probe: drq mismatch: config: %d; hardware: %d\n",
- unit, isdp->id_drq, scu->channel));
+ lprintf("gsc%d.probe: drq mismatch: config: %d; hardware: %d\n",
+ unit, isdp->id_drq, scu->channel);
return PROBE_FAIL;
}
@@ -455,7 +451,7 @@ gscprobe (struct isa_device *isdp)
scu->geometry = lookup_geometry(geom, scu);
if (scu->geometry == INVALID)
{
- lprintf(("gsc%d.probe: geometry lookup failed\n", unit));
+ lprintf("gsc%d.probe: geometry lookup failed\n", unit);
return PROBE_FAIL;
}
else
@@ -463,13 +459,13 @@ gscprobe (struct isa_device *isdp)
scu->ctrl_byte = geomtab[scu->geometry].s_res;
outb(scu->ctrl, scu->ctrl_byte | GSC_POWER_ON);
- lprintf(("gsc%d.probe: status 0x%02x, %ddpi\n",
- unit, stb, geomtab[scu->geometry].dpi));
+ lprintf("gsc%d.probe: status 0x%02x, %ddpi\n",
+ unit, stb, geomtab[scu->geometry].dpi);
outb(scu->ctrl, scu->ctrl_byte & ~GSC_POWER_ON);
}
- lprintf(("gsc%d.probe: ok\n", unit));
+ lprintf("gsc%d.probe: ok\n", unit);
scu->flags &= ~FLAG_DEBUG;
@@ -492,14 +488,14 @@ gscattach(struct isa_device *isdp)
scu->flags |= FLAG_DEBUG;
- lprintf(("gsc%d.attach: "
- "iobase 0x%03x, irq %d, drq %d, addr %p, size %d\n",
+ lprintf("gsc%d.attach: "
+ "iobase 0x%03x, irq %d, drq %d, addr %d, size %d\n",
unit,
isdp->id_iobase,
isdp->id_irq,
isdp->id_drq,
isdp->id_maddr,
- isdp->id_msize));
+ isdp->id_msize);
printf("gsc%d: GeniScan GS-4500 at %ddpi\n",
unit, geomtab[scu->geometry].dpi);
@@ -513,7 +509,7 @@ gscattach(struct isa_device *isdp)
0ul, 0xfffffful, 1ul, 0x10000ul);
if ( scu->sbuf.base == NULL )
{
- lprintf(("gsc%d.attach: buffer allocation failed\n", unit));
+ lprintf("gsc%d.attach: buffer allocation failed\n", unit);
return ATTACH_FAIL; /* XXX attach must not fail */
}
scu->sbuf.size = INVALID;
@@ -523,7 +519,7 @@ gscattach(struct isa_device *isdp)
scu->btime = TIMEOUT;
scu->flags |= ATTACHED;
- lprintf(("gsc%d.attach: ok\n", unit));
+ lprintf("gsc%d.attach: ok\n", unit);
scu->flags &= ~FLAG_DEBUG;
#ifdef DEVFS
#define GSC_UID 0
@@ -573,8 +569,8 @@ gscopen (dev_t dev, int flags, int fmt, struct proc *p)
scu = unittab + unit;
if ( !( scu->flags & ATTACHED ) )
{
- lprintf(("gsc%d.open: unit was not attached successfully 0x%04x\n",
- unit, scu->flags));
+ lprintf("gsc%d.open: unit was not attached successfully 0x04x\n",
+ unit, scu->flags);
return ENXIO;
}
@@ -586,23 +582,23 @@ gscopen (dev_t dev, int flags, int fmt, struct proc *p)
switch(minor(dev) & FRMT_MASK) {
case FRMT_PBM:
scu->flags |= PBM_MODE;
- lprintf(("gsc%d.open: pbm mode\n", unit));
+ lprintf("gsc%d.open: pbm mode\n", unit);
break;
case FRMT_RAW:
- lprintf(("gsc%d.open: raw mode\n", unit));
+ lprintf("gsc%d.open: raw mode\n", unit);
scu->flags &= ~PBM_MODE;
break;
default:
- lprintf(("gsc%d.open: gray maps are not yet supported", unit));
+ lprintf("gsc%d.open: gray maps are not yet supported", unit);
return ENXIO;
}
- lprintf(("gsc%d.open: minor %d\n",
- unit, minor(dev)));
+ lprintf("gsc%d.open: minor %d\n",
+ unit, minor(dev));
if ( scu->flags & OPEN )
{
- lprintf(("gsc%d.open: already open", unit));
+ lprintf("gsc%d.open: already open", unit);
return EBUSY;
}
@@ -628,13 +624,13 @@ gscclose (dev_t dev, int flags, int fmt, struct proc *p)
int unit = UNIT(minor(dev));
struct gsc_unit *scu = unittab + unit;
- lprintf(("gsc%d.close: minor %d\n",
- unit, minor(dev)));
+ lprintf("gsc%d.close: minor %d\n",
+ unit, minor(dev));
if ( unit >= NGSC || !( scu->flags & ATTACHED ) )
{
- lprintf(("gsc%d.read: unit was not attached successfully 0x%04x\n",
- unit, scu->flags));
+ lprintf("gsc%d.read: unit was not attached successfully 0x04x\n",
+ unit, scu->flags);
return ENXIO;
}
@@ -663,12 +659,12 @@ gscread (dev_t dev, struct uio *uio, int ioflag)
size_t nbytes;
int res;
- lprintf(("gsc%d.read: minor %d\n", unit, minor(dev)));
+ lprintf("gsc%d.read: minor %d\n", unit, minor(dev));
if ( unit >= NGSC || !( scu->flags & ATTACHED ) )
{
- lprintf(("gsc%d.read: unit was not attached successfully 0x%04x\n",
- unit, scu->flags));
+ lprintf("gsc%d.read: unit was not attached successfully 0x04x\n",
+ unit, scu->flags);
return ENXIO;
}
@@ -691,8 +687,8 @@ gscread (dev_t dev, struct uio *uio, int ioflag)
sprintf(scu->sbuf.base,"P4 %d %d\n", width, scu->height);
scu->bcount = scu->height * width / 8;
- lprintf(("gsc%d.read: initializing pbm mode: `%s', bcount: 0x%x\n",
- unit, scu->sbuf.base, scu->bcount));
+ lprintf("gsc%d.read: initializing pbm mode: `%s', bcount: 0x%x\n",
+ unit, scu->sbuf.base, scu->bcount);
/* move header to end of sbuf */
for(p=scu->sbuf.base; *p; p++);
@@ -704,37 +700,37 @@ gscread (dev_t dev, struct uio *uio, int ioflag)
}
}
- lprintf(("gsc%d.read(before buffer_read): "
+ lprintf("gsc%d.read(before buffer_read): "
"size 0x%x, pointer 0x%x, bcount 0x%x, ok\n",
- unit, scu->sbuf.size, scu->sbuf.poi, scu->bcount));
+ unit, scu->sbuf.size, scu->sbuf.poi, scu->bcount);
if ( scu->sbuf.poi == scu->sbuf.size )
if ( (res = buffer_read(scu)) != SUCCESS )
return res;
- lprintf(("gsc%d.read(after buffer_read): "
+ lprintf("gsc%d.read(after buffer_read): "
"size 0x%x, pointer 0x%x, bcount 0x%x, ok\n",
- unit, scu->sbuf.size, scu->sbuf.poi, scu->bcount));
+ unit, scu->sbuf.size, scu->sbuf.poi, scu->bcount);
nbytes = MIN( uio->uio_resid, scu->sbuf.size - scu->sbuf.poi );
if ( (scu->flags & PBM_MODE) )
nbytes = MIN( nbytes, scu->bcount );
- lprintf(("gsc%d.read: transferring 0x%x bytes", unit, nbytes));
+ lprintf("gsc%d.read: transferring 0x%x bytes", nbytes);
res = uiomove(scu->sbuf.base + scu->sbuf.poi, nbytes, uio);
if ( res != SUCCESS )
{
- lprintf(("gsc%d.read: uiomove failed %d", unit, res));
+ lprintf("gsc%d.read: uiomove failed %d", unit, res);
return res;
}
scu->sbuf.poi += nbytes;
if ( scu->flags & PBM_MODE ) scu->bcount -= nbytes;
- lprintf(("gsc%d.read: size 0x%x, pointer 0x%x, bcount 0x%x, ok\n",
- unit, scu->sbuf.size, scu->sbuf.poi, scu->bcount));
+ lprintf("gsc%d.read: size 0x%x, pointer 0x%x, bcount 0x%x, ok\n",
+ unit, scu->sbuf.size, scu->sbuf.poi, scu->bcount);
return SUCCESS;
}
@@ -751,38 +747,38 @@ gscioctl (dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
int unit = UNIT(minor(dev));
struct gsc_unit *scu = unittab + unit;
- lprintf(("gsc%d.ioctl: minor %d\n",
- unit, minor(dev)));
+ lprintf("gsc%d.ioctl: minor %d\n",
+ unit, minor(dev));
if ( unit >= NGSC || !( scu->flags & ATTACHED ) )
{
- lprintf(("gsc%d.ioctl: unit was not attached successfully 0x%04x\n",
- unit, scu->flags));
+ lprintf("gsc%d.ioctl: unit was not attached successfully 0x04x\n",
+ unit, scu->flags);
return ENXIO;
}
switch(cmd) {
case GSC_SRESSW:
- lprintf(("gsc%d.ioctl:GSC_SRESSW\n", unit));
+ lprintf("gsc%d.ioctl:GSC_SRESSW\n", unit);
if ( scu->flags & READING )
{
- lprintf(("gsc%d:ioctl on already reading unit\n", unit));
+ lprintf("gsc%d:ioctl on already reading unit\n", unit);
return EBUSY;
}
scu->geometry = get_geometry(scu);
return SUCCESS;
case GSC_GRES:
*(int *)data=geomtab[scu->geometry].dpi;
- lprintf(("gsc%d.ioctl:GSC_GRES %ddpi\n", unit, *(int *)data));
+ lprintf("gsc%d.ioctl:GSC_GRES %ddpi\n", unit, *(int *)data);
return SUCCESS;
case GSC_GWIDTH:
*(int *)data=geomtab[scu->geometry].dpl;
- lprintf(("gsc%d.ioctl:GSC_GWIDTH %d\n", unit, *(int *)data));
+ lprintf("gsc%d.ioctl:GSC_GWIDTH %d\n", unit, *(int *)data);
return SUCCESS;
case GSC_SRES:
case GSC_SWIDTH:
- lprintf(("gsc%d.ioctl:GSC_SRES or GSC_SWIDTH %d\n",
- unit, *(int *)data));
+ lprintf("gsc%d.ioctl:GSC_SRES or GSC_SWIDTH %d\n",
+ unit, *(int *)data);
{ int g;
struct gsc_geom geom = NEW_GEOM;
if ( cmd == GSC_SRES )
@@ -796,37 +792,37 @@ gscioctl (dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
}
case GSC_GHEIGHT:
*(int *)data=scu->height;
- lprintf(("gsc%d.ioctl:GSC_GHEIGHT %d\n", unit, *(int *)data));
+ lprintf("gsc%d.ioctl:GSC_GHEIGHT %d\n", unit, *(int *)data);
return SUCCESS;
case GSC_SHEIGHT:
- lprintf(("gsc%d.ioctl:GSC_SHEIGHT %d\n", unit, *(int *)data));
+ lprintf("gsc%d.ioctl:GSC_SHEIGHT %d\n", unit, *(int *)data);
if ( scu->flags & READING )
{
- lprintf(("gsc%d:ioctl on already reading unit\n", unit));
+ lprintf("gsc%d:ioctl on already reading unit\n", unit);
return EBUSY;
}
scu->height=*(int *)data;
return SUCCESS;
case GSC_GBLEN:
*(int *)data=scu->blen;
- lprintf(("gsc%d.ioctl:GSC_GBLEN %d\n", unit, *(int *)data));
+ lprintf("gsc%d.ioctl:GSC_GBLEN %d\n", unit, *(int *)data);
return SUCCESS;
case GSC_SBLEN:
- lprintf(("gsc%d.ioctl:GSC_SBLEN %d\n", unit, *(int *)data));
+ lprintf("gsc%d.ioctl:GSC_SBLEN %d\n", unit, *(int *)data);
if (*(int *)data * geomtab[scu->geometry].dpl / 8 > MAX_BUFSIZE)
{
- lprintf(("gsc%d:ioctl buffer size too high\n", unit));
+ lprintf("gsc%d:ioctl buffer size too high\n", unit);
return ENOMEM;
}
scu->blen=*(int *)data;
return SUCCESS;
case GSC_GBTIME:
*(int *)data = scu->btime / hz;
- lprintf(("gsc%d.ioctl:GSC_GBTIME %d\n", unit, *(int *)data));
+ lprintf("gsc%d.ioctl:GSC_GBTIME %d\n", unit, *(int *)data);
return SUCCESS;
case GSC_SBTIME:
scu->btime = *(int *)data * hz;
- lprintf(("gsc%d.ioctl:GSC_SBTIME %d\n", unit, *(int *)data));
+ lprintf("gsc%d.ioctl:GSC_SBTIME %d\n", unit, *(int *)data);
return SUCCESS;
default: return ENOTTY;
}