通过Module读取寄存器的值
- 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读取寄存器的值的更多相关文章
- 嵌入式 Linux应用程序如何读取(修改)芯片寄存器的值
这一问题来自项目中一个实际的需求:我需要在Linux启动之后,确认我指定的芯片寄存器是否与我在uboot的配置一致. 举个例子:寄存器地址:0x20000010负责对DDR2的时序配置,该寄存器是在u ...
- GDB 修改当前判断函数的返回值(即修改寄存器的值)的方法
工作中遇到的问题: 在GDB调试时要进入下边该判断后边的函数,而m_EtherDecode.Chk_MakeSure_IP_Pkt(pPacket,dwPacketLen)的返回值是false,所以需 ...
- 读取当前键值,并赋值给LED
/********************************* 代码功能:读取当前键值,并赋值给LED 使用函数: digitalRead(数字输入端口号); 创作时间:2016*10*07 作 ...
- java properties读取与设值
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream; ...
- Python批量修改寄存器的值
在写代码过程中,我们修改代码中寄存器的值,但是有时寄存器的数据较多,手动修改容易出现错误而且花费的时间长 这是一段寄存器的配置值: 0x00, 0x34 0x35, 0x25 0x10, 0xd4 ...
- Vivado寄存器初始值问题
前言 本复位只针对Vivado中的寄存器复位. 什么时候需要复位?到底要不要复位?怎么复位?复位有什么卵用? 该复位的寄存器需要复位,复位使得寄存器恢复初始值,有的寄存器并不需要复位(数据流路径上). ...
- ASP.NET上传文件,已经上传的大小保存在session中,在另一个页面中读取session的值不行
想自己做个ASP.NET上传文件时显示进度条的, 按照自己的想法,其实也就是显示每次已经上传的字节,从网上找到一个方法是能够把文件变成流以后再慢慢写入的,我在那个循环写入的时候每循环一次都把已经上传的 ...
- C# Json反序列化 C# 实现表单的自动化测试<通过程序控制一个网页> 验证码处理类:UnCodebase.cs + BauDuAi 读取验证码的值(并非好的解决方案) 大话设计模式:原型模式 C# 深浅复制 MemberwiseClone
C# Json反序列化 Json反序列化有两种方式[本人],一种是生成实体的,方便处理大量数据,复杂度稍高,一种是用匿名类写,方便读取数据,较为简单. 使用了Newtonsoft.Json,可以自 ...
- Arduino读取写入电压值
读取写入方式分为数字和模拟 读取方式:(注意接地) 数字:digitalRead(pin); 模拟:analogRead(A1);float val=value*(5.0/1023.0); ...
随机推荐
- 测试技能图谱skill-map
# 测试技能图谱 ## 代码静态分析- Sonar- PMD- Infer- Android * findbugs * AndroidLint * CheckStyle- iOS * scanbuil ...
- linux(Ubuntu) 搭建LAMP环境
1.更新源 sudo apt- get update 2.安装常用软件 SSH.Vim.Git.Tree ①SSH sudo apt-get install openssh-server 管理命令:s ...
- Oracle高水位线(HWM)及性能优化
说到HWM,我们首先要简要的谈谈ORACLE的逻辑存储管理.我们知道,ORACLE在逻辑存储上分4个粒度:表空间,段,区和块. (1)块:是粒度最小的存储单位,现在标准的块大小是8K,ORACL ...
- WinDows应急响应基础
文件排查 开机启动有无异常文件 msconfig 敏感的文件路径 %WINDIR% %WINDIR%\SYSTEM32\ %TEMP% %LOCALAPPDATA% %APPDATA% 用户目录 新建 ...
- 力扣算法题—148sort-list
Sort a linked list in O(n log n) time using constant space complexity. Example 1: Input: 4->2-> ...
- postgis常用的函数
常见函数:http://postgis.net/docs/reference.html ST_GeometryType(geometry) —— 返回几何图形的类型 ST_NDims(ge ...
- JS的常用正则表达式 验证密码用户名等
//校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false retur ...
- mysql 5.7.20 取得动态sql执行结果
drop procedure test; delimiter ;; CREATE procedure test() -- 取动态sql的值 begin ); ); set v_sqlcounts = ...
- flex属性设置
flex是一个复合属性,所以有三个值设置,这也就造成了flex可以只设置一个值或两个值: 如果flex只设置一个值: 没有单位的数,则这个值是flex-grow, 并且flex-basis变为0 有单 ...
- Linux 版本查詢
# uname -a 查看 Kernel版本 # cat /etc/redhat-release查看 linux版本(以RedHat為例) 1.核心查詢:uname -a結果:Linux 2.x.x ...