Solaris的minor device

理解次要设备角色
次要设备作为主要设备的不同个性存在,在操作系统中扮演关键角色。例如,PCI设备可以通过不同的接口如intr管理和reg读写设备寄存器,这些操作通过相应的主设备驱动程序实现,并且每个接口都有独特的ID代码来区分请求。intr接口用于处理中断相关的ioctl调用,而reg接口允许应用程序任意读写设备寄存器。
A minor device is a "personality" of a major device. For example, on my
laptop, under /devices, we have:

drwxr-xr-x 6 root sys 13 Nov 25 21:48 pci@0,0/
crw------- 1 root sys 183, 255 Dec 26 20:44 pci@0,0:devctl
crw------- 1 root sys 183, 252 Dec 26 20:44 pci@0,0:intr
crw------- 1 root sys 183, 253 Dec 26 20:44 pci@0,0:reg
drwxr-xr-x 2 root sys 2 Dec 25 01:17 pci@2,0/
crw------- 1 root sys 86, 255 Dec 26 20:44 pci@2,0:devctl
crw------- 1 root sys 86, 252 Dec 26 20:44 pci@2,0:intr
crw------- 1 root sys 86, 253 Dec 26 20:44 pci@2,0:reg

pci@0,0:devctl, pci@0,0:intr, and pci@0,0:reg are all minor devices
of major device pci@0,0. When a minor device is opened, its
corresponding major device's driver is asked to service the call.
The driver, however, automatically gets an ID code which
differentiates the call from other "personalities".

In this particular example, we use the "intr" interface to manage
all the interrupts related ioctl calls, which would allow registered
interrupts to be displayed, or rerouted to different CPUs. The "reg"
interface is used by a pcitool-like applications to arbitrarily
read or write any device's register (obviously an extremely dangerous
but useful thing to do). The two interfaces reasonably separates
operations that are moderate from that are dangerous (helpful
in requiring certain credentials). Internally, the two interfaces
are implemented very differently since the "intr" interface need
to interact with the local APICs and "regs" deals with createing
VM mappings for device registers.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值