程序14-22 linux/include/linux/head.h


  1 #ifndef _HEAD_H

  2 #define _HEAD_H

  3

  4 typedef struct desc_struct {        // 定义了段描述符的数据结构。该结构仅说明每个描述

  5         unsigned long a,b;          // 符是由8个字节构成,每个描述符表共有256项。

  6 } desc_table[256];

  7

  8 extern unsigned long pg_dir[1024];  // 内存页目录数组。每个目录项为4字节。从物理地址0开始。

  9 extern desc_table idt,gdt;          // 中断描述符表,全局描述符表。

 10

 11 #define GDT_NUL 0                   // 全局描述符表的第0项,不用。

 12 #define GDT_CODE 1                  // 1项,是内核代码段描述符项。

 13 #define GDT_DATA 2                  // 2项,是内核数据段描述符项。

 14 #define GDT_TMP 3                   // 3项,系统段描述符,Linux没有使用。

 15

 16 #define LDT_NUL 0                   // 每个局部描述符表的第0项,不用。

 17 #define LDT_CODE 1                  // 1项,是用户程序代码段描述符项。

 18 #define LDT_DATA 2                  // 2项,是用户程序数据段描述符项。

 19

 20 #endif

 21