disk_info
struct dk_minfo disk_info;
if ((ioctl(fd, DKIOCGMEDIAINFO, (caddr_t)&disk_info)) == -1)
return (disk_info.dki_lbsize);
add_disktype(FILE *fd, struct disk_info *disk_info)
disk_type = disk_info->disk_type;
((disk_info->disk_ctlr)->ctlr_ctype)->ctype_name);
add_partition(FILE *fd, struct disk_info *disk_info,
disk_type = disk_info->disk_type;
((disk_info->disk_ctlr)->ctlr_ctype)->ctype_name);
static void add_disktype(FILE *fd, struct disk_info *disk_info);
static void add_partition(FILE *fd, struct disk_info *,
struct disk_info *disk_info;
disk_info = find_scsi_disk_info(&dkinfo);
assert(disk_info->disk_ctlr == ctlr);
(void) memcpy(disk_info->v_volume, label->dkl_vtoc.v_volume,
(void) memset(disk_info->v_volume, 0, LEN_DKL_VVOL);
disk_info->disk_parts = part;
static struct disk_info *
struct disk_info *disk;
static struct disk_info *find_scsi_disk_info(
static struct disk_info *find_disk_info(struct dk_cinfo *, ushort_t);
struct disk_info *disk_info;
disk_info = find_disk_info(&dkinfo, type);
disk_info = find_scsi_disk_info(&dkinfo);
if (get_disk_info(fd, label, disk_info) == -1) {
assert(disk_info->disk_ctlr == ctlr);
bzero(disk_info->v_volume, LEN_DKL_VVOL);
disk_info->disk_parts = part;
static struct disk_info *
struct disk_info *disk;
struct dk_minfo disk_info;
if (ioctl(fd, DKIOCGMEDIAINFO, (caddr_t)&disk_info) == -1) {
if (disk_info.dki_lbsize == 0) {
disk_info.dki_lbsize = DEV_BSIZE;
dk_ioc_back.dki_lba = disk_info.dki_capacity - 1 - 1;
struct disk_info *disk_info;
disk_info = find_disk_info(&dkinfo, dkinfo.dki_ctype);
assert(disk_info->disk_ctlr == ctlr);
(void) memcpy(disk_info->v_volume, label->dkl_vtoc.v_volume,
(void) memset(disk_info->v_volume, 0, LEN_DKL_VVOL);
disk_info->disk_parts = part;
extern struct disk_info *cur_disk; /* current disk */
extern struct disk_info *disk_list; /* list of found disks */
struct disk_info *disk_next; /* ptr to next disk */
pr_diskline(struct disk_info *disk, int num)
void pr_diskline(struct disk_info *disk, int num);
get_disk_info(int fd, struct efi_info *label, struct disk_info *disk_info)
if (get_disk_inquiry_prop(disk_info->devfs_name,
read_efi_label(int fd, struct efi_info *label, struct disk_info *disk_info)
if (get_disk_info(fd, label, disk_info) != 0) {
int read_efi_label(int, struct efi_info *, struct disk_info *);
int get_disk_info(int, struct efi_info *, struct disk_info *);
struct disk_info *disk = NULL;
init_globals(struct disk_info *disk)
struct disk_info *cur_disk;
void init_globals(struct disk_info *disk);
struct disk_info *disk;
struct disk_info *diskp;
chk_volname(struct disk_info *disk)
print_volname(struct disk_info *disk)
int chk_volname(struct disk_info *);
void print_volname(struct disk_info *);
struct disk_info *disk;
get_disk_name(int fd, char *disk_name, struct disk_info *disk_info)
if (get_disk_inquiry_prop(disk_info->devfs_name, &vid, &pid, &rid)
struct disk_info *search_disk;
struct disk_info *dptr;
static void get_disk_name(int fd, char *disk_name, struct disk_info *disk_info);
search_disk = (struct disk_info *)zalloc(sizeof (struct disk_info));
struct disk_info *dp;
diskname_match(char *name, struct disk_info *disk)
struct disk_info **disks;
struct disk_info *d;
struct disk_info **dp;
struct disk_info **dp2;
disks = (struct disk_info **)
zalloc((n+1) * sizeof (struct disk_info *));
qsort((void *) disks, n, sizeof (struct disk_info *),
s1 = (*((struct disk_info **)arg1))->disk_name;
s2 = (*((struct disk_info **)arg2))->disk_name;
struct disk_info *disk_list;
int diskname_match(char *name, struct disk_info *disk);
struct dk_minfo disk_info;
if ((ioctl(fd, DKIOCGMEDIAINFO, (caddr_t)&disk_info)) == -1)
return (disk_info.dki_capacity);
struct dk_minfo disk_info;
if ((ioctl(fd, DKIOCGMEDIAINFO, (caddr_t)&disk_info)) == -1)
return (disk_info.dki_lbsize);
if (topo_mod_register(mod, &disk_info, TOPO_VERSION) != 0) {
static const topo_modinfo_t disk_info =
struct dk_minfo disk_info;
if ((ioctl(fd, DKIOCGMEDIAINFO, (caddr_t)&disk_info)) == -1)
*capacity = disk_info.dki_capacity;
*lbsize = disk_info.dki_lbsize;
struct dk_minfo disk_info;
if (ioctl(fd, DKIOCGMEDIAINFO, (caddr_t)&disk_info) == -1) {
disk_info.dki_lbsize = DEV_BSIZE;
if (disk_info.dki_lbsize == 0) {
disk_info.dki_lbsize = DEV_BSIZE;
if (NBLOCKS(vtoc->efi_nparts, disk_info.dki_lbsize) < 34) {
label_len = EFI_MIN_ARRAY_SIZE + disk_info.dki_lbsize;
disk_info.dki_lbsize;
if (label_len % disk_info.dki_lbsize) {
label_len += disk_info.dki_lbsize;
label_len &= ~(disk_info.dki_lbsize - 1);
dk_ioc.dki_length = disk_info.dki_lbsize;
dk_ioc.dki_lba = disk_info.dki_capacity - 2;
dk_ioc.dki_length = disk_info.dki_lbsize;
dk_ioc.dki_lba = disk_info.dki_capacity - 1;
dk_ioc.dki_length = disk_info.dki_lbsize;
+ disk_info.dki_lbsize);
dk_ioc.dki_length = disk_info.dki_capacity - 1 -
dk_ioc.dki_length = disk_info.dki_capacity - 2 -
dk_ioc.dki_length *= disk_info.dki_lbsize;
+ disk_info.dki_lbsize);
dk_ioc.dki_length = label_len - disk_info.dki_lbsize;
efi_parts = (efi_gpe_t *)(((char *)efi) + disk_info.dki_lbsize);
vtoc->efi_lbasize = disk_info.dki_lbsize;
vtoc->efi_last_lba = disk_info.dki_capacity - 1;
if (ioctl(epp->dev_fd, DKIOCGMEDIAINFO, (caddr_t)&disk_info) < 0) {
epp->disk_geom.sectsize = ((disk_info.dki_lbsize) ?
disk_info.dki_lbsize : 512);
struct dk_minfo disk_info;
} disk_info; /* XEN_FW_DISK_INFO */
&op.u.firmware_info.u.disk_info.edd_params);
&op.u.firmware_info.u.disk_info.edd_params, len,