scsi_disk.7 (2010 09)

s
scsi_disk(7) scsi_disk(7)
EXAMPLES
The following sample code shows how to use ioctls that affect
scsi_disk.
#include <stdio.h>
#include <fcntl.h>
#include <sys/errno.h>
#include <sys/diskio.h>
#include <sys/scsi.h>
Describe_ext(dfd)
int dfd;
{
int ret;
disk_describe_type_ext_t disk_descr;
uint64_t capacity;
if ((ret = ioctl (dfd, DIOC_DESCRIBE_EXT, &descr_type)) != 0) {
exit(1);
}
printf("\nSuccessful ioctl DIOC_DESCRIBE_EXT \n");
printf(" model number: %s\n", disk_descr.model_num);
printf(" interface: %d <20=scsi>\n", disk_descr.intf_type);
capacity = (disk_descr.maxsva_high << 32) + disk_descr.low_lba;
printf(" Capacity: %llu (blocks)\n", capacity);
printf(" block size: %u (bytes)\n", disk_descr.lgblksz);
printf(" Device type: %u (0=disk, 5=CD, 7=OM)\n",
disk_descr.dev_type);
printf(" Write Protected: %s \n",
disk_descr.flags & WRITE_PROTECT_FLAG ? "yes" : "No");
}
Describe (dfd)
int dfd;
{
int ret;
disk_describe_type descr_type;
if ((ret = ioctl (dfd, DIOC_DESCRIBE, &descr_type)) != 0) {
exit(1);
}
printf ("\nSuccessful ioctl DIOC_DESCRIBE \n");
printf (" model number: %s\n", descr_type.model_num);
printf (" interface: %d <20=scsi>\n", descr_type.intf_type);
}
Exclusive (dfd)
int dfd;
{
int ret, flag=1;
if ((ret = ioctl (dfd, DIOC_EXCLUSIVE, &flag)) != 0) {
exit(1);
}
}
Enable_WOE (dfd)
int dfd;
{
int ret, flag=1;
if ((ret = ioctl (dfd, SIOC_WRITE_WOE, &flag)) != 0) {
exit(1);
}
printf ("\nSuccessful ioctl SIOC_WRITE_WOE \n");
}
main (argc, argv)
int argc;
char ** argv;
2 Hewlett-Packard Company 2 HP-UX 11i Version 3: September 2010