许多 ioctl(9E) 操作对一类设备驱动程序通用。例如,大多数磁盘驱动程序实现 dkio(7I) 系列的众多 ioctls。这些接口中有许多将数据结构复制到内核中,或从内核中复制出数据结构,在 LP64 数据模型中这些数据结构的一部分已更改了大小。以下部分列出了对于 dkio、fdio(7I)、fbio(7I)、cdio(7I) 和 mtio(7I) 系列的 ioctls,现在需要在 64 位驱动程序 ioctl 例程中显式进行转换的 ioctls。
ioctl 命令 |
受影响的数据结构 |
参考 |
---|---|---|
DKIOCGAPART DKIOCSAPART |
dk_map dk_allmap | |
DKIOGVTOC DKIOSVTOC |
partition vtoc | |
FBIOPUTCMAP FBIOGETCMAP |
fbcmap | |
FBIOPUTCMAPI FBIOGETCMAPI |
fbcmap_i | |
FBIOCCURSOR FBIOSCURSOR |
fbcursor | |
CDROMREADMODE1 CDROMREADMODE2 |
cdrom_read | |
CDROMCDDA |
cdrom_cdda | |
CDROMCDXA |
cdrom_cdxa | |
CDROMSUBCODE |
cdrom_subcode | |
FDIOCMD |
fd_cmd | |
FDRAW |
fd_raw | |
MTIOCTOP |
mtop | |
MTIOCGET |
mtget | |
MTIOCGETDRIVETYPE |
mtdrivetype_request | |
USCSICMD |
uscsi_cmd |
nblocks 属性按块设备驱动程序的每一片导出。此属性包含 512 字节块的数量,设备的每一片都支持这些块。nblocks 属性被定义为带符号的 32 位量,这就将片的最大大小限制为 1 TB。
每个磁盘提供 1 TB 以上存储空间的磁盘设备必须定义 Nblocks 属性,该属性仍应包含设备可支持的 512 字节块的数量。但是,Nblocks 是带符号的 64 位量,它除去了对磁盘空间的任何实际限制。
nblocks 属性现在已过时。所有磁盘设备都应提供 Nblocks 属性。