jinux
驱动牛犊
驱动牛犊
  • 注册日期2002-10-31
  • 最后登录2002-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1494回复:4

Linux内核中有TSS的I/O位图保护吗?我可以直接在内核中进行汇编的I/O端口读写吗?

楼主#
更多 发布于:2002-11-11 12:16
在Linux用户层需要先对I/O端口进行登记,这个国程就像会对当前进程的TSS段的I/O端口位图进行操作,然后才能进行端口读写。
但如果我在内核中(就像作为模块载入)可以不预先登记端口,直接进行端口的汇编读写吗?就是说内核的TSS段是否需要对端口映像进行显式打开?
多谢各位高手!
Samuels
驱动牛犊
驱动牛犊
  • 注册日期2002-11-05
  • 最后登录2003-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-11 16:05
我的印象是在内核中可以任意使用资源,Linux不做任何屏蔽,所以可以直接读写端口,不过我只在ARM芯片上用过,没有在x86上试过。
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-11 16:09
inb,inl,outb,outl,就是对寄存器操作。
如果你include了对这些寄存器的定义,就可以直接写数。
如:#define CPU_FLAG 0x10000000

jinux
驱动牛犊
驱动牛犊
  • 注册日期2002-10-31
  • 最后登录2002-11-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-12 08:35
谢谢二位高手,我已解决,就是Linux没有在内核中没有作屏蔽,可以直接操作!
给二位送分了。 :P
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-12 08:49
不谢,就是分少。哈哈
游客

返回顶部