我似乎找不到netbsd可用的ioctls的完整列表。
我希望在硬盘上做一些操作(获取大小,物理扇区大小,型号)。我有在linux上工作的代码。它看起来像这样,我删除了错误等,使它更紧凑:
ioctl(fileno(driveptr[i]),HDIO_GET_IDENTITY,&hd);
ioctl(fileno(driveptr[i]),BLKGETSIZE64,&drivesize[i]);
ioctl(fileno(driveptr[i]),BLKPBSZGET,&psztemp);netbsd中是否有与这些ioctls等效的ioctl?
问候
发布于 2014-07-06 06:37:17
给定类型的磁盘接口(或任何其他类型的设备驱动程序)的驱动程序源可能是查找特定于设备的ioctls的最佳规范位置。
与许多基于unix的系统一样,系统级的NetBSD尽量避免特定于硬件,甚至在向用户级提供详细的特定于硬件的信息方面也是如此。毕竟,unix的目标是提供一个在各种硬件平台上都是统一的系统,而不是提供对特定硬件的详细低级访问。在硬件特定细节方面,您可以获得的最好信息是驱动程序在引导时打印的有关硬件的信息,因为它被探测和附加。
在更一般的级别上,您基本上只能获得磁盘和分区标签--即与系统向用户提供磁盘设备的方式相关的信息。不幸的是,唯一记录这些的驱动程序手册页面是sd(4) (cd(4)有更多关于特定于cd-rom设备的ioctls的详细信息)。scsi(4)记录了SCSI和ATAPI接口的总线级ioctls。
在x86平台上,有"sysctl“(以及通过sysctl(3)实现的等效C级接口)来获取有关machdep.diskinfo在引导时报告的有关它所知道的磁盘的详细信息,但这可能是不完整的。
https://stackoverflow.com/questions/20743971
复制相似问题