pm_defs.h

来自「一个微型操作系统源码」· C头文件 代码 · 共 42 行

H
42
字号
#ifndef _pm_defs_
#define _pm_defs_

#define byte unsigned char
#define word unsigned int
#define dword unsigned long

/* Access byte's flags */
#define ACS_PRESENT     0x80            /* present segment */
#define ACS_CSEG        0x18            /* code segment */
#define ACS_DSEG        0x10            /* data segment */
#define ACS_CONFORM     0x04            /* conforming segment */
#define ACS_READ        0x02            /* readable segment */
#define ACS_WRITE       0x02            /* writable segment */

/* Ready-made values */
#define ACS_CODE        (ACS_PRESENT | ACS_CSEG | ACS_READ)
#define ACS_DATA        (ACS_PRESENT | ACS_DSEG | ACS_WRITE)
#define ACS_STACK       (ACS_PRESENT | ACS_DSEG | ACS_WRITE)

#pragma pack (push, 1)  /* align structures to a byte boundary */

/* Segment desciptor definition */
typedef struct {
  word limit,
       base_l;
  byte base_m,
       access,
       attribs,
       base_h;
} DESCR_SEG;

/* GDTR register definition */
typedef struct {
  word limit;
  dword base;
} GDTR;

#pragma pack (pop)      /* align structures to default boundary */

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?