六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 79|回复: 0

Solaris的minor device

[复制链接]

升级  53.65%

673

主题

673

主题

673

主题

探花

Rank: 6Rank: 6

积分
2073
 楼主| 发表于 2013-1-28 23:41:51 | 显示全部楼层 |阅读模式
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.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表