⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idt.h

📁 一个简单的操作系统源码。添加了本人的注释
💻 H
字号:
#ifndef __IDT_H__#define __IDT_H__#include "sys/types.h"//Interrupt Gate Descriptortypedef struct intgd_tag{  ushort_t loffset;  ushort_t segment_s;  byte reserved;               /* Actually 000Reserved */  byte options;                /* P   DPL   01110      */  ushort_t hoffset;  } intgd_t;//Task Gate Desctriptortypedef struct taskgd_tag{  ushort_t reserved;  ushort_t tss;  byte reservedd;  byte options;               /* P  DPL  00101 */  ushort_t reserveddd;} taskgd_t;//Trap Gate Descriptortypedef struct trapgd_tag{  ushort_t loffset;  ushort_t segment_s;  byte reserved;             /* Actually 000 Reserved */  byte options ;             /* P  DPL  01111 */  ushort_t hoffset;} trapgd_t;typedef struct idtr_tag{  ushort_t limit;  ushort_t lowerbase;  ushort_t higherbase;} idtr_t;#define IDT_BASE      0x0000 //Interrupt Descriptor Table Base#define CODESEGMENT   0x08 // Kernel Code Segment #define PRESENT       0x80 // Page Present#define NOTPRESENT    0x00 // Page Not Present#define KERNEL_LEVEL  0x00#define USER_LEVEL    0x60  void set_trap_gate(int vector, unsigned int handler);void set_task_gate(int vector, ushort_t tss);void set_int_gate(int vector, unsigned int handler);void trap_init();void theend(char* message);/* Handlers */void divide_error(void);void debug(void);void nmi(void);void int3(void);void overflow(void);void bounds(void);void invalid_op(void);void device_not_available(void);void double_fault(void);void coprocessor_segment_overrun(void);void invalid_TSS(void);void segment_not_present(void);void stack_segment(void);void general_protection(void);void page_fault(void);void coprocessor_error(void);void alignment_check(void);void reserved(void);#endif

⌨️ 快捷键说明

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