1: int eax;

   2:  _asm_("nop":"=a"(eax)); 

   3: printk("Get Eax Value:\n"); 

   4: printk("0x%08X\n", eax); 

   5: printk("");

   1: int eax;

   2:  

   3: asm("mov %%cr0, %%eax;":"=a"(eax));

   4: printk("%08s:0x%08X\n", "cr0", eax);

   5:  

   6: asm("mov %%cr1, %%eax;":"=a"(eax));

   7: printk("%08s:0x%08X\n", "cr1", eax);

   8:  

   9: asm("mov %%cr2, %%eax;":"=a"(eax));

  10: printk("%08s:0x%08X\n", "cr2", eax);

  11:  

  12: asm("mov %%cr3, %%eax;":"=a"(eax));

  13: printk("%08s:0x%08X\n", "cr3", eax);

  14:  

  15: printk("\n");

下面是改进后的版本

   1: #include<linux/init.h>

   2: #include<linux/module.h>

   3: #include<linux/list.h>

   4: #include<linux/sched.h>

   5: #include<linux/proc_fs.h>

   6: #include<linux/mm_types.h>

   7: #include<linux/fs.h>

   8: #include<linux/path.h>

   9: #include<linux/dcache.h>

  10: #include<linux/mm.h>

  11: #include<linux/mmzone.h>

  12: #include<linux/vmalloc.h>

  13:  

  14: MODULE_LICENSE("GPL");

  15:  

  16: void printRawData(unsigned long size, const u_char* data)

  17: {

  18:     if (size == 0)

  19:     {

  20:         return;

  21:     }

  22:  

  23:     unsigned long i = 0;

  24:     for (i=0;i<16;i++)

  25:     {

  26:         printk("%4X", i);

  27:     }

  28:     printk("\n");

  29:     for (i=0;i<16;i++)

  30:     {

  31:         printk("%4s", "__");

  32:     }

  33:  

  34:     char lineSummary[17] = {0,};

  35:     unsigned long pos = 0;

  36:     for (i=0;i<size;i++)

  37:     {

  38:         if ((pos = i % 16) == 0)

  39:         {

  40:             if (i != 0)

  41:             {

  42:                 printk(" ---- %s\n", lineSummary);

  43:                 memset(lineSummary, 0, 17);

  44:             }

  45:             else

  46:             {

  47:                 printk("\n");

  48:             }        

  49:         }

  50:  

  51:         printk("  %02X", *(data + i));

  52:  

  53:         if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)

  54:         {

  55:             lineSummary[pos] = *(data + i);

  56:         }

  57:         else

  58:         {

  59:             lineSummary[pos] = ' ';

  60:         }

  61:     }

  62:  

  63:     if (size % 16 != 0)

  64:     {

  65:         for (i=0;i<16 - (size%16);i++)

  66:         {

  67:             printk("    ");

  68:         }

  69:     }

  70:  

  71:     printk(" ---- %s\n", lineSummary);

  72:     printk("\n");    

  73: }

  74:  

  75: #define getNormalReg(reg, val) asm("movl %%"#reg",%0" : "=r" (val));

  76:  

  77: #define dumpNormalReg(reg) {u32 val;getNormalReg(reg, val); printk("%08s:0x%08X\n", ""#reg"", val);}

  78:  

  79: #define dumpLDT() {u32 val; asm("sldt %0" : "=r"(val)); printk("%08s:0x%08X\n", "ldt", val);}

  80: #define dumpTSS() {u32 val; asm("str %0" : "=r"(val));  printk("%08s:0x%08X\n", "tss", val);}

  81:  

  82: #define dumpGDT() {char gdt[6]; \

  83:     asm("sgdt %0" : "=m"(gdt)); \ 

  84:     printRawData(6, gdt); \

  85:     printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt));}

  86:  

  87: #define dumpIDT() {char idt[6]; \

  88:     asm("sidt %0" : "=m"(idt)); \ 

  89:     printRawData(6, idt); \

  90:     printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt));}

  91:  

  92: static int pslist_init()

  93: {

  94:     // analyzeUMANode();

  95:     // analyzeProcesses();

  96:     

  97:     // asm("mov %%cr0, %%eax;":"=a"(eax));

  98:     // printk("%08s:0x%08X\n", "cr0", eax);

  99:  

 100:     printk("###################################################################\n");

 101:     dumpNormalReg(cr0);

 102:     dumpNormalReg(cr2);

 103:     dumpNormalReg(cr3);

 104:  

 105:     dumpNormalReg(eax);

 106:     dumpNormalReg(ebx);

 107:     dumpNormalReg(ecx);

 108:     dumpNormalReg(edx);

 109:  

 110:     dumpNormalReg(esp);

 111:     dumpNormalReg(ebp);

 112:     

 113:     dumpNormalReg(esi);

 114:     dumpNormalReg(edi);

 115:  

 116:     dumpTSS();

 117:     dumpLDT();

 118:  

 119:     dumpGDT();

 120:     dumpIDT();

 121:  

 122:  

 123:     return 0;

 124: }

 125:  

 126: static void pslist_exit()

 127: {

 128:     printk("###################################################################\n");

 129: }

 130:  

 131: module_init(pslist_init);

 132: module_exit(pslist_exit);

下面是输出的结果:

   1: [ 2452.866241] ###################################################################

   2: [ 2452.866244]      cr0:0x8005003B

   3: [ 2452.866245]      cr2:0xB7849000

   4: [ 2452.866246]      cr3:0x288D0000

   5: [ 2452.866247]      eax:0x00000026

   6: [ 2452.866247]      ebx:0x00000000

   7: [ 2452.866248]      ecx:0xFFFFFEEC

   8: [ 2452.866249]      edx:0x00000000

   9: [ 2452.866250]      esp:0xE8929F3C

  10: [ 2452.866250]      ebp:0xE8929F58

  11: [ 2452.866251]      esi:0x000003F2

  12: [ 2452.866252]      edi:0x00540918

  13: [ 2452.866253]      tss:0x00000080

  14: [ 2452.866253]      ldt:0x00000000

  15: [ 2452.866254]    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

  16: [ 2452.866257]   __  __  __  __  __  __  __  __  __  __  __  __  __  __  __  __

  17: [ 2452.866261]   FF  00  00  00  80  F5                                         ----       

  18: [ 2452.866264] 

  19: [ 2452.866265]      gdt:0xF5800000(0x00FF)

  20: [ 2452.866266]    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

  21: [ 2452.866271]   __  __  __  __  __  __  __  __  __  __  __  __  __  __  __  __

  22: [ 2452.866274]   FF  07  00  B0  75  C1                                         ----     u 

  23: [ 2452.866277] 

  24: [ 2452.866278]      idt:0xC175B000(0x07FF)

  25: [ 2452.866758] ###################################################################

更改其中的宏

   1: #define dumpGDT() {char gdt[6]; \     

   2:     asm("sgdt %0" : "=m"(gdt)); \      

   3:     printRawData(6, gdt); \     

   4:     printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt)); \      

   5:     printRawData(0x60, (u_char*)(*(u32*)(gdt + 2)));}  

   6:  

   7: #define dumpIDT() {char idt[6]; \     

   8:     asm("sidt %0" : "=m"(idt)); \      

   9:     printRawData(6, idt); \     

  10:     printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt)); \      

  11:     printRawData(0x60, (u_char*)(*(u32*)(idt + 2)));}

结果如下:

   1: [ 2362.090908] ###################################################################

   2: [ 2362.090911]      cr0:0x8005003B

   3: [ 2362.090912]      cr2:0xB772E000

   4: [ 2362.090912]      cr3:0x2A3BC000

   5: [ 2362.090913]      eax:0x00000026

   6: [ 2362.090914]      ebx:0x00000000

   7: [ 2362.090915]      ecx:0xFFFFFEEC

   8: [ 2362.090915]      edx:0x00000000

   9: [ 2362.090916]      esp:0xE303BF3C

  10: [ 2362.090917]      ebp:0xE303BF58

  11: [ 2362.090917]      esi:0x000003F2

  12: [ 2362.090918]      edi:0x00741918

  13: [ 2362.090919]      tss:0x00000080

  14: [ 2362.090920]      ldt:0x00000000

  15: [ 2362.090920] Memory at 0xe303bf4e

  16: [ 2362.090921]    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

  17: [ 2362.090925]   __  __  __  __  __  __  __  __  __  __  __  __  __  __  __  __

  18: [ 2362.090928]   FF  00  00  00  80  F5                                         ----       

  19: [ 2362.090931] 

  20: [ 2362.090932]      gdt:0xF5800000(0x00FF)

  21: [ 2362.090933] Memory at 0xf5800000

  22: [ 2362.090934]    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

  23: [ 2362.090937]   __  __  __  __  __  __  __  __  __  __  __  __  __  __  __  __

  24: [ 2362.090940]   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 ----                 

  25: [ 2362.090944]   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 ----                 

  26: [ 2362.090948]   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 ----                 

  27: [ 2362.090951]   FF  FF  D0  28  6F  F2  DF  B7  00  00  00  00  00  00  00  00 ----    (o           

  28: [ 2362.090955]   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 ----                 

  29: [ 2362.090959]   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 ----                 

  30: [ 2362.090963] 

  31: [ 2362.090963] Memory at 0xe303bf4e

  32: [ 2362.090964]    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

  33: [ 2362.090967]   __  __  __  __  __  __  __  __  __  __  __  __  __  __  __  __

  34: [ 2362.090970]   FF  07  00  B0  75  C1                                         ----     u 

  35: [ 2362.090974] 

  36: [ 2362.090974]      idt:0xC175B000(0x07FF)

  37: [ 2362.090975] Memory at 0xc175b000

  38: [ 2362.090976]    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

  39: [ 2362.090979]   __  __  __  __  __  __  __  __  __  __  __  __  __  __  __  __

  40: [ 2362.090982]   3C  CF  60  00  00  8E  52  C1  D4  CF  60  00  00  8E  52  C1 ---- < `   R   `   R 

  41: [ 2362.090986]   2C  D0  60  00  00  8E  52  C1  4C  D1  60  00  00  EE  52  C1 ---- , `   R L `   R 

  42: [ 2362.090990]   EC  CE  60  00  00  EE  52  C1  F8  CE  60  00  00  8E  52  C1 ----   `   R   `   R 

  43: [ 2362.090994]   04  CF  60  00  00  8E  52  C1  D8  CE  60  00  00  8E  52  C1 ----   `   R   `   R 

  44: [ 2362.090998]   00  00  F8  00  00  85  00  00  10  CF  60  00  00  8E  52  C1 ----           `   R 

  45: [ 2362.091002]   1C  CF  60  00  00  8E  52  C1  24  CF  60  00  00  8E  52  C1 ----   `   R $ `   R 

  46: [ 2362.091005] 

  47: [ 2362.097688] ###################################################################

对IDT和GDT指向的内存进一步的解析

   1: #include<linux/init.h>

   2: #include<linux/module.h>

   3: #include<linux/list.h>

   4: #include<linux/sched.h>

   5: #include<linux/proc_fs.h>

   6: #include<linux/mm_types.h>

   7: #include<linux/fs.h>

   8: #include<linux/path.h>

   9: #include<linux/dcache.h>

  10: #include<linux/mm.h>

  11: #include<linux/mmzone.h>

  12: #include<linux/vmalloc.h>

  13:  

  14: MODULE_LICENSE("GPL");

  15: void printRawData(unsigned long size, const u_char* data)

  16: {

  17:     if (size == 0)

  18:     {

  19:         return;

  20:     }

  21:  

  22:     printk("Memory at 0x%08x\n", (u32)data);

  23:     unsigned long i = 0;

  24:     for (i=0;i<16;i++)

  25:     {

  26:         printk("%4X", i);

  27:     }

  28:     printk("\n");

  29:     for (i=0;i<16;i++)

  30:     {

  31:         printk("%4s", "__");

  32:     }

  33:  

  34:     char lineSummary[17] = {0,};

  35:     unsigned long pos = 0;

  36:     for (i=0;i<size;i++)

  37:     {

  38:         if ((pos = i % 16) == 0)

  39:         {

  40:             if (i != 0)

  41:             {

  42:                 printk(" ---- %s\n", lineSummary);

  43:                 memset(lineSummary, 0, 17);

  44:             }

  45:             else

  46:             {

  47:                 printk("\n");

  48:             }        

  49:         }

  50:  

  51:         printk("  %02X", *(data + i));

  52:  

  53:         if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)

  54:         {

  55:             lineSummary[pos] = *(data + i);

  56:         }

  57:         else

  58:         {

  59:             lineSummary[pos] = ' ';

  60:         }

  61:     }

  62:  

  63:     if (size % 16 != 0)

  64:     {

  65:         for (i=0;i<16 - (size%16);i++)

  66:         {

  67:             printk("    ");

  68:         }

  69:     }

  70:  

  71:     printk(" ---- %s\n", lineSummary);

  72:     printk("\n");    

  73: }

  74: void analyzeGDTEntry(char* buffer)

  75: {

  76:     u32 limit;

  77:     u32 base;

  78:     u8 type;

  79:     u8 dpl;

  80:     u8 granularity;

  81:     u8 systemFlag;

  82:     u8 present;

  83:     u8 dbFlag;

  84:  

  85:     granularity = ((*(u8*)(buffer + 6)) & 0x80) >> 7;

  86:     dbFlag = ((*(u8*)(buffer + 6)) & 0x40) >> 6;

  87:  

  88:     present = ((*(u8*)(buffer + 5)) & 0x80) >> 7;

  89:     systemFlag = ((*(u8*)(buffer + 5)) & 0x10) >> 4;

  90:  

  91:     dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5;

  92:     type = ((*(u8*)(buffer + 5)) & 0x0F);

  93:  

  94:     limit = *(u16*)buffer;

  95:     limit += ((*(u8*)(buffer + 6)) & 0x0F) << 16;

  96:  

  97:     if (granularity == 1)

  98:     {

  99:         limit = ((limit + 1) << 12) - 1;

 100:     }

 101:  

 102:     base = 0;

 103:     base += *(u16*)(buffer + 2);

 104:     base += (*(u8*)(buffer + 4)) << 16;

 105:     base += (*(u8*)(buffer + 7)) << 24;

 106:  

 107:     if (limit == 0)

 108:     {

 109:         printk("[null]\n");

 110:     }

 111:     else

 112:     {

 113:         printk("0x%08x : 0x%08x, ", base, base + limit);

 114:         printk("G[%d] ", granularity);

 115:         printk("D/B[%d] ", dbFlag);

 116:         printk("P[%d] ", present);

 117:         printk("DPL[%d] ", dpl);

 118:         printk("S[%d] ", systemFlag);

 119:         printk("Type[%d] ", type);

 120:         if (systemFlag == 1)

 121:         {

 122:             if ((type & 0x08) != 0 )

 123:             {

 124:                 // Code

 125:                 printk("Code[");

 126:                 if ((type & 0x04) != 0)

 127:                 {

 128:                     printk("Conforming ");

 129:                 }

 130:                 if ((type & 0x02) != 0)

 131:                 {

 132:                     printk("Read-Enable ");

 133:                 }

 134:                 if ((type & 0x01) != 0)

 135:                 {

 136:                     printk("Accessed ");

 137:                 }

 138:                 printk("]");

 139:             }

 140:             else

 141:             {

 142:                 // Data

 143:                 printk("Data[");

 144:                 if ((type & 0x04) != 0)

 145:                 {

 146:                     printk("Expand-Down ");

 147:                 }

 148:                 if ((type & 0x02) != 0)

 149:                 {

 150:                     printk("Write-Enable ");

 151:                 }

 152:                 if ((type & 0x01) != 0)

 153:                 {

 154:                     printk("Accessed ");

 155:                 }

 156:                 printk("]");

 157:             }

 158:         }

 159:         else

 160:         {

 161:             if (type == 0x02)

 162:             {

 163:                 printk("[LDT]");

 164:             }

 165:             else if (type == 0x05)

 166:             {

 167:                 printk("[Task Gate]");

 168:             }

 169:             else if (type == 0x09)

 170:             {

 171:                 printk("[32-Bit TSS(Available)]");

 172:             }

 173:             else if (type == 0x0B)

 174:             {

 175:                 printk("[32-Bit TSS(Busy)]");

 176:             }            

 177:             else if (type == 0x0C)

 178:             {

 179:                 printk("[32-Bit Call Gate]");

 180:             }

 181:             else if (type == 0x0E)

 182:             {

 183:                 printk("[32-Bit Interrupt Gate]");

 184:             }

 185:             else if (type == 0x0F)

 186:             {

 187:                 printk("[32-Bit Trap Gate]");

 188:             }

 189:         }

 190:         

 191:         printk("\n");

 192:     }

 193:  

 194:  

 195: }

 196:  

 197: void analyzeGDT(u32 size, char* buffer)

 198: {

 199:     int i;

 200:     for (i = 0; i < size; i += 8)

 201:     {

 202:         printk("[%4X] ", i/8);        

 203:         analyzeGDTEntry(buffer + i);

 204:     }

 205: }

 206:  

 207: void analyzeIDTEntry(char* buffer)

 208: {

 209:     u32 offset;

 210:     u32 selector;

 211:     u8 type;

 212:     u8 dpl;

 213:     u8 present;

 214:  

 215:     present = ((*(u8*)(buffer + 5)) & 0x80) >> 7;

 216:     dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5;

 217:     type = ((*(u8*)(buffer + 5)) & 0x1F);

 218:  

 219:     offset = *(u16*)buffer;

 220:     offset += (*(u16*)(buffer + 6)) << 16;

 221:  

 222:     selector = *(u16*)(buffer + 2);

 223:  

 224:     if (type == 0x0E)

 225:     {

 226:         // Interrupt Gate

 227:         printk("0x%08x : 0x%08x, ", selector, offset);

 228:         printk("P[%d] ", present);

 229:         printk("DPL[%d] ", dpl);

 230:         printk("Type[Interrupt Gate] ");

 231:         printk("selector[index=%04X, TI=%d, RPL=%d]", selector >> 3, selector&0x0004, selector&0x0003);

 232:         printk("\n");

 233:     }

 234:     else if (type == 0x0F)

 235:     {

 236:         // Trap Gate

 237:         printk("0x%08x : 0x%08x, ", selector, offset);

 238:         printk("P[%d] ", present);

 239:         printk("DPL[%d] ", dpl);

 240:         printk("Type[Trap Gate] ");

 241:         printk("selector[index=%04X, TI=%d, RPL=%d]", selector >> 3, selector&0x0004, selector&0x0003);

 242:         printk("\n");

 243:     }

 244:     else if (type == 0x05)

 245:     {

 246:         // Task Gate

 247:         printk("0x%08x : 0x%08x, ", selector, offset);

 248:         printk("P[%d] ", present);

 249:         printk("DPL[%d] ", dpl);

 250:         printk("Type[Task Gate] ");

 251:         printk("selector[index=%04X, TI=%d, RPL=%d]", selector >> 3, selector&0x0004, selector&0x0003);

 252:         printk("\n");

 253:     }

 254:     else

 255:     {

 256:         printk("[null]\n");

 257:     }

 258: }

 259:  

 260: void analyzeIDT(u32 size, char* buffer)

 261: {

 262:     int i;

 263:     for (i = 0; i < size; i += 8)

 264:     {

 265:         printk("[%4X] ", i/8);    

 266:         analyzeIDTEntry(buffer + i);

 267:     }

 268: }

 269:  

 270: #define getNormalReg(reg, val) asm("movl %%"#reg",%0" : "=r" (val));

 271:  

 272: #define dumpNormalReg(reg) {u32 val;getNormalReg(reg, val); printk("%08s:0x%08X\n", ""#reg"", val);}

 273:  

 274: #define dumpLDT() {u32 val; asm("sldt %0" : "=r"(val)); printk("%08s:0x%08X\n", "ldt", val);}

 275: #define dumpTSS() {u32 val; asm("str %0" : "=r"(val));  printk("%08s:0x%08X\n", "tss", val);}

 276:  

 277: #define dumpGDT() {char gdt[6]; \

 278:     asm("sgdt %0" : "=m"(gdt)); \ 

 279:     printRawData(6, gdt); \

 280:     printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt)); \ 

 281:     printRawData((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2))); \ 

 282:     analyzeGDT((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2)));}

 283:  

 284: #define dumpIDT() {char idt[6]; \

 285:     asm("sidt %0" : "=m"(idt)); \ 

 286:     printRawData(6, idt); \

 287:     printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt)); \ 

 288:     printRawData((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2))); \ 

 289:     analyzeIDT((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2)));}

 290:  

 291: static int pslist_init()

 292: {

 293:     // analyzeUMANode();

 294:     // analyzeProcesses();

 295:     

 296:     // asm("mov %%cr0, %%eax;":"=a"(eax));

 297:     // printk("%08s:0x%08X\n", "cr0", eax);

 298:  

 299:     printk("###################################################################\n");

 300:     dumpNormalReg(cr0);

 301:     dumpNormalReg(cr2);

 302:     dumpNormalReg(cr3);

 303:  

 304:     dumpNormalReg(eax);

 305:     dumpNormalReg(ebx);

 306:     dumpNormalReg(ecx);

 307:     dumpNormalReg(edx);

 308:  

 309:     dumpNormalReg(esp);

 310:     dumpNormalReg(ebp);

 311:     

 312:     dumpNormalReg(esi);

 313:     dumpNormalReg(edi);

 314:  

 315:     dumpTSS();

 316:     dumpLDT();

 317:  

 318:     dumpGDT();

 319:     dumpIDT();

 320:  

 321:     return 0;

 322: }

 323:  

 324: static void pslist_exit()

 325: {

 326:     printk("###################################################################\n");

 327: }

 328:  

 329:  

 330:  

 331: module_init(pslist_init);

 332: module_exit(pslist_exit);

得到结果如下

   1: [10463.061988] ###################################################################

   2: [10463.061991]      cr0:0x8005003B

   3: [10463.061992]      cr2:0xB772E000

   4: [10463.061993]      cr3:0x2B80F000

   5: [10463.061994]      eax:0x00000026

   6: [10463.061995]      ebx:0x00000000

   7: [10463.061995]      ecx:0xFFFFFEEC

   8: [10463.061996]      edx:0x00000000

   9: [10463.061997]      esp:0xEC7DDF3C

  10: [10463.061998]      ebp:0xEC7DDF58

  11: [10463.061998]      esi:0x00000468

  12: [10463.061999]      edi:0x004F3918

  13: [10463.062000]      tss:0x00000080

  14: [10463.062000]      ldt:0x00000000

  15: [10463.062001] Memory at 0xec7ddf4e

  16: [10463.062002]    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

  17: [10463.062005]   __  __  __  __  __  __  __  __  __  __  __  __  __  __  __  __

  18: [10463.062009]   FF  00  00  00  80  F5                                         ----       

  19: [10463.062012] 

  20: [10463.062013]      gdt:0xF5800000(0x00FF)

  21: [10463.062014] Memory at 0xf5800000

  22: [10463.062015]    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

  23: [10463.062018]   __  __  __  __  __  __  __  __  __  __  __  __  __  __  __  __

  24: [10463.062021]   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 ----                 

  25: [10463.062025]   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 ----                 

  26: [10463.062029]   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 ----                 

  27: [10463.062032]   FF  FF  D0  88  82  F2  DF  B7  00  00  00  00  00  00  00  00 ----                 

  28: [10463.062036]   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 ----                 

  29: [10463.062040]   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 ----                 

  30: [10463.062043]   FF  FF  00  00  00  9B  CF  00  FF  FF  00  00  00  93  CF  00 ----                 

  31: [10463.062047]   49  80  00  00  00  FB  C0  00  FF  FF  00  00  00  F3  CF  00 ---- I               

  32: [10463.062051]   6B  20  80  3B  80  8B  00  F5  00  00  00  00  00  00  00  00 ---- k  ;            

  33: [10463.062055]   FF  FF  00  00  00  9A  40  00  FF  FF  00  00  00  9A  00  00 ----       @         

  34: [10463.062058]   FF  FF  00  00  00  92  00  00  00  00  00  00  00  92  00  00 ----                 

  35: [10463.062062]   00  00  00  00  00  92  00  00  FF  FF  00  00  00  9A  40  00 ----               @ 

  36: [10463.062066]   FF  FF  00  00  00  9A  00  00  FF  FF  00  00  00  92  40  00 ----               @ 

  37: [10463.062070]   FF  FF  00  00  00  92  CF  00  FF  FF  00  D0  F9  93  8F  33 ----                3

  38: [10463.062073]   18  00  40  5D  80  91  40  F5  00  00  00  00  00  00  00  00 ----   @]  @         

  39: [10463.062077]   00  00  00  00  00  00  00  00  6B  20  00  B8  75  89  00  C1 ----         k   u   

  40: [10463.062081] 

  41: [10463.062081] [   0] [null]

  42: [10463.062082] [   1] [null]

  43: [10463.062083] [   2] [null]

  44: [10463.062084] [   3] [null]

  45: [10463.062084] [   4] [null]

  46: [10463.062085] [   5] [null]

  47: [10463.062086] [   6] 0xb78288d0 : 0xb78288cf, G[1] D/B[1] P[1] DPL[3] S[1] Type[2] Data[Write-Enable ]

  48: [10463.062090] [   7] [null]

  49: [10463.062091] [   8] [null]

  50: [10463.062091] [   9] [null]

  51: [10463.062092] [   A] [null]

  52: [10463.062093] [   B] [null]

  53: [10463.062093] [   C] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[0] S[1] Type[11] Code[Read-Enable Accessed ]

  54: [10463.062097] [   D] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[0] S[1] Type[3] Data[Write-Enable Accessed ]

  55: [10463.062100] [   E] 0x00000000 : 0x08049fff, G[1] D/B[1] P[1] DPL[3] S[1] Type[11] Code[Read-Enable Accessed ]

  56: [10463.062104] [   F] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[3] S[1] Type[3] Data[Write-Enable Accessed ]

  57: [10463.062107] [  10] 0xf5803b80 : 0xf5805beb, G[0] D/B[0] P[1] DPL[0] S[0] Type[11] [32-Bit TSS(Busy)]

  58: [10463.062110] [  11] [null]

  59: [10463.062111] [  12] 0x00000000 : 0x0000ffff, G[0] D/B[1] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ]

  60: [10463.062114] [  13] 0x00000000 : 0x0000ffff, G[0] D/B[0] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ]

  61: [10463.062117] [  14] 0x00000000 : 0x0000ffff, G[0] D/B[0] P[1] DPL[0] S[1] Type[2] Data[Write-Enable ]

  62: [10463.062121] [  15] [null]

  63: [10463.062121] [  16] [null]

  64: [10463.062122] [  17] 0x00000000 : 0x0000ffff, G[0] D/B[1] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ]

  65: [10463.062125] [  18] 0x00000000 : 0x0000ffff, G[0] D/B[0] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ]

  66: [10463.062128] [  19] 0x00000000 : 0x0000ffff, G[0] D/B[1] P[1] DPL[0] S[1] Type[2] Data[Write-Enable ]

  67: [10463.062131] [  1A] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[0] S[1] Type[2] Data[Write-Enable ]

  68: [10463.062134] [  1B] 0x33f9d000 : 0x33f9cfff, G[1] D/B[0] P[1] DPL[0] S[1] Type[3] Data[Write-Enable Accessed ]

  69: [10463.062138] [  1C] 0xf5805d40 : 0xf5805d58, G[0] D/B[1] P[1] DPL[0] S[1] Type[1] Data[Accessed ]

  70: [10463.062141] [  1D] [null]

  71: [10463.062142] [  1E] [null]

  72: [10463.062142] [  1F] 0xc175b800 : 0xc175d86b, G[0] D/B[0] P[1] DPL[0] S[0] Type[9] [32-Bit TSS(Available)]

  73: [10463.062145] Memory at 0xec7ddf4e

  74: [10463.062146]    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

  75: [10463.062149]   __  __  __  __  __  __  __  __  __  __  __  __  __  __  __  __

  76: [10463.062152]   FF  07  00  B0  75  C1                                         ----     u 

  77: [10463.062156] 

  78: [10463.062156]      idt:0xC175B000(0x07FF)

  79: [10463.062157] Memory at 0xc175b000

  80: [10463.062158]    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

  81: [10463.062161]   __  __  __  __  __  __  __  __  __  __  __  __  __  __  __  __

  82: [10463.062164]   3C  CF  60  00  00  8E  52  C1  D4  CF  60  00  00  8E  52  C1 ---- < `   R   `   R 

  83: [10463.062168]   2C  D0  60  00  00  8E  52  C1  4C  D1  60  00  00  EE  52  C1 ---- , `   R L `   R 

  84: [10463.062172]   EC  CE  60  00  00  EE  52  C1  F8  CE  60  00  00  8E  52  C1 ----   `   R   `   R 

  85: [10463.062175]   04  CF  60  00  00  8E  52  C1  D8  CE  60  00  00  8E  52  C1 ----   `   R   `   R 

  86: [10463.062179]   00  00  F8  00  00  85  00  00  10  CF  60  00  00  8E  52  C1 ----           `   R 

  87: [10463.062183]   1C  CF  60  00  00  8E  52  C1  24  CF  60  00  00  8E  52  C1 ----   `   R $ `   R 

  88: [10463.062187]   2C  CF  60  00  00  8E  52  C1  84  D1  60  00  00  8E  52  C1 ---- , `   R   `   R 

  89: [10463.062190]   60  CF  60  00  00  8E  52  C1  54  CF  60  00  00  8E  52  C1 ---- ` `   R T `   R 

  90: [10463.062194]   C0  CE  60  00  00  8E  52  C1  34  CF  60  00  00  8E  52  C1 ----   `   R 4 `   R 

  91: [10463.062198]   48  CF  60  00  00  8E  52  C1  CC  CE  60  00  00  8E  52  C1 ---- H `   R   `   R 

  92: [10463.062202]   D8  D0  60  00  00  8E  50  C1  D8  D0  60  00  00  8E  50  C1 ----   `   P   `   P 

  93: [10463.062205]   D8  D0  60  00  00  8E  50  C1  D8  D0  60  00  00  8E  50  C1 ----   `   P   `   P 

  94: [10463.062209]   D8  D0  60  00  00  8E  50  C1  D8  D0  60  00  00  8E  50  C1 ----   `   P   `   P 

  95: [10463.062213]   D8  D0  60  00  00  8E  50  C1  D8  D0  60  00  00  8E  50  C1 ----   `   P   `   P 

  96: [10463.062217]   D8  D0  60  00  00  8E  50  C1  D8  D0  60  00  00  8E  50  C1 ----   `   P   `   P 

  97: [10463.062221]   D8  D0  60  00  00  8E  50  C1  D8  D0  60  00  00  8E  50  C1 ----   `   P   `   P 

  98: [10463.062224]   D4  CA  60  00  00  8E  52  C1  44  37  60  00  00  8E  53  C1 ----   `   R D7`   S 

  99: [10463.062228]   48  37  60  00  00  8E  53  C1  4C  37  60  00  00  8E  53  C1 ---- H7`   S L7`   S 

 100: [10463.062232]   50  37  60  00  00  8E  53  C1  54  37  60  00  00  8E  53  C1 ---- P7`   S T7`   S 

 101: [10463.062236]   58  37  60  00  00  8E  53  C1  60  37  60  00  00  8E  53  C1 ---- X7`   S `7`   S 

 102: [10463.062239]   64  37  60  00  00  8E  53  C1  68  37  60  00  00  8E  53  C1 ---- d7`   S h7`   S 

 103: [10463.062243]   6C  37  60  00  00  8E  53  C1  70  37  60  00  00  8E  53  C1 ---- l7`   S p7`   S 

 104: [10463.062247]   74  37  60  00  00  8E  53  C1  78  37  60  00  00  8E  53  C1 ---- t7`   S x7`   S 

 105: [10463.062251]   80  37  60  00  00  8E  53  C1  84  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 106: [10463.062254]   88  37  60  00  00  8E  53  C1  8C  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 107: [10463.062260]   90  37  60  00  00  8E  53  C1  94  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 108: [10463.062264]   98  37  60  00  00  8E  53  C1  A0  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 109: [10463.062268]   A4  37  60  00  00  8E  53  C1  A8  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 110: [10463.062272]   AC  37  60  00  00  8E  53  C1  B0  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 111: [10463.062275]   B4  37  60  00  00  8E  53  C1  B8  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 112: [10463.062279]   C0  37  60  00  00  8E  53  C1  C4  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 113: [10463.062283]   C8  37  60  00  00  8E  53  C1  CC  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 114: [10463.062287]   D0  37  60  00  00  8E  53  C1  D4  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 115: [10463.062291]   D8  37  60  00  00  8E  53  C1  E0  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 116: [10463.062294]   E4  37  60  00  00  8E  53  C1  E8  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 117: [10463.062298]   EC  37  60  00  00  8E  53  C1  F0  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 118: [10463.062302]   F4  37  60  00  00  8E  53  C1  F8  37  60  00  00  8E  53  C1 ----  7`   S  7`   S 

 119: [10463.062306]   00  38  60  00  00  8E  53  C1  04  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 120: [10463.062309]   08  38  60  00  00  8E  53  C1  0C  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 121: [10463.062313]   10  38  60  00  00  8E  53  C1  14  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 122: [10463.062317]   18  38  60  00  00  8E  53  C1  20  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 123: [10463.062321]   24  38  60  00  00  8E  53  C1  28  38  60  00  00  8E  53  C1 ---- $8`   S (8`   S 

 124: [10463.062324]   2C  38  60  00  00  8E  53  C1  30  38  60  00  00  8E  53  C1 ---- ,8`   S 08`   S 

 125: [10463.062328]   34  38  60  00  00  8E  53  C1  38  38  60  00  00  8E  53  C1 ---- 48`   S 88`   S 

 126: [10463.062332]   40  38  60  00  00  8E  53  C1  44  38  60  00  00  8E  53  C1 ---- @8`   S D8`   S 

 127: [10463.062336]   48  38  60  00  00  8E  53  C1  4C  38  60  00  00  8E  53  C1 ---- H8`   S L8`   S 

 128: [10463.062339]   50  38  60  00  00  8E  53  C1  54  38  60  00  00  8E  53  C1 ---- P8`   S T8`   S 

 129: [10463.062343]   58  38  60  00  00  8E  53  C1  60  38  60  00  00  8E  53  C1 ---- X8`   S `8`   S 

 130: [10463.062347]   64  38  60  00  00  8E  53  C1  68  38  60  00  00  8E  53  C1 ---- d8`   S h8`   S 

 131: [10463.062351]   6C  38  60  00  00  8E  53  C1  70  38  60  00  00  8E  53  C1 ---- l8`   S p8`   S 

 132: [10463.062354]   74  38  60  00  00  8E  53  C1  78  38  60  00  00  8E  53  C1 ---- t8`   S x8`   S 

 133: [10463.062358]   80  38  60  00  00  8E  53  C1  84  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 134: [10463.062362]   88  38  60  00  00  8E  53  C1  8C  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 135: [10463.062366]   90  38  60  00  00  8E  53  C1  94  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 136: [10463.062370]   98  38  60  00  00  8E  53  C1  A0  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 137: [10463.062373]   A4  38  60  00  00  8E  53  C1  A8  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 138: [10463.062377]   AC  38  60  00  00  8E  53  C1  B0  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 139: [10463.062381]   B4  38  60  00  00  8E  53  C1  B8  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 140: [10463.062385]   C0  38  60  00  00  8E  53  C1  C4  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 141: [10463.062388]   C8  38  60  00  00  8E  53  C1  CC  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 142: [10463.062392]   D0  38  60  00  00  8E  53  C1  D4  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 143: [10463.062396]   D8  38  60  00  00  8E  53  C1  E0  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 144: [10463.062400]   E4  38  60  00  00  8E  53  C1  E8  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 145: [10463.062403]   EC  38  60  00  00  8E  53  C1  F0  38  60  00  00  8E  53  C1 ----  8`   S  8`   S 

 146: [10463.062407]   98  C8  60  00  00  EF  52  C1  F8  38  60  00  00  8E  53  C1 ----   `   R  8`   S 

 147: [10463.062411]   00  39  60  00  00  8E  53  C1  04  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 148: [10463.062415]   08  39  60  00  00  8E  53  C1  0C  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 149: [10463.062419]   10  39  60  00  00  8E  53  C1  14  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 150: [10463.062422]   18  39  60  00  00  8E  53  C1  20  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 151: [10463.062426]   24  39  60  00  00  8E  53  C1  28  39  60  00  00  8E  53  C1 ---- $9`   S (9`   S 

 152: [10463.062430]   2C  39  60  00  00  8E  53  C1  30  39  60  00  00  8E  53  C1 ---- ,9`   S 09`   S 

 153: [10463.062434]   34  39  60  00  00  8E  53  C1  38  39  60  00  00  8E  53  C1 ---- 49`   S 89`   S 

 154: [10463.062437]   40  39  60  00  00  8E  53  C1  44  39  60  00  00  8E  53  C1 ---- @9`   S D9`   S 

 155: [10463.062441]   48  39  60  00  00  8E  53  C1  4C  39  60  00  00  8E  53  C1 ---- H9`   S L9`   S 

 156: [10463.062445]   50  39  60  00  00  8E  53  C1  54  39  60  00  00  8E  53  C1 ---- P9`   S T9`   S 

 157: [10463.062449]   58  39  60  00  00  8E  53  C1  60  39  60  00  00  8E  53  C1 ---- X9`   S `9`   S 

 158: [10463.062452]   64  39  60  00  00  8E  53  C1  68  39  60  00  00  8E  53  C1 ---- d9`   S h9`   S 

 159: [10463.062456]   6C  39  60  00  00  8E  53  C1  70  39  60  00  00  8E  53  C1 ---- l9`   S p9`   S 

 160: [10463.062460]   74  39  60  00  00  8E  53  C1  78  39  60  00  00  8E  53  C1 ---- t9`   S x9`   S 

 161: [10463.062464]   80  39  60  00  00  8E  53  C1  84  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 162: [10463.062467]   88  39  60  00  00  8E  53  C1  8C  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 163: [10463.062471]   90  39  60  00  00  8E  53  C1  94  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 164: [10463.062475]   98  39  60  00  00  8E  53  C1  A0  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 165: [10463.062479]   A4  39  60  00  00  8E  53  C1  A8  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 166: [10463.062482]   AC  39  60  00  00  8E  53  C1  B0  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 167: [10463.062486]   B4  39  60  00  00  8E  53  C1  B8  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 168: [10463.062490]   C0  39  60  00  00  8E  53  C1  C4  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 169: [10463.062494]   C8  39  60  00  00  8E  53  C1  CC  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 170: [10463.062497]   D0  39  60  00  00  8E  53  C1  D4  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 171: [10463.062501]   D8  39  60  00  00  8E  53  C1  E0  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 172: [10463.062505]   E4  39  60  00  00  8E  53  C1  E8  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 173: [10463.062509]   EC  39  60  00  00  8E  53  C1  F0  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 174: [10463.062513]   F4  39  60  00  00  8E  53  C1  F8  39  60  00  00  8E  53  C1 ----  9`   S  9`   S 

 175: [10463.062516]   00  3A  60  00  00  8E  53  C1  04  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 176: [10463.062520]   08  3A  60  00  00  8E  53  C1  0C  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 177: [10463.062524]   10  3A  60  00  00  8E  53  C1  14  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 178: [10463.062528]   18  3A  60  00  00  8E  53  C1  20  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 179: [10463.062531]   24  3A  60  00  00  8E  53  C1  28  3A  60  00  00  8E  53  C1 ---- $:`   S (:`   S 

 180: [10463.062535]   2C  3A  60  00  00  8E  53  C1  30  3A  60  00  00  8E  53  C1 ---- ,:`   S 0:`   S 

 181: [10463.062539]   34  3A  60  00  00  8E  53  C1  38  3A  60  00  00  8E  53  C1 ---- 4:`   S 8:`   S 

 182: [10463.062543]   40  3A  60  00  00  8E  53  C1  44  3A  60  00  00  8E  53  C1 ---- @:`   S D:`   S 

 183: [10463.062546]   48  3A  60  00  00  8E  53  C1  4C  3A  60  00  00  8E  53  C1 ---- H:`   S L:`   S 

 184: [10463.062550]   50  3A  60  00  00  8E  53  C1  54  3A  60  00  00  8E  53  C1 ---- P:`   S T:`   S 

 185: [10463.062554]   58  3A  60  00  00  8E  53  C1  60  3A  60  00  00  8E  53  C1 ---- X:`   S `:`   S 

 186: [10463.062558]   64  3A  60  00  00  8E  53  C1  68  3A  60  00  00  8E  53  C1 ---- d:`   S h:`   S 

 187: [10463.062562]   6C  3A  60  00  00  8E  53  C1  70  3A  60  00  00  8E  53  C1 ---- l:`   S p:`   S 

 188: [10463.062565]   74  3A  60  00  00  8E  53  C1  78  3A  60  00  00  8E  53  C1 ---- t:`   S x:`   S 

 189: [10463.062569]   80  3A  60  00  00  8E  53  C1  84  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 190: [10463.062573]   88  3A  60  00  00  8E  53  C1  8C  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 191: [10463.062577]   90  3A  60  00  00  8E  53  C1  94  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 192: [10463.062580]   98  3A  60  00  00  8E  53  C1  A0  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 193: [10463.062584]   A4  3A  60  00  00  8E  53  C1  A8  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 194: [10463.062588]   AC  3A  60  00  00  8E  53  C1  B0  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 195: [10463.062592]   B4  3A  60  00  00  8E  53  C1  B8  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 196: [10463.062595]   C0  3A  60  00  00  8E  53  C1  C4  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 197: [10463.062599]   C8  3A  60  00  00  8E  53  C1  40  CB  60  00  00  8E  52  C1 ----  :`   S @ `   R 

 198: [10463.062603]   78  CB  60  00  00  8E  52  C1  B0  CB  60  00  00  8E  52  C1 ---- x `   R   `   R 

 199: [10463.062607]   E8  CB  60  00  00  8E  52  C1  20  CC  60  00  00  8E  52  C1 ----   `   R   `   R 

 200: [10463.062610]   58  CC  60  00  00  8E  52  C1  90  CC  60  00  00  8E  52  C1 ---- X `   R   `   R 

 201: [10463.062614]   C8  CC  60  00  00  8E  52  C1  38  CD  60  00  00  8E  52  C1 ----   `   R 8 `   R 

 202: [10463.062618]   F4  3A  60  00  00  8E  53  C1  F8  3A  60  00  00  8E  53  C1 ----  :`   S  :`   S 

 203: [10463.062622]   00  3B  60  00  00  8E  53  C1  04  3B  60  00  00  8E  53  C1 ----  ;`   S  ;`   S 

 204: [10463.062625]   88  CE  60  00  00  8E  52  C1  0C  3B  60  00  00  8E  53  C1 ----   `   R  ;`   S 

 205: [10463.062629]   E0  CD  60  00  00  8E  52  C1  00  CD  60  00  00  8E  52  C1 ----   `   R   `   R 

 206: [10463.062633]   08  CB  60  00  00  8E  52  C1  50  CE  60  00  00  8E  52  C1 ----   `   R P `   R 

 207: [10463.062637]   18  CE  60  00  00  8E  52  C1  9C  CA  60  00  00  8E  52  C1 ----   `   R   `   R 

 208: [10463.062641]   64  CA  60  00  00  8E  52  C1  2C  CA  60  00  00  8E  52  C1 ---- d `   R , `   R 

 209: [10463.062644]   70  CD  60  00  00  8E  52  C1  A8  CD  60  00  00  8E  52  C1 ---- p `   R   `   R 

 210: [10463.062648] 

 211: [10463.062649] [   0] 0x00000060 : 0xc152cf3c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 212: [10463.062651] [   1] 0x00000060 : 0xc152cfd4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 213: [10463.062654] [   2] 0x00000060 : 0xc152d02c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 214: [10463.062656] [   3] 0x00000060 : 0xc152d14c, P[1] DPL[3] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 215: [10463.062659] [   4] 0x00000060 : 0xc152ceec, P[1] DPL[3] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 216: [10463.062661] [   5] 0x00000060 : 0xc152cef8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 217: [10463.062664] [   6] 0x00000060 : 0xc152cf04, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 218: [10463.062666] [   7] 0x00000060 : 0xc152ced8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 219: [10463.062668] [   8] 0x000000f8 : 0x00000000, P[1] DPL[0] Type[Task Gate] selector[index=001F, TI=0, RPL=0]

 220: [10463.062671] [   9] 0x00000060 : 0xc152cf10, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 221: [10463.062673] [   A] 0x00000060 : 0xc152cf1c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 222: [10463.062676] [   B] 0x00000060 : 0xc152cf24, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 223: [10463.062678] [   C] 0x00000060 : 0xc152cf2c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 224: [10463.062681] [   D] 0x00000060 : 0xc152d184, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 225: [10463.062683] [   E] 0x00000060 : 0xc152cf60, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 226: [10463.062685] [   F] 0x00000060 : 0xc152cf54, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 227: [10463.062688] [  10] 0x00000060 : 0xc152cec0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 228: [10463.062690] [  11] 0x00000060 : 0xc152cf34, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 229: [10463.062693] [  12] 0x00000060 : 0xc152cf48, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 230: [10463.062695] [  13] 0x00000060 : 0xc152cecc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 231: [10463.062697] [  14] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 232: [10463.062700] [  15] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 233: [10463.062702] [  16] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 234: [10463.062705] [  17] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 235: [10463.062707] [  18] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 236: [10463.062709] [  19] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 237: [10463.062712] [  1A] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 238: [10463.062714] [  1B] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 239: [10463.062717] [  1C] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 240: [10463.062719] [  1D] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 241: [10463.062721] [  1E] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 242: [10463.062724] [  1F] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 243: [10463.062726] [  20] 0x00000060 : 0xc152cad4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 244: [10463.062729] [  21] 0x00000060 : 0xc1533744, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 245: [10463.062731] [  22] 0x00000060 : 0xc1533748, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 246: [10463.062733] [  23] 0x00000060 : 0xc153374c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 247: [10463.062736] [  24] 0x00000060 : 0xc1533750, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 248: [10463.062738] [  25] 0x00000060 : 0xc1533754, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 249: [10463.062741] [  26] 0x00000060 : 0xc1533758, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 250: [10463.062743] [  27] 0x00000060 : 0xc1533760, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 251: [10463.062745] [  28] 0x00000060 : 0xc1533764, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 252: [10463.062748] [  29] 0x00000060 : 0xc1533768, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 253: [10463.062750] [  2A] 0x00000060 : 0xc153376c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 254: [10463.062753] [  2B] 0x00000060 : 0xc1533770, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 255: [10463.062755] [  2C] 0x00000060 : 0xc1533774, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 256: [10463.062757] [  2D] 0x00000060 : 0xc1533778, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 257: [10463.062760] [  2E] 0x00000060 : 0xc1533780, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 258: [10463.062764] [  2F] 0x00000060 : 0xc1533784, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 259: [10463.062766] [  30] 0x00000060 : 0xc1533788, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 260: [10463.062769] [  31] 0x00000060 : 0xc153378c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 261: [10463.062771] [  32] 0x00000060 : 0xc1533790, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 262: [10463.062773] [  33] 0x00000060 : 0xc1533794, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 263: [10463.062776] [  34] 0x00000060 : 0xc1533798, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 264: [10463.062778] [  35] 0x00000060 : 0xc15337a0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 265: [10463.062781] [  36] 0x00000060 : 0xc15337a4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 266: [10463.062783] [  37] 0x00000060 : 0xc15337a8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 267: [10463.062785] [  38] 0x00000060 : 0xc15337ac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 268: [10463.062788] [  39] 0x00000060 : 0xc15337b0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 269: [10463.062790] [  3A] 0x00000060 : 0xc15337b4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 270: [10463.062793] [  3B] 0x00000060 : 0xc15337b8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 271: [10463.062795] [  3C] 0x00000060 : 0xc15337c0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 272: [10463.062797] [  3D] 0x00000060 : 0xc15337c4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 273: [10463.062800] [  3E] 0x00000060 : 0xc15337c8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 274: [10463.062802] [  3F] 0x00000060 : 0xc15337cc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 275: [10463.062805] [  40] 0x00000060 : 0xc15337d0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 276: [10463.062807] [  41] 0x00000060 : 0xc15337d4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 277: [10463.062809] [  42] 0x00000060 : 0xc15337d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 278: [10463.062812] [  43] 0x00000060 : 0xc15337e0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 279: [10463.062814] [  44] 0x00000060 : 0xc15337e4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 280: [10463.062817] [  45] 0x00000060 : 0xc15337e8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 281: [10463.062819] [  46] 0x00000060 : 0xc15337ec, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 282: [10463.062821] [  47] 0x00000060 : 0xc15337f0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 283: [10463.062824] [  48] 0x00000060 : 0xc15337f4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 284: [10463.062826] [  49] 0x00000060 : 0xc15337f8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 285: [10463.062829] [  4A] 0x00000060 : 0xc1533800, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 286: [10463.062831] [  4B] 0x00000060 : 0xc1533804, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 287: [10463.062833] [  4C] 0x00000060 : 0xc1533808, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 288: [10463.062836] [  4D] 0x00000060 : 0xc153380c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 289: [10463.062838] [  4E] 0x00000060 : 0xc1533810, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 290: [10463.062841] [  4F] 0x00000060 : 0xc1533814, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 291: [10463.062843] [  50] 0x00000060 : 0xc1533818, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 292: [10463.062845] [  51] 0x00000060 : 0xc1533820, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 293: [10463.062848] [  52] 0x00000060 : 0xc1533824, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 294: [10463.062850] [  53] 0x00000060 : 0xc1533828, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 295: [10463.062853] [  54] 0x00000060 : 0xc153382c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 296: [10463.062855] [  55] 0x00000060 : 0xc1533830, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 297: [10463.062858] [  56] 0x00000060 : 0xc1533834, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 298: [10463.062860] [  57] 0x00000060 : 0xc1533838, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 299: [10463.062862] [  58] 0x00000060 : 0xc1533840, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 300: [10463.062865] [  59] 0x00000060 : 0xc1533844, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 301: [10463.062867] [  5A] 0x00000060 : 0xc1533848, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 302: [10463.062870] [  5B] 0x00000060 : 0xc153384c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 303: [10463.062872] [  5C] 0x00000060 : 0xc1533850, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 304: [10463.062874] [  5D] 0x00000060 : 0xc1533854, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 305: [10463.062877] [  5E] 0x00000060 : 0xc1533858, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 306: [10463.062879] [  5F] 0x00000060 : 0xc1533860, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 307: [10463.062882] [  60] 0x00000060 : 0xc1533864, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 308: [10463.062884] [  61] 0x00000060 : 0xc1533868, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 309: [10463.062886] [  62] 0x00000060 : 0xc153386c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 310: [10463.062889] [  63] 0x00000060 : 0xc1533870, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 311: [10463.062891] [  64] 0x00000060 : 0xc1533874, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 312: [10463.062894] [  65] 0x00000060 : 0xc1533878, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 313: [10463.062896] [  66] 0x00000060 : 0xc1533880, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 314: [10463.062898] [  67] 0x00000060 : 0xc1533884, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 315: [10463.062901] [  68] 0x00000060 : 0xc1533888, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 316: [10463.062903] [  69] 0x00000060 : 0xc153388c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 317: [10463.062906] [  6A] 0x00000060 : 0xc1533890, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 318: [10463.062908] [  6B] 0x00000060 : 0xc1533894, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 319: [10463.062910] [  6C] 0x00000060 : 0xc1533898, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 320: [10463.062913] [  6D] 0x00000060 : 0xc15338a0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 321: [10463.062915] [  6E] 0x00000060 : 0xc15338a4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 322: [10463.062918] [  6F] 0x00000060 : 0xc15338a8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 323: [10463.062920] [  70] 0x00000060 : 0xc15338ac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 324: [10463.062922] [  71] 0x00000060 : 0xc15338b0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 325: [10463.062925] [  72] 0x00000060 : 0xc15338b4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 326: [10463.062927] [  73] 0x00000060 : 0xc15338b8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 327: [10463.062930] [  74] 0x00000060 : 0xc15338c0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 328: [10463.062932] [  75] 0x00000060 : 0xc15338c4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 329: [10463.062935] [  76] 0x00000060 : 0xc15338c8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 330: [10463.062937] [  77] 0x00000060 : 0xc15338cc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 331: [10463.062939] [  78] 0x00000060 : 0xc15338d0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 332: [10463.062942] [  79] 0x00000060 : 0xc15338d4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 333: [10463.062944] [  7A] 0x00000060 : 0xc15338d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 334: [10463.062947] [  7B] 0x00000060 : 0xc15338e0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 335: [10463.062949] [  7C] 0x00000060 : 0xc15338e4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 336: [10463.062951] [  7D] 0x00000060 : 0xc15338e8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 337: [10463.062954] [  7E] 0x00000060 : 0xc15338ec, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 338: [10463.062956] [  7F] 0x00000060 : 0xc15338f0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 339: [10463.062959] [  80] 0x00000060 : 0xc152c898, P[1] DPL[3] Type[Trap Gate] selector[index=000C, TI=0, RPL=0]

 340: [10463.062961] [  81] 0x00000060 : 0xc15338f8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 341: [10463.062963] [  82] 0x00000060 : 0xc1533900, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 342: [10463.062966] [  83] 0x00000060 : 0xc1533904, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 343: [10463.062968] [  84] 0x00000060 : 0xc1533908, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 344: [10463.062971] [  85] 0x00000060 : 0xc153390c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 345: [10463.062973] [  86] 0x00000060 : 0xc1533910, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 346: [10463.062975] [  87] 0x00000060 : 0xc1533914, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 347: [10463.062978] [  88] 0x00000060 : 0xc1533918, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 348: [10463.062980] [  89] 0x00000060 : 0xc1533920, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 349: [10463.062983] [  8A] 0x00000060 : 0xc1533924, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 350: [10463.062985] [  8B] 0x00000060 : 0xc1533928, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 351: [10463.062987] [  8C] 0x00000060 : 0xc153392c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 352: [10463.062990] [  8D] 0x00000060 : 0xc1533930, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 353: [10463.062992] [  8E] 0x00000060 : 0xc1533934, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 354: [10463.062995] [  8F] 0x00000060 : 0xc1533938, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 355: [10463.062997] [  90] 0x00000060 : 0xc1533940, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 356: [10463.062999] [  91] 0x00000060 : 0xc1533944, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 357: [10463.063002] [  92] 0x00000060 : 0xc1533948, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 358: [10463.063004] [  93] 0x00000060 : 0xc153394c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 359: [10463.063007] [  94] 0x00000060 : 0xc1533950, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 360: [10463.063009] [  95] 0x00000060 : 0xc1533954, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 361: [10463.063011] [  96] 0x00000060 : 0xc1533958, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 362: [10463.063014] [  97] 0x00000060 : 0xc1533960, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 363: [10463.063016] [  98] 0x00000060 : 0xc1533964, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 364: [10463.063019] [  99] 0x00000060 : 0xc1533968, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 365: [10463.063021] [  9A] 0x00000060 : 0xc153396c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 366: [10463.063023] [  9B] 0x00000060 : 0xc1533970, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 367: [10463.063026] [  9C] 0x00000060 : 0xc1533974, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 368: [10463.063028] [  9D] 0x00000060 : 0xc1533978, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 369: [10463.063031] [  9E] 0x00000060 : 0xc1533980, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 370: [10463.063033] [  9F] 0x00000060 : 0xc1533984, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 371: [10463.063035] [  A0] 0x00000060 : 0xc1533988, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 372: [10463.063038] [  A1] 0x00000060 : 0xc153398c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 373: [10463.063040] [  A2] 0x00000060 : 0xc1533990, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 374: [10463.063043] [  A3] 0x00000060 : 0xc1533994, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 375: [10463.063045] [  A4] 0x00000060 : 0xc1533998, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 376: [10463.063047] [  A5] 0x00000060 : 0xc15339a0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 377: [10463.063050] [  A6] 0x00000060 : 0xc15339a4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 378: [10463.063052] [  A7] 0x00000060 : 0xc15339a8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 379: [10463.063055] [  A8] 0x00000060 : 0xc15339ac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 380: [10463.063057] [  A9] 0x00000060 : 0xc15339b0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 381: [10463.063059] [  AA] 0x00000060 : 0xc15339b4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 382: [10463.063062] [  AB] 0x00000060 : 0xc15339b8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 383: [10463.063064] [  AC] 0x00000060 : 0xc15339c0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 384: [10463.063067] [  AD] 0x00000060 : 0xc15339c4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 385: [10463.063069] [  AE] 0x00000060 : 0xc15339c8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 386: [10463.063071] [  AF] 0x00000060 : 0xc15339cc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 387: [10463.063074] [  B0] 0x00000060 : 0xc15339d0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 388: [10463.063076] [  B1] 0x00000060 : 0xc15339d4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 389: [10463.063079] [  B2] 0x00000060 : 0xc15339d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 390: [10463.063081] [  B3] 0x00000060 : 0xc15339e0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 391: [10463.063083] [  B4] 0x00000060 : 0xc15339e4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 392: [10463.063086] [  B5] 0x00000060 : 0xc15339e8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 393: [10463.063088] [  B6] 0x00000060 : 0xc15339ec, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 394: [10463.063091] [  B7] 0x00000060 : 0xc15339f0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 395: [10463.063093] [  B8] 0x00000060 : 0xc15339f4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 396: [10463.063095] [  B9] 0x00000060 : 0xc15339f8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 397: [10463.063098] [  BA] 0x00000060 : 0xc1533a00, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 398: [10463.063100] [  BB] 0x00000060 : 0xc1533a04, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 399: [10463.063103] [  BC] 0x00000060 : 0xc1533a08, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 400: [10463.063105] [  BD] 0x00000060 : 0xc1533a0c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 401: [10463.063107] [  BE] 0x00000060 : 0xc1533a10, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 402: [10463.063110] [  BF] 0x00000060 : 0xc1533a14, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 403: [10463.063112] [  C0] 0x00000060 : 0xc1533a18, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 404: [10463.063115] [  C1] 0x00000060 : 0xc1533a20, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 405: [10463.063117] [  C2] 0x00000060 : 0xc1533a24, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 406: [10463.063119] [  C3] 0x00000060 : 0xc1533a28, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 407: [10463.063122] [  C4] 0x00000060 : 0xc1533a2c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 408: [10463.063124] [  C5] 0x00000060 : 0xc1533a30, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 409: [10463.063127] [  C6] 0x00000060 : 0xc1533a34, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 410: [10463.063129] [  C7] 0x00000060 : 0xc1533a38, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 411: [10463.063131] [  C8] 0x00000060 : 0xc1533a40, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 412: [10463.063134] [  C9] 0x00000060 : 0xc1533a44, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 413: [10463.063136] [  CA] 0x00000060 : 0xc1533a48, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 414: [10463.063139] [  CB] 0x00000060 : 0xc1533a4c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 415: [10463.063141] [  CC] 0x00000060 : 0xc1533a50, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 416: [10463.063143] [  CD] 0x00000060 : 0xc1533a54, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 417: [10463.063146] [  CE] 0x00000060 : 0xc1533a58, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 418: [10463.063148] [  CF] 0x00000060 : 0xc1533a60, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 419: [10463.063151] [  D0] 0x00000060 : 0xc1533a64, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 420: [10463.063153] [  D1] 0x00000060 : 0xc1533a68, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 421: [10463.063155] [  D2] 0x00000060 : 0xc1533a6c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 422: [10463.063158] [  D3] 0x00000060 : 0xc1533a70, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 423: [10463.063160] [  D4] 0x00000060 : 0xc1533a74, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 424: [10463.063163] [  D5] 0x00000060 : 0xc1533a78, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 425: [10463.063165] [  D6] 0x00000060 : 0xc1533a80, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 426: [10463.063167] [  D7] 0x00000060 : 0xc1533a84, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 427: [10463.063170] [  D8] 0x00000060 : 0xc1533a88, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 428: [10463.063172] [  D9] 0x00000060 : 0xc1533a8c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 429: [10463.063175] [  DA] 0x00000060 : 0xc1533a90, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 430: [10463.063177] [  DB] 0x00000060 : 0xc1533a94, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 431: [10463.063179] [  DC] 0x00000060 : 0xc1533a98, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 432: [10463.063182] [  DD] 0x00000060 : 0xc1533aa0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 433: [10463.063184] [  DE] 0x00000060 : 0xc1533aa4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 434: [10463.063187] [  DF] 0x00000060 : 0xc1533aa8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 435: [10463.063189] [  E0] 0x00000060 : 0xc1533aac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 436: [10463.063192] [  E1] 0x00000060 : 0xc1533ab0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 437: [10463.063194] [  E2] 0x00000060 : 0xc1533ab4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 438: [10463.063196] [  E3] 0x00000060 : 0xc1533ab8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 439: [10463.063199] [  E4] 0x00000060 : 0xc1533ac0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 440: [10463.063201] [  E5] 0x00000060 : 0xc1533ac4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 441: [10463.063203] [  E6] 0x00000060 : 0xc1533ac8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 442: [10463.063206] [  E7] 0x00000060 : 0xc152cb40, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 443: [10463.063208] [  E8] 0x00000060 : 0xc152cb78, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 444: [10463.063211] [  E9] 0x00000060 : 0xc152cbb0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 445: [10463.063213] [  EA] 0x00000060 : 0xc152cbe8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 446: [10463.063215] [  EB] 0x00000060 : 0xc152cc20, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 447: [10463.063218] [  EC] 0x00000060 : 0xc152cc58, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 448: [10463.063220] [  ED] 0x00000060 : 0xc152cc90, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 449: [10463.063223] [  EE] 0x00000060 : 0xc152ccc8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 450: [10463.063225] [  EF] 0x00000060 : 0xc152cd38, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 451: [10463.063227] [  F0] 0x00000060 : 0xc1533af4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 452: [10463.063230] [  F1] 0x00000060 : 0xc1533af8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 453: [10463.063232] [  F2] 0x00000060 : 0xc1533b00, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 454: [10463.063235] [  F3] 0x00000060 : 0xc1533b04, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 455: [10463.063237] [  F4] 0x00000060 : 0xc152ce88, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 456: [10463.063239] [  F5] 0x00000060 : 0xc1533b0c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 457: [10463.063242] [  F6] 0x00000060 : 0xc152cde0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 458: [10463.063244] [  F7] 0x00000060 : 0xc152cd00, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 459: [10463.063247] [  F8] 0x00000060 : 0xc152cb08, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 460: [10463.063249] [  F9] 0x00000060 : 0xc152ce50, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 461: [10463.063251] [  FA] 0x00000060 : 0xc152ce18, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 462: [10463.063254] [  FB] 0x00000060 : 0xc152ca9c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 463: [10463.063256] [  FC] 0x00000060 : 0xc152ca64, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 464: [10463.063259] [  FD] 0x00000060 : 0xc152ca2c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 465: [10463.063261] [  FE] 0x00000060 : 0xc152cd70, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 466: [10463.063263] [  FF] 0x00000060 : 0xc152cda8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

 467: [10463.063754] ###################################################################


最新试验代码

   1: #include<linux/init.h>

   2: #include<linux/module.h>

   3: #include<linux/list.h>

   4: #include<linux/sched.h>

   5: #include<linux/proc_fs.h>

   6: #include<linux/mm_types.h>

   7: #include<linux/fs.h>

   8: #include<linux/path.h>

   9: #include<linux/dcache.h>

  10: #include<linux/mm.h>

  11: #include<linux/mmzone.h>

  12: #include<linux/vmalloc.h>

  13: #include<asm/desc.h>

  14: #include<linux/smp.h>

  15:  

  16: MODULE_LICENSE("GPL");

  17:  

  18: struct tss_segment_32 {

  19:     u32 prev_task_link;

  20:     u32 esp0;

  21:     u32 ss0;

  22:     u32 esp1;

  23:     u32 ss1;

  24:     u32 esp2;

  25:     u32 ss2;

  26:     u32 cr3;

  27:     u32 eip;

  28:     u32 eflags;

  29:     u32 eax;

  30:     u32 ecx;

  31:     u32 edx;

  32:     u32 ebx;

  33:     u32 esp;

  34:     u32 ebp;

  35:     u32 esi;

  36:     u32 edi;

  37:     u32 es;

  38:     u32 cs;

  39:     u32 ss;

  40:     u32 ds;

  41:     u32 fs;

  42:     u32 gs;

  43:     u32 ldt_selector;

  44:     u16 t;

  45:     u16 io_map;

  46: };

  47:  

  48: void printBinary(char* name, char* buffer, unsigned long size)

  49: {

  50:     int i;

  51:  

  52:     printk("%s\n", name);

  53:     for (i = 0; i < size; ++i)

  54:     {

  55:         printk("    %02X", *(buffer + i));

  56:         if (i % 16 == 0)

  57:         {

  58:             printk("\n");

  59:         }

  60:     }

  61:     if (size % 16 != 0)

  62:     {

  63:         printk("\n");

  64:     }

  65: }

  66:  

  67: void printRawData(unsigned long size, const u_char* data)

  68: {

  69:     if (size == 0)

  70:     {

  71:         return;

  72:     }

  73:  

  74:     printk("Memory at 0x%08x\n", (u32)data);

  75:     unsigned long i = 0;

  76:     for (i=0;i<16;i++)

  77:     {

  78:         printk("%4X", i);

  79:     }

  80:     printk("\n");

  81:     for (i=0;i<16;i++)

  82:     {

  83:         printk("%4s", "__");

  84:     }

  85:  

  86:     char lineSummary[17] = {0,};

  87:     unsigned long pos = 0;

  88:     for (i=0;i<size;i++)

  89:     {

  90:         if ((pos = i % 16) == 0)

  91:         {

  92:             if (i != 0)

  93:             {

  94:                 printk(" ---- %s\n", lineSummary);

  95:                 memset(lineSummary, 0, 17);

  96:             }

  97:             else

  98:             {

  99:                 printk("\n");

 100:             }        

 101:         }

 102:  

 103:         printk("  %02X", *(data + i));

 104:  

 105:         if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)

 106:         {

 107:             lineSummary[pos] = *(data + i);

 108:         }

 109:         else

 110:         {

 111:             lineSummary[pos] = ' ';

 112:         }

 113:     }

 114:  

 115:     if (size % 16 != 0)

 116:     {

 117:         for (i=0;i<16 - (size%16);i++)

 118:         {

 119:             printk("    ");

 120:         }

 121:     }

 122:  

 123:     printk(" ---- %s\n", lineSummary);

 124:     printk("\n");    

 125: }

 126:  

 127: void printBuddySystemInfo(struct free_area* free_area)

 128: {

 129:     int j;

 130:     struct free_area* pfreearea = free_area;

 131:     if (pfreearea == NULL)

 132:         return;

 133:     for (j = 0; j < MAX_ORDER; ++j)

 134:     {

 135:         //printBinary("free_area", (char*)(pfreearea + j), sizeof(struct free_area));

 136:         // printRawData(sizeof(struct free_area), (char*)(pfreearea + j));

 137:         printk("%5d", (pfreearea + j)->nr_free);    

 138:     }

 139:     printk("\n");

 140: }

 141:  

 142: void printPagesetInfo(struct per_cpu_pageset *pageset)

 143: {

 144:     printk("pageset: 0x%08x\n", pageset);

 145:     printRawData(sizeof(*pageset), pageset);

 146:     // struct per_cpu_pages pages = pageset->pcp;

 147:     // printk("Pageset Info:\n");

 148:  

 149:     // printk("    count:\t\t%d\n", pages.count);

 150:     // printk("    high:\t\t%d\n", pages.high);

 151:     // printk("    batch:\t\t%d\n", pages.batch);

 152: }

 153:  

 154: int analyzeUMANode()

 155: {

 156:     int i,j;

 157:     unsigned long node_present_pages;

 158:     unsigned long node_spanned_pages;

 159:     struct pglist_data* node_0;

 160:     

 161:     struct zone* pzone;

 162:     unsigned long start_pfn;

 163:     unsigned long present_pages;

 164:     unsigned long spanned_pages;

 165:     

 166:     // struct page* first_page;

 167:  

 168:  

 169:     printk("###################################################################\n");

 170:  

 171:     // printk(KERN_INFO "/proc/%s created\n", PROCFS_NAME);

 172:     node_0 = NODE_DATA(0);

 173:     printk("node_0 at 0x%08x\n", node_0);

 174:     if (node_0 == NULL)

 175:         return 0;

 176:  

 177:     node_present_pages = node_0->node_present_pages;

 178:     node_spanned_pages = node_0->node_spanned_pages;

 179:     printk("present pages: %d\n", node_present_pages);

 180:     printk("spanned pages: %d\n", node_spanned_pages);

 181:     

 182:     for (i = 0; i < MAX_NR_ZONES; ++i)

 183:     {

 184:         pzone = &node_0->node_zones[i];

 185:         if (pzone == NULL)

 186:             continue;

 187:         printk("Zone %d Name: %s\n", i, pzone->name);

 188:         start_pfn = pzone->zone_start_pfn;

 189:         printk("start_pfn : %d\n", start_pfn);

 190:         present_pages = pzone->present_pages;

 191:         printk("present_pages : %d\n", present_pages);

 192:         spanned_pages = pzone->spanned_pages;

 193:         printk("spanned_pages : %d\n", spanned_pages);

 194:         printk("%8d MB - %8d MB\n", start_pfn * PAGE_SIZE / 1024 / 1024, (start_pfn + spanned_pages) * PAGE_SIZE / 1024 / 1024);

 195:         

 196:         printBuddySystemInfo(&pzone->free_area);

 197:         printPagesetInfo(pzone->pageset);

 198:  

 199:     }

 200:     // first_page = mem_map;

 201:     // int i;

 202:     // for (i = 0; i < node_present_pages; ++i)

 203:     // {

 204:     //     unsigned long bLocked = (first_page + i)->flags == PG_locked;

 205:     //     if (!bLocked)

 206:     //     {

 207:     //         // printk("Page->virtual : 0x%08x, flags = 0x%08x\n", page_address(first_page + i), (first_page + i)->flags);

 208:     //     }

 209:     // }

 210:     return 0;

 211: }

 212:  

 213: int analyzeProcesses()

 214: {

 215:     struct task_struct *pos;

 216:     struct list_head *current_head;

 217:     int count=0;

 218:  

 219:     struct vm_area_struct* vma;

 220:     bool bFirst;

 221:     struct file* vm_file;

 222:     char szBuff[1024] = {0};

 223:     char szTmp[1024] = {0};

 224:  

 225:     struct dentry* vm_dentry;

 226:     struct dentry* parent;

 227:  

 228:     unsigned long vm_flags;

 229:         

 230:     printk("Traversal module is working..\n");

 231:         // printk("Parameters:\n");

 232:         // printk("%20s\t0x%08x\n", "buffer", buffer);

 233:         // printk("%20s\t0x%08x\n", "buffer_pos", buffer_pos);

 234:         // printk("%20s\t0x%08x\n", "offset", offset);

 235:         // printk("%20s\t0x%08x\n", "buffer_len", buffer_len);

 236:         // printk("%20s\t0x%08x\n", "eof", eof);

 237:         // printk("%20s\t0x%08x\n", "data", data);

 238:  

 239:     current_head=&(current->tasks);

 240:     if (current_head == NULL)

 241:         return 0;

 242:     list_for_each_entry(pos,current_head,tasks)

 243:     {

 244:         count++;

 245:         if (strcmp(pos->comm, "gnome-terminal") != 0)

 246:         {

 247:             continue;

 248:         }

 249:         // ret += sprintf(buffer+ret, "[process %d]: %s\'s pid is %d\n",count,pos->comm,pos->pid);

 250:         // ret += sprintf(buffer + ret, "%40s:\n", pos->comm);

 251:         // ret += sprintf(buffer + ret, "\t%20s:\t%d\n", "pid", pos->pid);

 252:         // ret += sprintf(buffer + ret, "\t%20s:\t%d\n", "state", pos->state);

 253:         // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "exec_start", pos->se.exec_start);

 254:         // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "sum_exec_runtime", pos->se.sum_exec_runtime);

 255:         // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "vruntime", pos->se.vruntime);

 256:         // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "prev_sum_exec_runtime", pos->se.prev_sum_exec_runtime);

 257:         // printk("%40s:\n", pos->comm);

 258:         // printk("\t%20s:\t%d\n", "pid", pos->pid);

 259:         // printk("\t%20s:\t%d\n", "state", pos->state);

 260:         // printk("\t%20s:\t0x%016llx\n", "exec_start", pos->se.exec_start);

 261:         // printk("\t%20s:\t0x%016llx\n", "sum_exec_runtime", pos->se.sum_exec_runtime);

 262:         // printk("\t%20s:\t0x%016llx\n", "vruntime", pos->se.vruntime);

 263:         // printk("\t%20s:\t0x%016llx\n", "prev_sum_exec_runtime", pos->se.prev_sum_exec_runtime);

 264:         if (pos == NULL)

 265:             continue;

 266:         if (pos->mm != NULL && pos->mm->mmap != NULL)

 267:            {

 268:             // printk("[process %d]: mmap is 0x%08x\n", pos->pid, pos->mm->mmap);

 269:             vma = pos->mm->mmap;

 270:             bFirst = true;

 271:             while (vma != NULL && (vma != pos->mm->mmap || bFirst))

 272:             {

 273:                 vm_file = vma->vm_file;

 274:                 if (vm_file != NULL)

 275:                 {

 276:                     printk("\t0x%08x - 0x%08x\n", vma->vm_start, vma->vm_end);                        

 277:                     

 278:                     vm_dentry = vm_file->f_dentry;

 279:                     if (vm_dentry != NULL)

 280:                     {

 281:                         parent = vm_dentry;

 282:                         while (parent != NULL && strcmp(parent->d_name.name, "/") != 0)

 283:                         {

 284:                             //printk("\t%20s:\t%s\n", "name", parent->d_name.name);

 285:                             strcpy(szTmp, szBuff);

 286:                             memset(szBuff, 0, 1024);

 287:                             sprintf(szBuff, "%s/%s", parent->d_name.name, szTmp);

 288:                             parent = parent->d_parent;

 289:                         }

 290:                         szBuff[strlen(szBuff) - 1] = 0;

 291:                         printk("\t%20s:\t/%s\n", "name", szBuff);

 292:                     }

 293:                     vm_flags = vma->vm_flags;

 294:                     printk("%d\n", vm_flags);

 295:                     // memset(szBuff, 0, 1024);

 296:                     // if (vm_flags & VM_READ != 0)

 297:                     // {

 298:                     //     strcpy(szTmp, szBuff);

 299:                     //     memset(szBuff, 0, 1024);

 300:                     //     sprintf(szBuff, "%s VM_READ", szTmp);

 301:                     // }

 302:                     // if (vm_flags & VM_WRITE != 0)

 303:                     // {

 304:                     //     strcpy(szTmp, szBuff);

 305:                     //     memset(szBuff, 0, 1024);

 306:                     //     sprintf(szBuff, "%s VM_WRITE", szTmp);

 307:                     // }

 308:                     // if (vm_flags & VM_EXEC != 0)

 309:                     // {

 310:                     //     strcpy(szTmp, szBuff);

 311:                     //     memset(szBuff, 0, 1024);

 312:                     //     sprintf(szBuff, "%s VM_EXEC", szTmp);

 313:                     // }

 314:                     // if (vm_flags & VM_SHARED != 0)

 315:                     // {

 316:                     //     strcpy(szTmp, szBuff);

 317:                     //     memset(szBuff, 0, 1024);

 318:                     //     sprintf(szBuff, "%s VM_SHARED", szTmp);

 319:                     // }

 320:                     // printk("\t%20s:\t%s\n", "FLAGS", szBuff);

 321:                     printk("\n");

 322:                 }

 323:                 bFirst = false;

 324:                 vma = vma->vm_next;

 325:             }

 326:            }    

 327:     }

 328:  

 329:     return 0;    /* everything is ok */

 330: }

 331:  

 332: void dumpTSS(struct tss_segment_32* tss)

 333: {

 334:     printk("TSS:\n");

 335:     printk("\t%16s : 0x%08X\n", "prev_task_link", tss->prev_task_link);

 336:     printk("\t%16s : 0x%08X\n", "esp0",tss->esp0);

 337:     printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ss0", tss->ss0, tss->ss0 >> 3, tss->ss0&0x0004, tss->ss0&0x0003);

 338:     printk("\t%16s : 0x%08X\n", "esp1",tss->esp1);

 339:     printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ss1", tss->ss1, tss->ss1 >> 3, tss->ss1&0x0004, tss->ss1&0x0003);

 340:     printk("\t%16s : 0x%08X\n", "esp2",tss->esp2);

 341:     printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ss2", tss->ss2, tss->ss2 >> 3, tss->ss2&0x0004, tss->ss2&0x0003);

 342:     printk("\t%16s : 0x%08X\n", "cr3",tss->cr3);

 343:     printk("\t%16s : 0x%08X\n", "eip",tss->eip);

 344:     printk("\t%16s : 0x%08X\n", "eflags",tss->eflags);

 345:     printk("\t%16s : 0x%08X\n", "eax",tss->eax);

 346:     printk("\t%16s : 0x%08X\n", "ecx",tss->ecx);

 347:     printk("\t%16s : 0x%08X\n", "edx",tss->edx);

 348:     printk("\t%16s : 0x%08X\n", "ebx",tss->ebx);

 349:     printk("\t%16s : 0x%08X\n", "esp",tss->esp);

 350:     printk("\t%16s : 0x%08X\n", "ebp",tss->ebp);

 351:     printk("\t%16s : 0x%08X\n", "esi",tss->esi);

 352:     printk("\t%16s : 0x%08X\n", "edi",tss->edi);

 353:     printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "es", tss->es, tss->es >> 3, tss->es&0x0004, tss->es&0x0003);

 354:     printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "cs", tss->cs, tss->cs >> 3, tss->cs&0x0004, tss->cs&0x0003);

 355:     printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ss", tss->ss, tss->ss >> 3, tss->ss&0x0004, tss->ss&0x0003);

 356:     printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ds", tss->ds, tss->ds >> 3, tss->ds&0x0004, tss->ds&0x0003);

 357:     printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "fs", tss->fs, tss->fs >> 3, tss->fs&0x0004, tss->fs&0x0003);

 358:     printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "gs", tss->gs, tss->gs >> 3, tss->gs&0x0004, tss->gs&0x0003);

 359:     printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ldt_selector", tss->ldt_selector, tss->ldt_selector >> 3, tss->ldt_selector&0x0004, tss->ldt_selector&0x0003);

 360:     printk("\t%16s : 0x%04X\n", "t",tss->t);

 361:     printk("\t%16s : 0x%04X\n", "io_map",tss->io_map);

 362:     printRawData(0x40, tss + tss->io_map);

 363:     printk("\n");

 364: }

 365:  

 366: void analyzeGDTEntry(char* buffer)

 367: {

 368:     u32 limit;

 369:     u32 base;

 370:     u8 type;

 371:     u8 dpl;

 372:     u8 granularity;

 373:     u8 systemFlag;

 374:     u8 present;

 375:     u8 dbFlag;

 376:  

 377:     granularity = ((*(u8*)(buffer + 6)) & 0x80) >> 7;

 378:     dbFlag = ((*(u8*)(buffer + 6)) & 0x40) >> 6;

 379:  

 380:     present = ((*(u8*)(buffer + 5)) & 0x80) >> 7;

 381:     systemFlag = ((*(u8*)(buffer + 5)) & 0x10) >> 4;

 382:  

 383:     dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5;

 384:     type = ((*(u8*)(buffer + 5)) & 0x0F);

 385:  

 386:     limit = *(u16*)buffer;

 387:     limit += ((*(u8*)(buffer + 6)) & 0x0F) << 16;

 388:  

 389:     if (granularity == 1)

 390:     {

 391:         limit = ((limit + 1) << 12) - 1;

 392:     }

 393:  

 394:     base = 0;

 395:     base += *(u16*)(buffer + 2);

 396:     base += (*(u8*)(buffer + 4)) << 16;

 397:     base += (*(u8*)(buffer + 7)) << 24;

 398:  

 399:     if (limit == 0)

 400:     {

 401:         printk("[null]\n");

 402:     }

 403:     else

 404:     {

 405:         printk("0x%08x : 0x%08x, ", base, base + limit);

 406:         printk("G[%d] ", granularity);

 407:         printk("D/B[%d] ", dbFlag);

 408:         printk("P[%d] ", present);

 409:         printk("DPL[%d] ", dpl);

 410:         printk("S[%d] ", systemFlag);

 411:         printk("Type[%2d] ", type);

 412:         if (systemFlag == 1)

 413:         {

 414:             if ((type & 0x08) != 0 )

 415:             {

 416:                 // Code

 417:                 printk("Code[");

 418:                 if ((type & 0x04) != 0)

 419:                 {

 420:                     printk("Conforming ");

 421:                 }

 422:                 if ((type & 0x02) != 0)

 423:                 {

 424:                     printk("Read-Enable ");

 425:                 }

 426:                 if ((type & 0x01) != 0)

 427:                 {

 428:                     printk("Accessed ");

 429:                 }

 430:                 printk("]");

 431:             }

 432:             else

 433:             {

 434:                 // Data

 435:                 printk("Data[");

 436:                 if ((type & 0x04) != 0)

 437:                 {

 438:                     printk("Expand-Down ");

 439:                 }

 440:                 if ((type & 0x02) != 0)

 441:                 {

 442:                     printk("Write-Enable ");

 443:                 }

 444:                 if ((type & 0x01) != 0)

 445:                 {

 446:                     printk("Accessed ");

 447:                 }

 448:                 printk("]");

 449:             }

 450:         }

 451:         else

 452:         {

 453:             if (type == 0x02)

 454:             {

 455:                 printk("[LDT]");

 456:             }

 457:             else if (type == 0x05)

 458:             {

 459:                 printk("[Task Gate]");

 460:             }

 461:             else if (type == 0x09)

 462:             {

 463:                 printk("[32-Bit TSS(Available)]");

 464:                 struct tss_segment_32 tss;

 465:                 memcpy(&tss, base, sizeof(tss));

 466:                 dumpTSS(&tss);

 467:             }

 468:             else if (type == 0x0B)

 469:             {

 470:                 printk("[32-Bit TSS(Busy)]");

 471:                 struct tss_segment_32 tss;

 472:                 memcpy(&tss, base, sizeof(tss));

 473:                 dumpTSS(&tss);

 474:             }            

 475:             else if (type == 0x0C)

 476:             {

 477:                 printk("[32-Bit Call Gate]");

 478:             }

 479:             else if (type == 0x0E)

 480:             {

 481:                 printk("[32-Bit Interrupt Gate]");

 482:             }

 483:             else if (type == 0x0F)

 484:             {

 485:                 printk("[32-Bit Trap Gate]");

 486:             }

 487:         }

 488:         

 489:         printk("\n");

 490:     }

 491:  

 492:  

 493: }

 494:  

 495: void analyzeTLS(char* buffer)

 496: {

 497:     u32 limit;

 498:     u32 base;

 499:     u8 type;

 500:     u8 dpl;

 501:     u8 granularity;

 502:     u8 systemFlag;

 503:     u8 present;

 504:     u8 dbFlag;

 505:  

 506:     granularity = ((*(u8*)(buffer + 6)) & 0x80) >> 7;

 507:     dbFlag = ((*(u8*)(buffer + 6)) & 0x40) >> 6;

 508:  

 509:     present = ((*(u8*)(buffer + 5)) & 0x80) >> 7;

 510:     systemFlag = ((*(u8*)(buffer + 5)) & 0x10) >> 4;

 511:  

 512:     dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5;

 513:     type = ((*(u8*)(buffer + 5)) & 0x0F);

 514:  

 515:     limit = *(u16*)buffer;

 516:     limit += ((*(u8*)(buffer + 6)) & 0x0F) << 16;

 517:  

 518:     if (granularity == 1)

 519:     {

 520:         limit = ((limit + 1) << 12) - 1;

 521:     }

 522:  

 523:     

 524:  

 525:     base = 0;

 526:     base += *(u16*)(buffer + 2);

 527:     base += (*(u8*)(buffer + 4)) << 16;

 528:     base += (*(u8*)(buffer + 7)) << 24;

 529:  

 530:     printk("0x%08x : 0x%08x, ", base, base + limit);

 531:  

 532:     printk("TLS:%x\n", limit);

 533:     printRawData(0x100, (char*)base);

 534: }

 535:  

 536: void analyzeGDT(u32 size, char* buffer)

 537: {

 538:     int i;

 539:     for (i = 0; i < size; i += 8)

 540:     {

 541:         printk("[%4X] ", i/8);        

 542:         analyzeGDTEntry(buffer + i);

 543:     }

 544:  

 545:     analyzeTLS(buffer + 6*8);

 546: }

 547:  

 548: void analyzeIDTEntry(char* buffer)

 549: {

 550:     u32 offset;

 551:     u32 selector;

 552:     u8 type;

 553:     u8 dpl;

 554:     u8 present;

 555:  

 556:     present = ((*(u8*)(buffer + 5)) & 0x80) >> 7;

 557:     dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5;

 558:     type = ((*(u8*)(buffer + 5)) & 0x1F);

 559:  

 560:     offset = *(u16*)buffer;

 561:     offset += (*(u16*)(buffer + 6)) << 16;

 562:  

 563:     selector = *(u16*)(buffer + 2);

 564:  

 565:     if (type == 0x0E)

 566:     {

 567:         // Interrupt Gate

 568:         printk("0x%08x[index=%04X, TI=%d, RPL=%d] : 0x%08x, ", selector, selector >> 3, selector&0x0004, selector&0x0003, offset);

 569:         printk("P[%d] ", present);

 570:         printk("DPL[%d] ", dpl);

 571:         printk("Type[%16s] ", "Interrupt Gate");

 572:         printk("\n");

 573:     }

 574:     else if (type == 0x0F)

 575:     {

 576:         // Trap Gate

 577:         printk("0x%08x[index=%04X, TI=%d, RPL=%d] : 0x%08x, ", selector, selector >> 3, selector&0x0004, selector&0x0003, offset);

 578:         printk("P[%d] ", present);

 579:         printk("DPL[%d] ", dpl);

 580:         printk("Type[%16s] ", "Trap Gate");

 581:         printk("\n");

 582:     }

 583:     else if (type == 0x05)

 584:     {

 585:         // Task Gate

 586:         printk("0x%08x[index=%04X, TI=%d, RPL=%d] : 0x%08x, ", selector, selector >> 3, selector&0x0004, selector&0x0003, offset);

 587:         printk("P[%d] ", present);

 588:         printk("DPL[%d] ", dpl);

 589:         printk("Type[%16s] ", "Task Gate");

 590:         printk("\n");

 591:     }

 592:     else

 593:     {

 594:         printk("[null]\n");

 595:     }

 596: }

 597:  

 598: void analyzeIDT(u32 size, char* buffer)

 599: {

 600:     int i;

 601:     for (i = 0; i < size; i += 8)

 602:     {

 603:         printk("[%4X] ", i/8);    

 604:         analyzeIDTEntry(buffer + i);

 605:     }

 606: }

 607:  

 608: #define getNormalReg(reg, val) asm("movl %%"#reg",%0" : "=r" (val));

 609:  

 610: #define dumpNormalReg(reg) {u32 val;getNormalReg(reg, val); printk("%08s:0x%08X\n", ""#reg"", val);}

 611:  

 612: #define dumpLDT() {u32 val; asm("sldt %0" : "=r"(val)); printk("%08s:0x%08X\n", "ldt", val);}

 613: #define dumpTSS() {u32 val; asm("str %0" : "=r"(val));  printk("%08s:0x%08X\n", "tss", val);}

 614:  

 615: #define dumpGDT() {char gdt[6]; \

 616:     asm("sgdt %0" : "=m"(gdt)); \ 

 617:     printRawData(6, gdt); \

 618:     printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt)); \ 

 619:     printRawData((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2))); \ 

 620:     analyzeGDT((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2)));}

 621:  

 622: #define dumpIDT() {char idt[6]; \

 623:     asm("sidt %0" : "=m"(idt)); \ 

 624:     printRawData(6, idt); \

 625:     printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt)); \ 

 626:     printRawData((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2))); \ 

 627:     analyzeIDT((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2)));}

 628:  

 629: static int pslist_init()

 630: {

 631:     // analyzeUMANode();

 632:     // analyzeProcesses();

 633:     

 634:     // asm("mov %%cr0, %%eax;":"=a"(eax));

 635:     // printk("%08s:0x%08X\n", "cr0", eax);

 636:  

 637:     printk("###################################################################\n");

 638:  

 639:     int cpu = smp_processor_id();

 640:     struct desc_struct *gdt = get_cpu_gdt_table(cpu);

 641:     printRawData(sizeof(*gdt), gdt);

 642:  

 643:     dumpNormalReg(cr0);

 644:     dumpNormalReg(cr2);

 645:     dumpNormalReg(cr3);

 646:  

 647:     dumpNormalReg(eax);

 648:     dumpNormalReg(ebx);

 649:     dumpNormalReg(ecx);

 650:     dumpNormalReg(edx);

 651:  

 652:     dumpNormalReg(esp);

 653:     dumpNormalReg(ebp);

 654:     

 655:     dumpNormalReg(esi);

 656:     dumpNormalReg(edi);

 657:  

 658:     dumpTSS();

 659:     dumpLDT();

 660:  

 661:     dumpGDT();

 662:     dumpIDT();

 663:  

 664:     return 0;

 665: }

 666:  

 667: static void pslist_exit()

 668: {

 669:     printk("###################################################################\n");

 670: }

 671:  

 672:  

 673:  

 674: module_init(pslist_init);

 675: module_exit(pslist_exit);

通过Module读取寄存器的值的更多相关文章

  1. 嵌入式 Linux应用程序如何读取(修改)芯片寄存器的值

    这一问题来自项目中一个实际的需求:我需要在Linux启动之后,确认我指定的芯片寄存器是否与我在uboot的配置一致. 举个例子:寄存器地址:0x20000010负责对DDR2的时序配置,该寄存器是在u ...

  2. GDB 修改当前判断函数的返回值(即修改寄存器的值)的方法

    工作中遇到的问题: 在GDB调试时要进入下边该判断后边的函数,而m_EtherDecode.Chk_MakeSure_IP_Pkt(pPacket,dwPacketLen)的返回值是false,所以需 ...

  3. 读取当前键值,并赋值给LED

    /********************************* 代码功能:读取当前键值,并赋值给LED 使用函数: digitalRead(数字输入端口号); 创作时间:2016*10*07 作 ...

  4. java properties读取与设值

    import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream; ...

  5. Python批量修改寄存器的值

    在写代码过程中,我们修改代码中寄存器的值,但是有时寄存器的数据较多,手动修改容易出现错误而且花费的时间长 这是一段寄存器的配置值: 0x00, 0x34  0x35, 0x25  0x10, 0xd4 ...

  6. Vivado寄存器初始值问题

    前言 本复位只针对Vivado中的寄存器复位. 什么时候需要复位?到底要不要复位?怎么复位?复位有什么卵用? 该复位的寄存器需要复位,复位使得寄存器恢复初始值,有的寄存器并不需要复位(数据流路径上). ...

  7. ASP.NET上传文件,已经上传的大小保存在session中,在另一个页面中读取session的值不行

    想自己做个ASP.NET上传文件时显示进度条的, 按照自己的想法,其实也就是显示每次已经上传的字节,从网上找到一个方法是能够把文件变成流以后再慢慢写入的,我在那个循环写入的时候每循环一次都把已经上传的 ...

  8. C# Json反序列化 C# 实现表单的自动化测试<通过程序控制一个网页> 验证码处理类:UnCodebase.cs + BauDuAi 读取验证码的值(并非好的解决方案) 大话设计模式:原型模式 C# 深浅复制 MemberwiseClone

    C# Json反序列化   Json反序列化有两种方式[本人],一种是生成实体的,方便处理大量数据,复杂度稍高,一种是用匿名类写,方便读取数据,较为简单. 使用了Newtonsoft.Json,可以自 ...

  9. Arduino读取写入电压值

    读取写入方式分为数字和模拟 读取方式:(注意接地) 数字:digitalRead(pin); 模拟:analogRead(A1);float val=value*(5.0/1023.0);       ...

随机推荐

  1. 6、基于highcharts实现的线性拟合,计算部分在java中实现,画的是正态概率图

    1.坐标点类 package cn.test.domain; public class Point { double x; double y; public Point(){ } public Poi ...

  2. Java学习之抽象类

    抽象类特点: 1.抽象方法必须定义在抽象类中2.abstract关键字修饰:只能修饰类和方法3.抽象类不能实例化4.抽象类中的方法要被使用,必须由子类重写所有的抽象方法,实例化其子类 如果子类只重写部 ...

  3. MySQL的安装配置(无坑

    简单记录一下自己掉坑无数之后,终于找到的一个不坑的方法. 一.安装 #进入一个习惯的文件夹 cd /usr/local/src #下载资源包 wget -i -c http://dev.mysql.c ...

  4. Qt 打开指定网站/系统文件夹

     本文转载自:http://blog.csdn.net/robertkun/article/details/7802977和http://hi.baidu.com/xyhouse/item/ccf ...

  5. 深入了解line-height(各种单位总结1.5/150%/1.5em)

    默认状态,浏览器使用1.0-1.2 line-height, 这是一个初始值.你可以定义line-height属性来覆盖初始值:p{line-height:140%} 你可以有5种方式来定义line- ...

  6. span 设置inline-block 写文字的span错位

    写一个如下图这样排版 设置几个span为inline-block  中间的span写了文字的span错位了 解决方案 给span添加 vertical-align: top

  7. strtotime 获取当月最后一天的日期

    strtotime('last day of this month', $timestamp);

  8. gdb调试已在运行中的进程

    一.在服务器上调试进程,服务器上并没有源代码,所以需要将源码上传至服务器,才能调试看到源码,以下是步骤: 1.查看服务进程id:pgrep 服务名 [user@user-MP app]$ pgrep ...

  9. mysql 5.7.20 动态sql 传入参数

    drop procedure test; delimiter ;; CREATE procedure test() -- 取动态sql的值 -- 目前只测试出,在 where 后面, 可以用 ?,类似 ...

  10. Activiti获取当前活动(任务)的出口(动态生成提交按钮)

    1.设置出口变量 当一个任务有一个或多个出口时,可以在出口连线出设置判断条件如图: 2.根据任务Id获取出口集合 public List<String> getOutGoingTransN ...