89 lines
2.9 KiB
C
89 lines
2.9 KiB
C
/* @(#)bpp_var.h 1.1 94/10/31 SMI */
|
|
/*
|
|
* Copyright (c) 1990 by Sun Microsystems, Inc.
|
|
*
|
|
* Local variables header file for the bidirectional parallel port
|
|
* driver (bpp) for the Zebra SBus card.
|
|
*
|
|
*/
|
|
#ifndef _sbusdev_bpp_var_h
|
|
#define _sbusdev_bpp_var_h
|
|
|
|
|
|
/* #defines (not struct elements) below */
|
|
|
|
/* Other external ioctls are defined in bpp_io.h */
|
|
/* FOR TEST - request fakeout simulate partial data transfer */
|
|
#define BPPIOC_SETBC _IOW(b, 7, u_int)
|
|
/* FOR TEST - request value of DMA_BCNT at end of last data transfer */
|
|
#define BPPIOC_GETBC _IOR(b, 8, u_int)
|
|
/* FOR TEST - get contents of device registers */
|
|
#define BPPIOC_GETREGS _IOR(b, 9, struct bpp_regs)
|
|
/* FOR TEST - set special error code to simulate errors */
|
|
#define BPPIOC_SETERRCODE _IOW(b, 10, int)
|
|
/* FOR TEST - get pointer to (fakely) "transferred" data */
|
|
#define BPPIOC_GETFAKEBUF _IOW(b, 11, u_char *)
|
|
/* FOR TEST - test nested timeout calls */
|
|
#define BPPIOC_TESTTIMEOUT _IO(b, 12)
|
|
|
|
#ifdef notdef
|
|
/* This define will use the hardware simulations in software */
|
|
#define NO_BPP_HW
|
|
#endif notdef
|
|
|
|
|
|
#define MAX_NBPP 10 /* Maximum units allowed to identify */
|
|
#define BPP_PROM_NAME "SUNW,bpp" /* name string in FCode prom */
|
|
|
|
|
|
/* Structure definitions and locals #defines below */
|
|
|
|
#define FAKE_BUF_SIZE (1024 * 128) /* size of each DVMA transfer */
|
|
|
|
struct bpp_unit /* Unit structure - one per unit */
|
|
{
|
|
u_char unit_open; /* 1 means open. */
|
|
u_char open_inhibit; /* 1 means inhibit. */
|
|
u_char versatec_allowed; /* 1 means allow */
|
|
/* versatec handshakes */
|
|
int openflags; /* read-write flags */
|
|
/* this unit opened with*/
|
|
u_char timeouts; /* encoded pending timeouts */
|
|
|
|
u_int interrupt_pri; /* Highest int pri (spl)*/
|
|
/* for this unit only. */
|
|
int saved_spl; /* Saved spl while in */
|
|
/* critical sections */
|
|
/* for this unit only. */
|
|
/* At all other times */
|
|
/* the value is (-1). */
|
|
long transfer_remainder; /* number of bytes which */
|
|
/* were not transferred */
|
|
/* since they were across */
|
|
/* the max DVMA boundary. */
|
|
/* value is (0) when transfer */
|
|
/* is within the boundary */
|
|
struct dev_info *devinfo_p; /* Node for this unit. */
|
|
struct bpp_regs *bpp_regs_p; /* Device control regs. */
|
|
struct bpp_transfer_parms transfer_parms;
|
|
/* handshake and timing */
|
|
struct bpp_pins pins; /* control pins */
|
|
struct bpp_error_status error_stat; /* snapshotted error cond */
|
|
struct buf buf; /* For physio() calls. */
|
|
};
|
|
|
|
/* defines for the timeouts field */
|
|
#define NO_TIMEOUTS 0x00 /* No timeouts pending */
|
|
#define TRANSFER_TIMEOUT 0x01 /* DVMA transfer */
|
|
#define FAKEOUT_TIMEOUT 0x10 /* Hardware simulation */
|
|
#define TEST1_TIMEOUT 0x20 /* Test timeout #1 */
|
|
#define TEST2_TIMEOUT 0x40 /* Test timeout #2 */
|
|
|
|
|
|
|
|
/* Function declarations below */
|
|
extern int nulldev();
|
|
extern int seltrue();
|
|
|
|
#endif _sbusdev_bpp_var_h
|