00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __KTASK_H
00019 #define __KTASK_H
00020
00021 #include "ktypes.h"
00022 #include "kconst.h"
00023 #include "kasm.h"
00024 #include "kstdio.h"
00025
00026
00027 typedef struct
00028 {
00029 DW pre_task_link;
00030 DW resv0;
00031 DD esp0;
00032 DW ss0;
00033 DW resv1;
00034 DD esp1;
00035 DW ss1;
00036 DW resv2;
00037 DD esp2;
00038 DW ss2;
00039 DW resv3;
00040 DD cr3;
00041 DD eip;
00042 DD eflags;
00043 DD eax;
00044 DD ecx;
00045 DD edx;
00046 DD ebx;
00047 DD esp;
00048 DD ebp;
00049 DD esi;
00050 DD edi;
00051 DW es;
00052 DW resv4;
00053 DW cs;
00054 DW resv5;
00055 DW ss;
00056 DW resv6;
00057 DW ds;
00058 DW resv7;
00059 DW fs;
00060 DW resv8;
00061 DW gs;
00062 DW resv9;
00063 DW ldt_sel;
00064 DW resv10;
00065 DW flags;
00066 DW io_map;
00067
00068 } TSS;
00069
00070 void printTSS(const TSS *tmp);
00071
00072 extern TSS _system, _task[2];
00073
00074 #endif