【问题标题】:netbsd ioctl for hard disk informationnetbsd ioctl 获取硬盘信息
【发布时间】:2014-01-11 16:44:20
【问题描述】:

我似乎找不到适用于 netbsd 的可用 ioctl 的完整列表。

我希望对硬盘进行一些操作(获取大小、物理扇区大小、模型)。我有在linux中工作的代码。它看起来像这样,我删除了错误等以使其更紧凑:

   ioctl(fileno(driveptr[i]),HDIO_GET_IDENTITY,&hd);
   ioctl(fileno(driveptr[i]),BLKGETSIZE64,&drivesize[i]);
   ioctl(fileno(driveptr[i]),BLKPBSZGET,&psztemp);

netbsd 中是否有与这些 ioctl 等效的功能?

问候

【问题讨论】:

    标签: hard-drive ioctl netbsd


    【解决方案1】:

    给定类型的磁盘接口(或任何其他类型的设备驱动程序)的驱动程序源可能是查找设备特定 ioctl 的最佳规范位置。

    NetBSD 在系统级别,就像许多基于 unix 的系统一样,努力避免特定于硬件,即使在向用户级别提供详细的硬件特定信息方面也是如此。毕竟,unix 的目标是提供一个跨各种硬件平台统一的系统,而不是提供对特定硬件的详细低级访问。就硬件特定细节而言,您可以获得的最佳信息是驱动程序在启动时打印的有关硬件的信息,因为它被探测和连接。

    在更通用的级别上,您基本上只能获得磁盘和分区标签 - 即与系统向用户区呈现磁盘设备的方式相关的信息。不幸的是,唯一记录这些内容的驱动程序手册页是 sd(4)(cd(4) 有更多关于 cd-rom 设备特定的 ioctl 的详细信息)。 scsi(4) 记录了 SCSI 和 ATAPI 接口的总线级 ioctl。

    在 x86 平台上,有“sysctl machdep.diskinfo”(以及通过 sysctl(3) 实现的等效 C 级接口)来获取有关 BIOS 报告的关于它在引导时知道的磁盘的详细信息,但这可能不完整。

    【讨论】:

      猜你喜欢
      • 2013-12-15
      • 2011-05-11
      • 2014-12-30
      • 2010-10-28
      • 2011-04-25
      • 2013-04-14
      • 2011-08-06
      • 1970-01-01
      • 2019-09-13
      相关资源
      最近更新 更多