dsk
gptread_hdr(const char *which, struct dsk *dskp, struct gpt_hdr *hdr,
gptbootfailed(struct dsk *dskp)
gptbootconv(const char *which, struct dsk *dskp, struct gpt_hdr *hdr,
gptread_table(const char *which, const uuid_t *uuid, struct dsk *dskp,
gptread(const uuid_t *uuid, struct dsk *dskp, char *buf)
gptupdate(const char *which, struct dsk *dskp, struct gpt_hdr *hdr,
gptfind(const uuid_t *uuid, struct dsk *dskp, int part)
int gptread(const uuid_t *uuid, struct dsk *dskp, char *buf);
int gptfind(const uuid_t *uuid, struct dsk *dskp, int part);
void gptbootfailed(struct dsk *dskp);
drvsize(struct dsk *dskp)
drvread(struct dsk *dskp, void *buf, daddr_t lba, unsigned nblk)
drvwrite(struct dsk *dskp, void *buf, daddr_t lba, unsigned nblk)
int drvread(struct dsk *dskp, void *buf, daddr_t lba, unsigned nblk);
int drvwrite(struct dsk *dskp, void *buf, daddr_t lba, unsigned nblk);
uint64_t drvsize(struct dsk *dskp);
return (drvread(&dsk, buffer, cdb2devb(blkno),
dsk.drive = *(uint8_t *)PTOV(ARGS);
dsk.type = dsk.drive & DRV_HARD ? TYPE_AD : TYPE_FD;
dsk.unit = dsk.drive & DRV_MASK;
dsk.part = -1;
dsk.start = 0;
bootinfo.bi_bios_dev = dsk.drive;
if (dsk.part == -1) {
dsk.drive & DRV_MASK, dev_nm[dsk.type],
dsk.unit, kname);
dsk.drive & DRV_MASK, dev_nm[dsk.type],
dsk.unit, dsk.part, kname);
kname, dsk.drive & DRV_MASK, dev_nm[dsk.type],
dsk.unit);
if (dsk.part != -1)
printf("p%u", dsk.part);
bootinfo.bi_bios_dev = dsk.drive;
MAKEBOOTDEV(dev_maj[dsk.type], 0, dsk.unit, 0),
dsk.type = i;
dsk.unit = *arg - '0';
if (arg[1] != 'p' || dsk.unit > 9)
dsk.part = *arg - '0';
if (dsk.part < 1 || dsk.part > 9)
drv = dsk.unit;
dsk.drive = (dsk.type <= TYPE_MAXHARD
static struct dsk dsk;
char dsk[PATH_MAX];
(void) snprintf(dsk, sizeof (dsk), "/dev/rdsk/%s",
(void) strlcpy(dsk, lp->line, sizeof (dsk));
fcn, dsk, pool));
(*physarray)[i++] = s_strdup(dsk);
uint_t dsk, lun = 0;
dsk = device;
dsk = device & (~0xff);
dsk = (device >> 4) & 0xf;
dsk = device & (~0xf);
dsk = (device >> 6) & 0x1;
dsk = ((device >> 6) & 0x1) + 2;
*disk = dsk;
uint_t dsk, lun;
res = decode_xen_device(targ, &dsk, &lun);
(void) snprintf(disk, sizeof (disk), "d%d", dsk);
(void) snprintf(disk, sizeof (disk), "t%dd%d", dsk, lun);
dsk_to_rdsk(char *dsk)
if ((len = strlen (dsk)) < sizeof ("/dev/dsk/cN") - 1) {
if ((p = strstr (dsk, "/dsk/")) == NULL) {
if ((p = strstr (dsk, "/lofi/")) == NULL) {
p = strstr (dsk, "/diskette");
pos = (uintptr_t)p - (uintptr_t)dsk;
strncpy (rdsk, dsk, pos + 1);
strcpy (rdsk + pos + 2, dsk + pos + 1);
if (dl->dsk)
pretty = safe_strdup(dl->dsk);
entry->dsk = adevpath;
ks_name, entry->dsk ? entry->dsk : "NULL");
char *dsk; /* in form of cNtNdN */
if (bd->dsk.disk_pres[i])
bd->dsk.disk_id[i]);
void slice_rdsk2dsk(char *rdsk, char *dsk, int size);
slice_rdsk2dsk(char *rdsk, char *dsk, int size)
(void) strlcpy(dsk, rdsk, size);
if ((strp = strstr(dsk, "/rdsk/")) == NULL) {
strp = strstr(dsk, "/rdiskette");
dsk2rdsk(char *dsk, char *rdsk, int size)
(void) strlcpy(rdsk, dsk, size);
len = strlen(dsk);
static void dsk2rdsk(char *dsk, char *rdsk, int size);
char *dsk;
dsk = strstr(path, "/dsk/");
if (dsk != NULL)
(void) sprintf(realpath + (dsk - path) + 1, "r%s",
dsk + 1);
sc->bd.dsk.disk_pres[0] = 1;
sc->bd.dsk.disk_id[0] = id;
sc->bd.dsk.disk_pres[0] = 0;
sc->bd.dsk.disk_pres[1] = 1;
sc->bd.dsk.disk_id[1] = id;
sc->bd.dsk.disk_pres[1] = 0;
sc->bd.dsk.disk_pres[0] = 1;
sc->bd.dsk.disk_id[0] = 0xf & ~bct_data.disk0_id;
sc->bd.dsk.disk_pres[0] = 0;
sc->bd.dsk.disk_pres[1] = 1;
sc->bd.dsk.disk_id[1] = 0xf & ~bct_data.disk1_id;
sc->bd.dsk.disk_pres[1] = 0;
struct dsk_info dsk;