Files
Arquivotheca.SunOS-4.1.4/sys/sbusdev/bpp_var.h
seta75D ff309bfe1c Init
2021-10-11 18:37:13 -03:00

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