【问题标题】:Is there an OS X equivalent of FreeBSD's make_dev() function?是否有相当于 FreeBSD 的 make_dev() 函数的 OS X?
【发布时间】:2010-01-30 19:23:24
【问题描述】:

我正在尝试将一些代码从 FreeBSD 移植到 OS X。该代码相当低级,它使用 make_dev() 创建许多特殊设备文件,并使用 ioctl() 等函数控制功能。

理想情况下,我希望我的代码尽可能接近原始代码,以便将来可以更轻松地合并上游更改:我的问题是,有没有办法在 OS X 上创建此类设备文件?根据wikipedia,该平台支持该成语。有人可以指出我正确的方向吗?

【问题讨论】:

  • 您是在编写内核扩展,还是在移植用户态应用程序?你使用 mknod(2) 有什么问题?
  • 我试图移植的源代码是一个内核扩展:如果我可以在用户空间工作,虽然我更愿意。似乎通过 IOKit 我可以获取我需要的实际设备数据,所以如果我可以在用户空间中创建与 /dev 中通过内核扩展创建的设备功能相同的特殊设备文件,那就没问题了。是这样的吗?
  • 您找到/获得了 DVB 源代码吗?
  • @tommieb75: 不,我没有,但我找到了一些我可以理解的 FreeBSD 代码,并准备进行移植。我宁愿避免编写内核扩展,但如果我想让我的代码靠近我正在使用的源代码,我似乎必须这样做。
  • 好的...玩得开心移植,祝你好运;)我会密切关注你未来的帖子,因为我很想知道你的进展如何。跨度>

标签: macos port freebsd ioctl mknod


【解决方案1】:

根据the docsmknod 确实可以在 OS X 上运行。您遇到了什么问题?

【讨论】:

  • 抱歉,这是一个仓促的编辑:我不确定 mknod 是否与 make_dev 做同样的事情...
【解决方案2】:

我想我已经回答了我自己的问题:执行此操作的函数似乎是 devfs_make_node()。我找不到手册页,但它显示在一些示例代码 here 中。

【讨论】:

    猜你喜欢
    • 2014-03-27
    • 2014-06-25
    • 2014-01-04
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多