Sun Java Solaris Communities My SDN Account Join SDN
 
White Paper

Notes on 64-bit Drivers and STREAMS


CHAPTER 2

Device Drivers


 
Well-known ioctl Interfaces
Many ioctl operations are common to a class of device drivers. For example, most disk drivers implement many of the dkio(7I) family of ioctls. Many of these interfaces copy in or copy out data structures from the kernel, and some of these data structures have changed size in the LP64 data model. The following section lists the ioctls that now require explicit conversion in 64-bit driver ioctl routines for the dkio(7I), fdio(7I), fbio(7I), cdio(7I), and mtio(7I) families of ioctls.
 

ioctl command Affected data structure Reference

DKIOCGAPART
DKIOCSAPART
struct dk_map
struct dk_allmap
dkio(4)
DKIOGVTOC
DKIOSVTOC
struct partition
struct vtoc
dkio(4)
FBIOPUTCMAP
FBIOGETCMAP
struct fbcmap fbio(4)
FBIOPUTCMAPI
FBIOGETCMAPI
struct fbcmap_i fbio(4)
FBIOSCURSOR
FBIOSCURSOR
struct fbcursor fbio(4)
CDROMREADMODE1
CDROMREADMODE2
struct cdrom_read cdio(4)
CDROMCDDA struct cdrom_cdda cdio(4)
CDROMCDXA struct cdrom_cdxa cdio(4)
CDROMSUBCODE struct cdrom_subcode cdio(4)
FDIOCMD struct fd_cmd fdio(4)
FDRAW struct fd_raw fdio(4)
MTIOCTOP struct mtop mtio(4)
MTIOCGET struct mtget mtio(4)
MTIOCGETDRIVETYPE struct mtdrivetype_request mtio(4)
USCSICMD struct uscsi_cmd undocumented

 
Device Sizes
The nblocks property is exported by each slice of a block device driver. It contains the number of 512 byte blocks that each slice of the device can support. The nblocks property is defined as a signed 32-bit quantity, which limits the maximum size of a slice to 1Tbyte.

Disk devices that provide more than 1Tbyte of storage per disk, must define the Nblocks property, which should still contain the number of 512 byte blocks that the device can support. However, Nblocks is a signed 64-bit quantity, which removes any practical limit on disk space.

The nblocks property is now deprecated; all disk devices should provide the Nblocks property.

 
<< Previous | Contents | Next>>[TOP]