考试网 >> IT认证 >> Linux >> Linux指导 >> Linux对I/O端口资源的管理(1)

Linux对I/O端口资源的管理(1)

发布时间:2006-06-28 10:10     点击:
分页:上一页  1 [2] 3  下一页

[Page: ]



  1 Linux对I/O资源的描述

    Linux设计了一个通用的数据结构resource来描述各种I/O资源(如:I/O端口、外设内存、DMA和IRQ等)。该结构定义在include/linux/ioport.h头文件中:

    struct resource {

  const char *name;

  unsigned long start, end;

  unsigned long flags;

  struct resource *parent, *sibling, *child;

    };

    各成员的含义如下:

    1. name指针:指向此资源的名称。

    2. start和end:表示资源的起始物理地址和终止物理地址。它们确定了资源的范围,也即是一个闭区间[start,end]。

    3. flags:描述此资源属性的标志(见下面)。

    4. 指针parent、sibling和child:分别为指向父亲、兄弟和子资源的指针。

    属性flags是一个unsigned long类型的32位标志值,用以描述资源的属性。比如:资源的类型、是否只读、是否可缓存,以及是否已被占用等。下面是一部分常用属性标志位的定义(ioport.h):

  /*

  * IO resources have these defined flags.

  */

  #define IORESOURCE_BITS 0x000000ff /* Bus-specific bits */

  #define IORESOURCE_IO 0x00000100 /* Resource type */

  #define IORESOURCE_MEM 0x00000200

  #define IORESOURCE_IRQ 0x00000400

  #define IORESOURCE_DMA 0x00000800

  #define IORESOURCE_PREFETCH 0x00001000 /* No side effects */

  #define IORESOURCE_READONLY 0x00002000

  #define IORESOURCE_CACHEABLE 0x00004000

  #define IORESOURCE_RANGELENGTH 0x00008000

  #define IORESOURCE_SHADOWABLE 0x00010000

  #define IORESOURCE_BUS_HAS_VGA 0x00080000

  #define IORESOURCE_UNSET 0x20000000

  #define IORESOURCE_AUTO 0x40000000
分页:上一页  1 [2] 3  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有