-#define ushort unsigned short
-
-struct device
-{
- ushort upcs1; /* control and status register 1 */
- short upwc; /* word count register */
- ushort upba; /* UNIBUS address register */
- ushort upda; /* desired address register */
- ushort upcs2; /* control and status register 2 */
- ushort upds; /* drive Status */
- ushort uper1; /* error register 1 */
- ushort upas; /* attention summary */
- ushort upla; /* look ahead */
- ushort updb; /* data buffer */
- ushort upmr; /* maintenance */
- ushort updt; /* drive type */
- ushort upsn; /* serial number */
- ushort upof; /* offset register */
- ushort updc; /* desired cylinder address register */
- ushort upcc; /* current cylinder */
- ushort uper2; /* error register 2 */
- ushort uper3; /* error register 3 */
- ushort upec1; /* burst error bit position */
- ushort upec2; /* burst error bit pattern */
-};
-
-/*
- * Software extension to the upas register, so we can
- * postpone starting SEARCH commands until the controller
- * is not transferring.
- */
-int upsoftas;
-
-/*
- * If upseek then we don't issue SEARCH commands but rather just
- * settle for a SEEK to the correct cylinder.
- */
-int upseek;
-
-#define NSECT 32
-#define NTRAC 19
-
-/*
- * Constants controlling on-cylinder SEARCH usage.
- *
- * upSDIST/2 msec time needed to start transfer
- * upRDIST/2 msec tolerable rotational latency when on-cylinder
- *
- * If we are no closer than upSDIST sectors and no further than upSDIST+upRDIST
- * and in the driver then we take it as it is. Otherwise we do a SEARCH
- * requesting an interrupt upSDIST sectors in advance.
- */
-#define _upSDIST 2 /* 1.0 msec */
-#define _upRDIST 4 /* 2.0 msec */