* Copyright (c) 1982, 1986 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
* @(#)upmaptype.c 7.5 (Berkeley) %G%
* UNIBUS peripheral standalone
* driver: drive type mapping routine.
#include "../vaxuba/upreg.h"
#include "../vaxuba/ubareg.h"
static short up9300_off
[] = { 0, 27, 0, -1, -1, -1, 562, 82 };
static short fj_off
[] = { 0, 50, 0, -1, -1, -1, 155, -1 };
static short upam_off
[] = { 0, 32, 0, 668, 723, 778, 668, 98 };
static short up980_off
[] = { 0, 100, 0, -1, -1, -1, 309, -1 };
static short eagle_off
[] = { 0, 17, 0, 391, 408, 728, 391, 87 };
32, 19, 32*19, 815, up9300_off
, /* 9300 */
32, 19, 32*19, 823, up9300_off
, /* 9766 */
32, 10, 32*10, 823, fj_off
, /* Fuji 160 */
32, 16, 32*16, 1024, upam_off
, /* Capricorn */
32, 5, 32*5, 823, up980_off
, /* DM980 */
48, 20, 48*20, 842, eagle_off
, /* Fuji Eagle */
upmaptype(unit
, upaddr
, lp
)
register struct updevice
*upaddr
;
register struct disklabel
*lp
;
upaddr
->upcs2
= unit
% 8;
upaddr
->uphr
= UPHR_MAXTRAK
;
if (upaddr
->uphr
== st
->ntrak
- 1) {
upaddr
->uphr
= UPHR_MAXCYL
;
if (upaddr
->uphr
== 822) /* CDC 9766 */
upaddr
->upcs2
= UPCS2_CLR
;
/* set up a minimal disk label */
lp
->d_nsectors
= st
->nsect
;
lp
->d_ntracks
= st
->ntrak
;
lp
->d_secpercyl
= st
->nspc
;
lp
->d_ncylinders
= st
->ncyl
;
lp
->d_secperunit
= st
->nspc
* st
->ncyl
;
lp
->d_partitions
[i
].p_size
= 0;
lp
->d_partitions
[i
].p_offset
= st
->off
[i
] *
lp
->d_partitions
[i
].p_size
= lp
->d_secperunit
;