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

📄 ksmips.h

📁 WinCE5.0部分核心源码
💻 H
📖 第 1 页 / 共 2 页
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// This source code is licensed under Microsoft Shared Source License
// Version 1.0 for Windows CE.
// For a copy of the license visit http://go.microsoft.com/fwlink/?LinkId=3223.
//
#ifndef VALIDATE_STRUCTURES
#include "kxmips.h"

#define NO_LL   1   // no load linked/store condition instructions

//
// Process structure fields
//
#define PrcID  0
#define PrcTrust    3       // offset of the bTrustLevel member in Process structure

#define PrcHandle 0x08
#define PrcVMBase 0x0c

// IPC Call Stack structure fields
#define CstkNext        0
#define CstkRa          4   // return address
#define CstkPrcLast     8   // previous process
#define CstkAkyLast     12  // previous access key
#define CstkExtra       16  // saved GP pointer
#define CstkPrevSP      20  // previous SP if swtich stack, 0 otherwise
#define CstkPrcInfo     24  // info about the call (see kerenl.h)
#define CstkSizeof      28  // sizeof this structure

// HINFO structure fields
#define hd_ptr  0x18

// Mask to isolate address bits from a handle
#define HANDLE_ADDRESS_MASK 0x1FFFFFFC
#endif  //  VALIDATE_STRUCTURES

// Thread structure fields

#define ThProc           0x0c
#define ThAKey           0x14
#define ThPcstkTop       0x18
#define ThTlsPtr         0x24
#define ThTlsSecure      0x2c
#define ThTlsNonSecure   0x30
#define ThHandle         0x3c

#define THREAD_CONTEXT_OFFSET   0x60
#ifdef  _MIPS64

#define TcxBadVAddr 0x00+THREAD_CONTEXT_OFFSET
#define TcxIntAt 0x08+THREAD_CONTEXT_OFFSET
#define TcxIntV0 0x10+THREAD_CONTEXT_OFFSET
#define TcxIntV1 0x18+THREAD_CONTEXT_OFFSET
#define TcxIntA0 0x20+THREAD_CONTEXT_OFFSET
#define TcxIntA1 0x28+THREAD_CONTEXT_OFFSET
#define TcxIntA2 0x30+THREAD_CONTEXT_OFFSET
#define TcxIntA3 0x38+THREAD_CONTEXT_OFFSET
#define TcxIntT0 0x40+THREAD_CONTEXT_OFFSET
#define TcxIntT1 0x48+THREAD_CONTEXT_OFFSET
#define TcxIntT2 0x50+THREAD_CONTEXT_OFFSET
#define TcxIntT3 0x58+THREAD_CONTEXT_OFFSET
#define TcxIntT4 0x60+THREAD_CONTEXT_OFFSET
#define TcxIntT5 0x68+THREAD_CONTEXT_OFFSET
#define TcxIntT6 0x70+THREAD_CONTEXT_OFFSET
#define TcxIntT7 0x78+THREAD_CONTEXT_OFFSET
#define TcxIntS0 0x80+THREAD_CONTEXT_OFFSET
#define TcxIntS1 0x88+THREAD_CONTEXT_OFFSET
#define TcxIntS2 0x90+THREAD_CONTEXT_OFFSET
#define TcxIntS3 0x98+THREAD_CONTEXT_OFFSET
#define TcxIntS4 0xa0+THREAD_CONTEXT_OFFSET
#define TcxIntS5 0xa8+THREAD_CONTEXT_OFFSET
#define TcxIntS6 0xb0+THREAD_CONTEXT_OFFSET
#define TcxIntS7 0xb8+THREAD_CONTEXT_OFFSET
#define TcxIntT8 0xc0+THREAD_CONTEXT_OFFSET
#define TcxIntT9 0xc8+THREAD_CONTEXT_OFFSET
#define TcxIntK0 0xd0+THREAD_CONTEXT_OFFSET
#define TcxIntK1 0xd8+THREAD_CONTEXT_OFFSET
#define TcxIntGp 0xe0+THREAD_CONTEXT_OFFSET
#define TcxIntSp 0xe8+THREAD_CONTEXT_OFFSET
#define TcxIntS8 0xf0+THREAD_CONTEXT_OFFSET
#define TcxIntRa 0xf8+THREAD_CONTEXT_OFFSET
#define TcxIntLo 0x100+THREAD_CONTEXT_OFFSET
#define TcxIntHi 0x108+THREAD_CONTEXT_OFFSET
#define TcxFsr 0x110+THREAD_CONTEXT_OFFSET
#define TcxFir 0x114+THREAD_CONTEXT_OFFSET
#define TcxPsr 0x118+THREAD_CONTEXT_OFFSET
#define TcxContextFlags 0x11c+THREAD_CONTEXT_OFFSET

#ifndef MIPS_HAS_FPU
#define TcxSizeof 0x120+THREAD_CONTEXT_OFFSET
#else
#define TcxFltF0 0x120+THREAD_CONTEXT_OFFSET
#define TcxFltF1 0x128+THREAD_CONTEXT_OFFSET
#define TcxFltF2 0x130+THREAD_CONTEXT_OFFSET
#define TcxFltF3 0x138+THREAD_CONTEXT_OFFSET
#define TcxFltF4 0x140+THREAD_CONTEXT_OFFSET
#define TcxFltF5 0x148+THREAD_CONTEXT_OFFSET
#define TcxFltF6 0x150+THREAD_CONTEXT_OFFSET
#define TcxFltF7 0x158+THREAD_CONTEXT_OFFSET
#define TcxFltF8 0x160+THREAD_CONTEXT_OFFSET
#define TcxFltF9 0x168+THREAD_CONTEXT_OFFSET
#define TcxFltF10 0x170+THREAD_CONTEXT_OFFSET
#define TcxFltF11 0x178+THREAD_CONTEXT_OFFSET
#define TcxFltF12 0x180+THREAD_CONTEXT_OFFSET
#define TcxFltF13 0x188+THREAD_CONTEXT_OFFSET
#define TcxFltF14 0x190+THREAD_CONTEXT_OFFSET
#define TcxFltF15 0x198+THREAD_CONTEXT_OFFSET
#define TcxFltF16 0x1a0+THREAD_CONTEXT_OFFSET
#define TcxFltF17 0x1a8+THREAD_CONTEXT_OFFSET
#define TcxFltF18 0x1b0+THREAD_CONTEXT_OFFSET
#define TcxFltF19 0x1b8+THREAD_CONTEXT_OFFSET
#define TcxFltF20 0x1c0+THREAD_CONTEXT_OFFSET
#define TcxFltF21 0x1c8+THREAD_CONTEXT_OFFSET
#define TcxFltF22 0x1d0+THREAD_CONTEXT_OFFSET
#define TcxFltF23 0x1d8+THREAD_CONTEXT_OFFSET
#define TcxFltF24 0x1e0+THREAD_CONTEXT_OFFSET
#define TcxFltF25 0x1e8+THREAD_CONTEXT_OFFSET
#define TcxFltF26 0x1f0+THREAD_CONTEXT_OFFSET
#define TcxFltF27 0x1f8+THREAD_CONTEXT_OFFSET
#define TcxFltF28 0x200+THREAD_CONTEXT_OFFSET
#define TcxFltF29 0x208+THREAD_CONTEXT_OFFSET
#define TcxFltF30 0x210+THREAD_CONTEXT_OFFSET
#define TcxFltF31 0x218+THREAD_CONTEXT_OFFSET
#define TcxSizeof 0x220+THREAD_CONTEXT_OFFSET
#endif
#else   //  _MIPS64

#define TcxBadVAddr 0x00+THREAD_CONTEXT_OFFSET
#define TcxIntAt 0x04+THREAD_CONTEXT_OFFSET
#define TcxIntV0 0x08+THREAD_CONTEXT_OFFSET
#define TcxIntV1 0x0C+THREAD_CONTEXT_OFFSET
#define TcxIntA0 0x10+THREAD_CONTEXT_OFFSET
#define TcxIntA1 0x14+THREAD_CONTEXT_OFFSET
#define TcxIntA2 0x18+THREAD_CONTEXT_OFFSET
#define TcxIntA3 0x1c+THREAD_CONTEXT_OFFSET
#define TcxIntT0 0x20+THREAD_CONTEXT_OFFSET
#define TcxIntT1 0x24+THREAD_CONTEXT_OFFSET
#define TcxIntT2 0x28+THREAD_CONTEXT_OFFSET
#define TcxIntT3 0x2c+THREAD_CONTEXT_OFFSET
#define TcxIntT4 0x30+THREAD_CONTEXT_OFFSET
#define TcxIntT5 0x34+THREAD_CONTEXT_OFFSET
#define TcxIntT6 0x38+THREAD_CONTEXT_OFFSET
#define TcxIntT7 0x3c+THREAD_CONTEXT_OFFSET
#define TcxIntS0 0x40+THREAD_CONTEXT_OFFSET
#define TcxIntS1 0x44+THREAD_CONTEXT_OFFSET
#define TcxIntS2 0x48+THREAD_CONTEXT_OFFSET
#define TcxIntS3 0x4c+THREAD_CONTEXT_OFFSET
#define TcxIntS4 0x50+THREAD_CONTEXT_OFFSET
#define TcxIntS5 0x54+THREAD_CONTEXT_OFFSET
#define TcxIntS6 0x58+THREAD_CONTEXT_OFFSET
#define TcxIntS7 0x5c+THREAD_CONTEXT_OFFSET
#define TcxIntT8 0x60+THREAD_CONTEXT_OFFSET
#define TcxIntT9 0x64+THREAD_CONTEXT_OFFSET
#define TcxIntK0 0x68+THREAD_CONTEXT_OFFSET
#define TcxIntK1 0x6c+THREAD_CONTEXT_OFFSET
#define TcxIntGp 0x70+THREAD_CONTEXT_OFFSET
#define TcxIntSp 0x74+THREAD_CONTEXT_OFFSET
#define TcxIntS8 0x78+THREAD_CONTEXT_OFFSET
#define TcxIntRa 0x7c+THREAD_CONTEXT_OFFSET
#define TcxIntLo 0x80+THREAD_CONTEXT_OFFSET
#define TcxIntHi 0x84+THREAD_CONTEXT_OFFSET
#define TcxFsr 0x88+THREAD_CONTEXT_OFFSET
#define TcxFir 0x8c+THREAD_CONTEXT_OFFSET
#define TcxPsr 0x90+THREAD_CONTEXT_OFFSET
#define TcxContextFlags 0x94+THREAD_CONTEXT_OFFSET

#ifndef MIPS_HAS_FPU
#define TcxSizeof 0x98+THREAD_CONTEXT_OFFSET
#else
#define TcxFltF0 0x98+THREAD_CONTEXT_OFFSET
#define TcxFltF1 0x9c+THREAD_CONTEXT_OFFSET
#define TcxFltF2 0xa0+THREAD_CONTEXT_OFFSET
#define TcxFltF3 0xa4+THREAD_CONTEXT_OFFSET
#define TcxFltF4 0xa8+THREAD_CONTEXT_OFFSET
#define TcxFltF5 0xac+THREAD_CONTEXT_OFFSET
#define TcxFltF6 0xb0+THREAD_CONTEXT_OFFSET
#define TcxFltF7 0xb4+THREAD_CONTEXT_OFFSET
#define TcxFltF8 0xb8+THREAD_CONTEXT_OFFSET
#define TcxFltF9 0xbc+THREAD_CONTEXT_OFFSET
#define TcxFltF10 0xc0+THREAD_CONTEXT_OFFSET
#define TcxFltF11 0xc4+THREAD_CONTEXT_OFFSET
#define TcxFltF12 0xc8+THREAD_CONTEXT_OFFSET
#define TcxFltF13 0xcc+THREAD_CONTEXT_OFFSET
#define TcxFltF14 0xd0+THREAD_CONTEXT_OFFSET
#define TcxFltF15 0xd4+THREAD_CONTEXT_OFFSET
#define TcxFltF16 0xd8+THREAD_CONTEXT_OFFSET
#define TcxFltF17 0xdc+THREAD_CONTEXT_OFFSET
#define TcxFltF18 0xe0+THREAD_CONTEXT_OFFSET
#define TcxFltF19 0xe4+THREAD_CONTEXT_OFFSET
#define TcxFltF20 0xe8+THREAD_CONTEXT_OFFSET
#define TcxFltF21 0xec+THREAD_CONTEXT_OFFSET
#define TcxFltF22 0xf0+THREAD_CONTEXT_OFFSET
#define TcxFltF23 0xf4+THREAD_CONTEXT_OFFSET
#define TcxFltF24 0xf8+THREAD_CONTEXT_OFFSET
#define TcxFltF25 0xfc+THREAD_CONTEXT_OFFSET
#define TcxFltF26 0x100+THREAD_CONTEXT_OFFSET
#define TcxFltF27 0x104+THREAD_CONTEXT_OFFSET
#define TcxFltF28 0x108+THREAD_CONTEXT_OFFSET
#define TcxFltF29 0x10c+THREAD_CONTEXT_OFFSET
#define TcxFltF30 0x110+THREAD_CONTEXT_OFFSET
#define TcxFltF31 0x114+THREAD_CONTEXT_OFFSET
#define TcxSizeof 0x118+THREAD_CONTEXT_OFFSET
#endif
#endif  //  _MIPS64

//
// Dispatcher Context Structure Offset Definitions
//

#ifndef VALIDATE_STRUCTURES
#define DcControlPc 0x0
#define DcFunctionEntry 0x4
#define DcEstablisherFrame 0x8
#define DcContextRecord 0xc

//
// Exception Record Offset, Flag, and Enumerated Type Definitions
//

#define EXCEPTION_NONCONTINUABLE 0x1
#define EXCEPTION_UNWINDING 0x2
#define EXCEPTION_EXIT_UNWIND 0x4
#define EXCEPTION_STACK_INVALID 0x8
#define EXCEPTION_NESTED_CALL 0x10
#define EXCEPTION_TARGET_UNWIND 0x20
#define EXCEPTION_COLLIDED_UNWIND 0x40
#define EXCEPTION_UNWIND 0x66

#define ExceptionContinueExecution 0x0
#define ExceptionContinueSearch 0x1
#define ExceptionNestedException 0x2
#define ExceptionCollidedUnwind 0x3

#define ErExceptionCode 0x0
#define ErExceptionFlags 0x4
#define ErExceptionRecord 0x8
#define ErExceptionAddress 0xc
#define ErNumberParameters 0x10
#define ErExceptionInformation 0x14
#define ExceptionRecordLength 0x50

//
// Large Integer Structure Offset Definitions
//

#define LiLowPart 0x0
#define LiHighPart 0x4

//
// List Entry Structure Offset Definitions
//

#define LsFlink 0x0
#define LsBlink 0x4

//

⌨️ 快捷键说明

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