📄 mdsched.c
字号:
if (pth->pThrdDbg && pth->pThrdDbg->psavedctx) {
ACCESSKEY ulOldKey;
SWITCHKEY(ulOldKey,0xffffffff);
if (lpContext->ContextFlags & CONTEXT_FLOATING_POINT) {
#ifdef MIPS_HAS_FPU
FPUFlushContext();
lpContext->Fsr = pth->ctx.Fsr;
lpContext->FltF0 = pth->ctx.FltF0;
lpContext->FltF1 = pth->ctx.FltF1;
lpContext->FltF2 = pth->ctx.FltF2;
lpContext->FltF3 = pth->ctx.FltF3;
lpContext->FltF4 = pth->ctx.FltF4;
lpContext->FltF5 = pth->ctx.FltF5;
lpContext->FltF6 = pth->ctx.FltF6;
lpContext->FltF7 = pth->ctx.FltF7;
lpContext->FltF8 = pth->ctx.FltF8;
lpContext->FltF9 = pth->ctx.FltF9;
lpContext->FltF10 = pth->ctx.FltF10;
lpContext->FltF11 = pth->ctx.FltF11;
lpContext->FltF12 = pth->ctx.FltF12;
lpContext->FltF13 = pth->ctx.FltF13;
lpContext->FltF14 = pth->ctx.FltF14;
lpContext->FltF15 = pth->ctx.FltF15;
lpContext->FltF16 = pth->ctx.FltF16;
lpContext->FltF17 = pth->ctx.FltF17;
lpContext->FltF18 = pth->ctx.FltF18;
lpContext->FltF19 = pth->ctx.FltF19;
lpContext->FltF20 = pth->ctx.FltF20;
lpContext->FltF21 = pth->ctx.FltF21;
lpContext->FltF22 = pth->ctx.FltF22;
lpContext->FltF23 = pth->ctx.FltF23;
lpContext->FltF24 = pth->ctx.FltF24;
lpContext->FltF25 = pth->ctx.FltF25;
lpContext->FltF26 = pth->ctx.FltF26;
lpContext->FltF27 = pth->ctx.FltF27;
lpContext->FltF28 = pth->ctx.FltF28;
lpContext->FltF29 = pth->ctx.FltF29;
lpContext->FltF30 = pth->ctx.FltF30;
lpContext->FltF31 = pth->ctx.FltF31;
#endif
}
if (lpContext->ContextFlags & CONTEXT_CONTROL) {
lpContext->IntGp = pth->pThrdDbg->psavedctx->IntGp;
lpContext->IntSp = pth->pThrdDbg->psavedctx->IntSp;
lpContext->IntRa = pth->pThrdDbg->psavedctx->IntRa;
lpContext->Fir = pth->pThrdDbg->psavedctx->Fir;
lpContext->Psr = pth->pThrdDbg->psavedctx->Psr;
}
if (lpContext->ContextFlags & CONTEXT_INTEGER) {
lpContext->IntZero = 0;
lpContext->IntAt = pth->pThrdDbg->psavedctx->IntAt;
lpContext->IntV0 = pth->pThrdDbg->psavedctx->IntV0;
lpContext->IntV1 = pth->pThrdDbg->psavedctx->IntV1;
lpContext->IntA0 = pth->pThrdDbg->psavedctx->IntA0;
lpContext->IntA1 = pth->pThrdDbg->psavedctx->IntA1;
lpContext->IntA2 = pth->pThrdDbg->psavedctx->IntA2;
lpContext->IntA3 = pth->pThrdDbg->psavedctx->IntA3;
lpContext->IntT0 = pth->pThrdDbg->psavedctx->IntT0;
lpContext->IntT1 = pth->pThrdDbg->psavedctx->IntT1;
lpContext->IntT2 = pth->pThrdDbg->psavedctx->IntT2;
lpContext->IntT3 = pth->pThrdDbg->psavedctx->IntT3;
lpContext->IntT4 = pth->pThrdDbg->psavedctx->IntT4;
lpContext->IntT5 = pth->pThrdDbg->psavedctx->IntT5;
lpContext->IntT6 = pth->pThrdDbg->psavedctx->IntT6;
lpContext->IntT7 = pth->pThrdDbg->psavedctx->IntT7;
lpContext->IntS0 = pth->pThrdDbg->psavedctx->IntS0;
lpContext->IntS1 = pth->pThrdDbg->psavedctx->IntS1;
lpContext->IntS2 = pth->pThrdDbg->psavedctx->IntS2;
lpContext->IntS3 = pth->pThrdDbg->psavedctx->IntS3;
lpContext->IntS4 = pth->pThrdDbg->psavedctx->IntS4;
lpContext->IntS5 = pth->pThrdDbg->psavedctx->IntS5;
lpContext->IntS6 = pth->pThrdDbg->psavedctx->IntS6;
lpContext->IntS7 = pth->pThrdDbg->psavedctx->IntS7;
lpContext->IntT8 = pth->pThrdDbg->psavedctx->IntT8;
lpContext->IntT9 = pth->pThrdDbg->psavedctx->IntT9;
lpContext->IntS8 = pth->pThrdDbg->psavedctx->IntS8;
lpContext->IntLo = pth->pThrdDbg->psavedctx->IntLo;
lpContext->IntHi = pth->pThrdDbg->psavedctx->IntHi;
}
SETCURKEY(ulOldKey);
} else {
if (lpContext->ContextFlags & CONTEXT_FLOATING_POINT) {
#ifdef MIPS_HAS_FPU
FPUFlushContext();
lpContext->Fsr = pth->ctx.Fsr;
lpContext->FltF0 = pth->ctx.FltF0;
lpContext->FltF1 = pth->ctx.FltF1;
lpContext->FltF2 = pth->ctx.FltF2;
lpContext->FltF3 = pth->ctx.FltF3;
lpContext->FltF4 = pth->ctx.FltF4;
lpContext->FltF5 = pth->ctx.FltF5;
lpContext->FltF6 = pth->ctx.FltF6;
lpContext->FltF7 = pth->ctx.FltF7;
lpContext->FltF8 = pth->ctx.FltF8;
lpContext->FltF9 = pth->ctx.FltF9;
lpContext->FltF10 = pth->ctx.FltF10;
lpContext->FltF11 = pth->ctx.FltF11;
lpContext->FltF12 = pth->ctx.FltF12;
lpContext->FltF13 = pth->ctx.FltF13;
lpContext->FltF14 = pth->ctx.FltF14;
lpContext->FltF15 = pth->ctx.FltF15;
lpContext->FltF16 = pth->ctx.FltF16;
lpContext->FltF17 = pth->ctx.FltF17;
lpContext->FltF18 = pth->ctx.FltF18;
lpContext->FltF19 = pth->ctx.FltF19;
lpContext->FltF20 = pth->ctx.FltF20;
lpContext->FltF21 = pth->ctx.FltF21;
lpContext->FltF22 = pth->ctx.FltF22;
lpContext->FltF23 = pth->ctx.FltF23;
lpContext->FltF24 = pth->ctx.FltF24;
lpContext->FltF25 = pth->ctx.FltF25;
lpContext->FltF26 = pth->ctx.FltF26;
lpContext->FltF27 = pth->ctx.FltF27;
lpContext->FltF28 = pth->ctx.FltF28;
lpContext->FltF29 = pth->ctx.FltF29;
lpContext->FltF30 = pth->ctx.FltF30;
lpContext->FltF31 = pth->ctx.FltF31;
#endif
}
if (lpContext->ContextFlags & CONTEXT_CONTROL) {
lpContext->IntGp = pth->ctx.IntGp;
lpContext->IntSp = pth->ctx.IntSp;
lpContext->IntRa = pth->ctx.IntRa;
lpContext->Fir = pth->ctx.Fir;
lpContext->Psr = pth->ctx.Psr;
}
if (lpContext->ContextFlags & CONTEXT_INTEGER) {
lpContext->IntZero = 0;
lpContext->IntAt = pth->ctx.IntAt;
lpContext->IntV0 = pth->ctx.IntV0;
lpContext->IntV1 = pth->ctx.IntV1;
lpContext->IntA0 = pth->ctx.IntA0;
lpContext->IntA1 = pth->ctx.IntA1;
lpContext->IntA2 = pth->ctx.IntA2;
lpContext->IntA3 = pth->ctx.IntA3;
lpContext->IntT0 = pth->ctx.IntT0;
lpContext->IntT1 = pth->ctx.IntT1;
lpContext->IntT2 = pth->ctx.IntT2;
lpContext->IntT3 = pth->ctx.IntT3;
lpContext->IntT4 = pth->ctx.IntT4;
lpContext->IntT5 = pth->ctx.IntT5;
lpContext->IntT6 = pth->ctx.IntT6;
lpContext->IntT7 = pth->ctx.IntT7;
lpContext->IntS0 = pth->ctx.IntS0;
lpContext->IntS1 = pth->ctx.IntS1;
lpContext->IntS2 = pth->ctx.IntS2;
lpContext->IntS3 = pth->ctx.IntS3;
lpContext->IntS4 = pth->ctx.IntS4;
lpContext->IntS5 = pth->ctx.IntS5;
lpContext->IntS6 = pth->ctx.IntS6;
lpContext->IntS7 = pth->ctx.IntS7;
lpContext->IntT8 = pth->ctx.IntT8;
lpContext->IntT9 = pth->ctx.IntT9;
lpContext->IntS8 = pth->ctx.IntS8;
lpContext->IntLo = pth->ctx.IntLo;
lpContext->IntHi = pth->ctx.IntHi;
}
}
return TRUE;
}
BOOL DoThreadSetContext(HANDLE hTh, const CONTEXT *lpContext) {
PTHREAD pth;
if (!(pth = HandleToThread(hTh))) {
SetLastError(ERROR_INVALID_HANDLE);
return FALSE;
}
if (lpContext->ContextFlags & ~CONTEXT_FULL) {
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
if (pth->pThrdDbg && pth->pThrdDbg->psavedctx) {
ACCESSKEY ulOldKey;
SWITCHKEY(ulOldKey,0xffffffff);
if (lpContext->ContextFlags & CONTEXT_FLOATING_POINT) {
#ifdef MIPS_HAS_FPU
FPUFlushContext();
pth->ctx.Fsr = lpContext->Fsr;
pth->ctx.FltF0 = lpContext->FltF0;
pth->ctx.FltF1 = lpContext->FltF1;
pth->ctx.FltF2 = lpContext->FltF2;
pth->ctx.FltF3 = lpContext->FltF3;
pth->ctx.FltF4 = lpContext->FltF4;
pth->ctx.FltF5 = lpContext->FltF5;
pth->ctx.FltF6 = lpContext->FltF6;
pth->ctx.FltF7 = lpContext->FltF7;
pth->ctx.FltF8 = lpContext->FltF8;
pth->ctx.FltF9 = lpContext->FltF9;
pth->ctx.FltF10 = lpContext->FltF10;
pth->ctx.FltF11 = lpContext->FltF11;
pth->ctx.FltF12 = lpContext->FltF12;
pth->ctx.FltF13 = lpContext->FltF13;
pth->ctx.FltF14 = lpContext->FltF14;
pth->ctx.FltF15 = lpContext->FltF15;
pth->ctx.FltF16 = lpContext->FltF16;
pth->ctx.FltF17 = lpContext->FltF17;
pth->ctx.FltF18 = lpContext->FltF18;
pth->ctx.FltF19 = lpContext->FltF19;
pth->ctx.FltF20 = lpContext->FltF20;
pth->ctx.FltF21 = lpContext->FltF21;
pth->ctx.FltF22 = lpContext->FltF22;
pth->ctx.FltF23 = lpContext->FltF23;
pth->ctx.FltF24 = lpContext->FltF24;
pth->ctx.FltF25 = lpContext->FltF25;
pth->ctx.FltF26 = lpContext->FltF26;
pth->ctx.FltF27 = lpContext->FltF27;
pth->ctx.FltF28 = lpContext->FltF28;
pth->ctx.FltF29 = lpContext->FltF29;
pth->ctx.FltF30 = lpContext->FltF30;
pth->ctx.FltF31 = lpContext->FltF31;
#endif
}
if (lpContext->ContextFlags & CONTEXT_CONTROL) {
pth->pThrdDbg->psavedctx->IntGp = lpContext->IntGp;
pth->pThrdDbg->psavedctx->IntSp = lpContext->IntSp;
pth->pThrdDbg->psavedctx->IntRa = lpContext->IntRa;
pth->pThrdDbg->psavedctx->Fir = lpContext->Fir;
}
if (lpContext->ContextFlags & CONTEXT_INTEGER) {
pth->pThrdDbg->psavedctx->IntAt = lpContext->IntAt;
pth->pThrdDbg->psavedctx->IntV0 = lpContext->IntV0;
pth->pThrdDbg->psavedctx->IntV1 = lpContext->IntV1;
pth->pThrdDbg->psavedctx->IntA0 = lpContext->IntA0;
pth->pThrdDbg->psavedctx->IntA1 = lpContext->IntA1;
pth->pThrdDbg->psavedctx->IntA2 = lpContext->IntA2;
pth->pThrdDbg->psavedctx->IntA3 = lpContext->IntA3;
pth->pThrdDbg->psavedctx->IntT0 = lpContext->IntT0;
pth->pThrdDbg->psavedctx->IntT1 = lpContext->IntT1;
pth->pThrdDbg->psavedctx->IntT2 = lpContext->IntT2;
pth->pThrdDbg->psavedctx->IntT3 = lpContext->IntT3;
pth->pThrdDbg->psavedctx->IntT4 = lpContext->IntT4;
pth->pThrdDbg->psavedctx->IntT5 = lpContext->IntT5;
pth->pThrdDbg->psavedctx->IntT6 = lpContext->IntT6;
pth->pThrdDbg->psavedctx->IntT7 = lpContext->IntT7;
pth->pThrdDbg->psavedctx->IntS0 = lpContext->IntS0;
pth->pThrdDbg->psavedctx->IntS1 = lpContext->IntS1;
pth->pThrdDbg->psavedctx->IntS2 = lpContext->IntS2;
pth->pThrdDbg->psavedctx->IntS3 = lpContext->IntS3;
pth->pThrdDbg->psavedctx->IntS4 = lpContext->IntS4;
pth->pThrdDbg->psavedctx->IntS5 = lpContext->IntS5;
pth->pThrdDbg->psavedctx->IntS6 = lpContext->IntS6;
pth->pThrdDbg->psavedctx->IntS7 = lpContext->IntS7;
pth->pThrdDbg->psavedctx->IntT8 = lpContext->IntT8;
pth->pThrdDbg->psavedctx->IntT9 = lpContext->IntT9;
pth->pThrdDbg->psavedctx->IntS8 = lpContext->IntS8;
pth->pThrdDbg->psavedctx->IntLo = lpContext->IntLo;
pth->pThrdDbg->psavedctx->IntHi = lpContext->IntHi;
}
SETCURKEY(ulOldKey);
} else {
if (lpContext->ContextFlags & CONTEXT_FLOATING_POINT) {
#ifdef MIPS_HAS_FPU
FPUFlushContext();
pth->ctx.Fsr = lpContext->Fsr;
pth->ctx.FltF0 = lpContext->FltF0;
pth->ctx.FltF1 = lpContext->FltF1;
pth->ctx.FltF2 = lpContext->FltF2;
pth->ctx.FltF3 = lpContext->FltF3;
pth->ctx.FltF4 = lpContext->FltF4;
pth->ctx.FltF5 = lpContext->FltF5;
pth->ctx.FltF6 = lpContext->FltF6;
pth->ctx.FltF7 = lpContext->FltF7;
pth->ctx.FltF8 = lpContext->FltF8;
pth->ctx.FltF9 = lpContext->FltF9;
pth->ctx.FltF10 = lpContext->FltF10;
pth->ctx.FltF11 = lpContext->FltF11;
pth->ctx.FltF12 = lpContext->FltF12;
pth->ctx.FltF13 = lpContext->FltF13;
pth->ctx.FltF14 = lpContext->FltF14;
pth->ctx.FltF15 = lpContext->FltF15;
pth->ctx.FltF16 = lpContext->FltF16;
pth->ctx.FltF17 = lpContext->FltF17;
pth->ctx.FltF18 = lpContext->FltF18;
pth->ctx.FltF19 = lpContext->FltF19;
pth->ctx.FltF20 = lpContext->FltF20;
pth->ctx.FltF21 = lpContext->FltF21;
pth->ctx.FltF22 = lpContext->FltF22;
pth->ctx.FltF23 = lpContext->FltF23;
pth->ctx.FltF24 = lpContext->FltF24;
pth->ctx.FltF25 = lpContext->FltF25;
pth->ctx.FltF26 = lpContext->FltF26;
pth->ctx.FltF27 = lpContext->FltF27;
pth->ctx.FltF28 = lpContext->FltF28;
pth->ctx.FltF29 = lpContext->FltF29;
pth->ctx.FltF30 = lpContext->FltF30;
pth->ctx.FltF31 = lpContext->FltF31;
#endif
}
if (lpContext->ContextFlags & CONTEXT_CONTROL) {
pth->ctx.IntGp = lpContext->IntGp;
pth->ctx.IntSp = lpContext->IntSp;
pth->ctx.IntRa = lpContext->IntRa;
pth->ctx.Fir = lpContext->Fir;
}
if (lpContext->ContextFlags & CONTEXT_INTEGER) {
pth->ctx.IntAt = lpContext->IntAt;
pth->ctx.IntV0 = lpContext->IntV0;
pth->ctx.IntV1 = lpContext->IntV1;
pth->ctx.IntA0 = lpContext->IntA0;
pth->ctx.IntA1 = lpContext->IntA1;
pth->ctx.IntA2 = lpContext->IntA2;
pth->ctx.IntA3 = lpContext->IntA3;
pth->ctx.IntT0 = lpContext->IntT0;
pth->ctx.IntT1 = lpContext->IntT1;
pth->ctx.IntT2 = lpContext->IntT2;
pth->ctx.IntT3 = lpContext->IntT3;
pth->ctx.IntT4 = lpContext->IntT4;
pth->ctx.IntT5 = lpContext->IntT5;
pth->ctx.IntT6 = lpContext->IntT6;
pth->ctx.IntT7 = lpContext->IntT7;
pth->ctx.IntS0 = lpContext->IntS0;
pth->ctx.IntS1 = lpContext->IntS1;
pth->ctx.IntS2 = lpContext->IntS2;
pth->ctx.IntS3 = lpContext->IntS3;
pth->ctx.IntS4 = lpContext->IntS4;
pth->ctx.IntS5 = lpContext->IntS5;
pth->ctx.IntS6 = lpContext->IntS6;
pth->ctx.IntS7 = lpContext->IntS7;
pth->ctx.IntT8 = lpContext->IntT8;
pth->ctx.IntT9 = lpContext->IntT9;
pth->ctx.IntS8 = lpContext->IntS8;
pth->ctx.IntLo = lpContext->IntLo;
pth->ctx.IntHi = lpContext->IntHi;
}
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -