📄 dos2udip.c
字号:
{INCOMING_PARAMS( UDIMemoryRange *KnownMemory; /* Out */ UDIInt *NumberOfRanges; /* In/Out */ UDIUInt32 *ChipVersions; /* Out */ UDIInt *NumberOfChips; /* In/Out */)UDIError err; INPTR_PREPROCESS(NumberOfRanges); INPTR_PREPROCESS(NumberOfChips); OUTPTR_PREPROCESS_COUNT(KnownMemory, *(local.NumberOfRanges) * sizeof(UDIMemoryRange)); OUTPTR_PREPROCESS_COUNT(ChipVersions, *(local.NumberOfChips) * sizeof(UDIUInt32)); err = UDIGetTargetConfig( local.KnownMemory, local.NumberOfRanges, local.ChipVersions, local.NumberOfChips ); OUTPTR_POSTPROCESS(NumberOfRanges); OUTPTR_POSTPROCESS(NumberOfChips); OUTPTR_POSTPROCESS_COUNT(KnownMemory, *(local.NumberOfRanges) * sizeof(UDIMemoryRange)); OUTPTR_POSTPROCESS_COUNT(ChipVersions, *(local.NumberOfChips) * sizeof(UDIUInt32)); return(err);}UDIError d386_UDICreateProcess (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIPId *PId; /* Out */)UDIError err; OUTPTR_PREPROCESS(PId); err = UDICreateProcess( local.PId ); OUTPTR_POSTPROCESS(PId); return(err);}UDIError d386_UDISetCurrentProcess (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS_NO_PTR( UDIPId PId; /* In */ ) return(UDISetCurrentProcess( in->PId ));}UDIError d386_UDIDestroyProcess (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS_NO_PTR( UDIPId PId; /* In */ ) return(UDIDestroyProcess( in->PId ));}UDIError d386_UDIInitializeProcess (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIMemoryRange *ProcessMemory; /* In */ UDIInt NumberOfRanges; /* In */ UDIResource EntryPoint; /* In */ CPUSizeT *StackSizes; /* In */ UDIInt NumberOfStacks; /* In */ char *ArgString; /* In */ )UDIError err; INPTR_PREPROCESS_COUNT(ProcessMemory, in->NumberOfRanges * sizeof(UDIMemoryRange)); INPTR_PREPROCESS_COUNT(StackSizes, in->NumberOfStacks * sizeof(CPUSizeT)); INPTR_PREPROCESS_COUNT(ArgString, realptr_strlen((REALPTR)(in->ArgString))+1); err = UDIInitializeProcess( local.ProcessMemory, in->NumberOfRanges, in->EntryPoint, local.StackSizes, in->NumberOfStacks, local.ArgString ); return(err);}UDIError d386_UDIRead (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIResource From; /* In */ UDIHostMemPtr To; /* Out */ UDICount Count; /* In */ UDISizeT Size; /* In */ UDICount *CountDone; /* Out */ UDIBool HostEndian; /* In */ )UDIError err; OUTPTR_PREPROCESS_COUNT(To, in->Count * in->Size); OUTPTR_PREPROCESS(CountDone); err = UDIRead( in->From, local.To, in->Count, in->Size, local.CountDone, in->HostEndian ); OUTPTR_POSTPROCESS_COUNT(To, *(local.CountDone) * in->Size); OUTPTR_POSTPROCESS(CountDone); return(err);}UDIError d386_UDIWrite (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIHostMemPtr From; /* In */ UDIResource To; /* In */ UDICount Count; /* In */ UDISizeT Size; /* In */ UDICount *CountDone; /* Out */ UDIBool HostEndian; /* In */ )UDIError err; INPTR_PREPROCESS_COUNT (From, in->Count * in->Size); OUTPTR_PREPROCESS(CountDone); err = UDIWrite( local.From, in->To, in->Count, in->Size, local.CountDone, in->HostEndian ); OUTPTR_POSTPROCESS(CountDone); return(err);}UDIError d386_UDICopy (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIResource From; /* In */ UDIResource To; /* In */ UDICount Count; /* In */ UDISizeT Size; /* In */ UDICount *CountDone; /* Out */ UDIBool Direction; /* In */ )UDIError err; OUTPTR_PREPROCESS(CountDone); err = UDICopy( in->From, in->To, in->Count, in->Size, local.CountDone, in->Direction ); OUTPTR_POSTPROCESS(CountDone); return(err);}UDIError d386_UDIExecute (void _far * rm_stk_ptr, int stacksize){/* no incoming parameters */ return(UDIExecute());}UDIError d386_UDIStep (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS_NO_PTR( UDIUInt32 Steps; /* In */ UDIStepType StepType; /* In */ UDIRange Range; /* In */ )UDIError err; err = UDIStep( in->Steps, in->StepType, in->Range ); return(err);}UDIVoid d386_UDIStop (void _far * rm_stk_ptr, int stacksize){/* no incoming parameters, no return value */ UDIStop();}UDIError d386_UDIWait (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIInt32 MaxTime; /* In */ UDIPId *PId; /* Out */ UDIUInt32 *StopReason; /* Out */ )UDIError err; OUTPTR_PREPROCESS(PId); OUTPTR_PREPROCESS(StopReason); err = UDIWait( in->MaxTime, local.PId, local.StopReason ); OUTPTR_POSTPROCESS(PId); OUTPTR_POSTPROCESS(StopReason); return(err);}UDIError d386_UDISetBreakpoint (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIResource Addr; /* In */ UDIInt32 PassCount; /* In */ UDIBreakType Type; /* In */ UDIBreakId *BreakId; /* Out */ )UDIError err; OUTPTR_PREPROCESS(BreakId); err = UDISetBreakpoint( in->Addr, in->PassCount, in->Type, local.BreakId ); OUTPTR_POSTPROCESS(BreakId); return(err);}UDIError d386_UDIQueryBreakpoint (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIBreakId BreakId; /* In */ UDIResource *Addr; /* Out */ UDIInt32 *PassCount; /* Out */ UDIBreakType *Type; /* Out */ UDIInt32 *CurrentCount; /* Out */ )UDIError err; OUTPTR_PREPROCESS(Addr); OUTPTR_PREPROCESS(PassCount); OUTPTR_PREPROCESS(Type); OUTPTR_PREPROCESS(CurrentCount); err = UDIQueryBreakpoint( in->BreakId, local.Addr, local.PassCount, local.Type, local.CurrentCount ); OUTPTR_POSTPROCESS(Addr); OUTPTR_POSTPROCESS(PassCount); OUTPTR_POSTPROCESS(Type); OUTPTR_POSTPROCESS(CurrentCount); return(err);}UDIError d386_UDIClearBreakpoint (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS_NO_PTR( UDIBreakId BreakId; /* In */ ) return(UDIClearBreakpoint( in->BreakId ));}UDIError d386_UDIGetStdout (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIHostMemPtr Buf; /* Out */ UDISizeT BufSize; /* In */ UDISizeT *CountDone; /* Out */ )UDIError err; OUTPTR_PREPROCESS_COUNT(Buf, in->BufSize); OUTPTR_PREPROCESS(CountDone); err = UDIGetStdout( local.Buf, in->BufSize, local.CountDone ); OUTPTR_POSTPROCESS_COUNT(Buf, *(local.CountDone)); OUTPTR_POSTPROCESS(CountDone); return(err);}UDIError d386_UDIGetStderr (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIHostMemPtr Buf; /* Out */ UDISizeT BufSize; /* In */ UDISizeT *CountDone; /* Out */ )UDIError err; OUTPTR_PREPROCESS_COUNT(Buf, in->BufSize); OUTPTR_PREPROCESS(CountDone); err = UDIGetStderr( local.Buf, in->BufSize, local.CountDone ); OUTPTR_POSTPROCESS_COUNT(Buf, *(local.CountDone)); OUTPTR_POSTPROCESS(CountDone); return(err);}UDIError d386_UDIPutStdin (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIHostMemPtr Buf; /* In */ UDISizeT Count; /* In */ UDISizeT *CountDone; /* Out */ )UDIError err; INPTR_PREPROCESS_COUNT(Buf, in->Count); OUTPTR_PREPROCESS(CountDone); err = UDIPutStdin( local.Buf, in->Count, local.CountDone ); OUTPTR_POSTPROCESS(CountDone); return(err);}UDIError d386_UDIStdinMode (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIMode *Mode; /* Out */ )UDIError err; OUTPTR_PREPROCESS(Mode); err = UDIStdinMode( local.Mode ); OUTPTR_POSTPROCESS(Mode); return(err);}UDIError d386_UDIPutTrans (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIHostMemPtr Buf; /* In */ UDISizeT Count; /* In */ UDISizeT *CountDone; /* Out */ )UDIError err; INPTR_PREPROCESS_COUNT(Buf, in->Count); OUTPTR_PREPROCESS(CountDone); err = UDIPutTrans( local.Buf, in->Count, local.CountDone ); OUTPTR_POSTPROCESS(CountDone); return(err);}UDIError d386_UDIGetTrans (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIHostMemPtr Buf; /* Out */ UDISizeT BufSize; /* In */ UDISizeT *CountDone; /* Out */ )UDIError err; OUTPTR_PREPROCESS_COUNT(Buf, in->BufSize); OUTPTR_PREPROCESS(CountDone); err = UDIGetTrans( local.Buf, in->BufSize, local.CountDone ); OUTPTR_POSTPROCESS_COUNT(Buf, *(local.CountDone)); OUTPTR_POSTPROCESS(CountDone); return(err);}UDIError d386_UDITransMode (void _far * rm_stk_ptr, int stacksize){INCOMING_PARAMS( UDIMode *Mode; /* Out */ )UDIError err; OUTPTR_PREPROCESS(Mode); err = UDITransMode( local.Mode ); OUTPTR_POSTPROCESS(Mode); return(err);}#endif/*==================== End of DOS386 glue routines ====================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -