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

📄 kpage.h

📁 See Hanoi.cpp for the implementation of this cla
💻 H
字号:
// Copyright (c) 1999-2000 Microsoft Corporation.  All rights reserved.
// Layout of Kernel data page. Note that this page is mapped such
// that it has the same physical address and virtual address to allow
// access to the data with and without relocations enabled.

    .struct KPAGE_BASE
KData:          .space  0x800-StackFrameHeaderLength
                                // 2K kernel stack
KStack:         .space  StackFrameHeaderLength
                                // 0x7xx: arg space
lpvTls:         .space  4       // 0x800: current TLS pointer
SystemHandles:  .space 4*32     // 0x804

ReschedFlag:    .space  1       // 0x884: != 0 if NextThread must be called
KNest:          .space  1       // == 1 iff not in kernel
                .space  1       // alignment padding
                .space  1       // alignment padding

                .space  4       // 0x888: (CurMSec) # of msecs since boot
                .space  4       // 0x88c: (DiffMSec) msecs since TimerCallBack
CurAKey:        .space  4       // 0x890: current thread's access key
CurThdPtr:      .space  4       // 0x894: ptr to current THREAD structure
dwPad:          .space  4       // 0x898: was process breakpoint
HandleBase:     .space  4       // 0x89c: base address of HDATA array.
SectionTable:   .space 4*64     // 0x8a0: virtual memory section array
IntrEvents:     .space SYSINTR_MAX_DEVICES*4
                                // 0x9a0: interrupt event pointers
IntrData:       .space SYSINTR_MAX_DEVICES*4
                                // 0xA20: interrupt handler data pointers
BPowerOff:      .space  1       // 0xaa0: power off flag
BProfileOn:     .space  1       // 0xaa1: TRUE if profiling enabled
                .space  2       // 0xaa2: byte padding
PtrAPIRet:      .space  4       // 0xaa4: api call return for kernel mode
PtrCurPrc:      .space  4       // 0xaa8: ptr to current PROCESS structure
NKGp:           .space  4       // 0xaac: kernel's Global pointer
kMSR:           .space  4       // 0xab0: Base kernel MSR value
kPFNMap:        .space  KPFN_CNT // 0xab4 - 0xad4: KVA to Physical mappings

//
//  Machine dependant fields. These are not shared via the KData structure:
//

SaveR6:         .space  4           // 0xad4: scratch save area
TBIndex:        .space  4           // 0xad8: Current tlb index  (PPC403 only)
                .space  0xB00-0xADC // 0xadc: padding

//
//  Kernel Info Table (DWORD KInfoTable[32])
//

KInfoTable:     .space 4*16         // 0xB00: misc. kernel info
PendEvents:     .space  4           // 0xB40: bitmask of pending events
                .space  4*15        // 0xB44: more misc. kernel info
dwKCRes:        .space 4            // 0xB80
                .space  4*11        // 0xB84: more misc kernel info

LowHandlers:    .space 4           // 0xBB0: Low Memory exception handler routines

                .org    KPAGE_BASE+0x1000
KData_size:;                    // end of kernel data page


    .set hWin32, SystemHandles
    .set hCurThread, SystemHandles+4
    .set hCurProc, SystemHandles+8

⌨️ 快捷键说明

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