/****************************************************************************** * Copyright 1991 Advanced Micro Devices, Inc. * * This software is the property of Advanced Micro Devices, Inc (AMD) which * specifically grants the user the right to modify, use and distribute this * software provided this notice is not removed or altered. All other rights * are reserved by AMD. * * AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS * SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL * DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR * USE OF THIS SOFTWARE. * * Comments about this software should be directed to udi@amd.com. If access * to electronic mail isn't available, send mail to: * * Advanced Micro Devices, Inc. * 29K Support Products * Mail Stop 573 * 5900 E. Ben White Blvd. * Austin, TX 78741 * * For more detailed information about the values, types, and functions * defined and declared here, see the corresponding UDI spec available * from AMD at the address above. ***************************************************************************** * $Id$ * $Id: @(#)udiproc.h 2.11, AMD */ /* local type decs. and macro defs. not in a .h file ************* MACRO/TYPE */ #include "udiphcfg.h" /* Get host specific configuration */ #include "udiptcfg.h" /* Get target specific configuration */ /* Here are all of the CPU Families for which UDI is currently defined */ #define Am29K 1 /* AMD's Am290xx and Am292xx parts */ typedef UDIInt UDIError; typedef UDIInt UDISessionId; typedef UDIInt UDIPId; typedef UDIInt UDIStepType; typedef UDIInt UDIBreakType; typedef UDIUInt UDIBreakId; typedef UDIUInt UDIMode; typedef UDIStruct { CPUSpace Space; CPUOffset Offset; } UDIResource; typedef UDIStruct { CPUOffset Low; CPUOffset High; } UDIRange; typedef UDIStruct { CPUSpace Space; CPUOffset Offset; CPUSizeT Size; } UDIMemoryRange; /* Values for UDIStepType parameters */ #define UDIStepNatural 0x0000 #define UDIStepOverTraps 0x0001 #define UDIStepOverCalls 0x0002 #define UDIStepInRange 0x0004 #define UDIStepNatural 0x0000 /* Values for UDIBreakType parameters */ #define UDIBreakFlagExecute 0x0001 #define UDIBreakFlagRead 0x0002 #define UDIBreakFlagWrite 0x0004 #define UDIBreakFlagFetch 0x0008 /* Special values for UDIWait MaxTime parameter */ #define UDIWaitForever (UDIInt32) -1 /* Infinite time delay */ /* Special values for PId */ #define UDIProcessProcessor -1 /* Raw Hardware, if possible */ /* Values for UDIWait StopReason */ #define UDIGrossState 0xff #define UDITrapped 0 /* Fine state - which trap */ #define UDINotExecuting 1 #define UDIRunning 2 #define UDIStopped 3 #define UDIWarned 4 #define UDIStepped 5 #define UDIWaiting 6 #define UDIHalted 7 #define UDIStdoutReady 8 /* fine state - size */ #define UDIStderrReady 9 /* fine state - size */ #define UDIStdinNeeded 10 /* fine state - size */ #define UDIStdinModeX 11 /* fine state - mode */ #define UDIBreak 12 /* Fine state - Breakpoint Id */ #define UDIExited 13 /* Fine state - exit code */ /* Enumerate the return values from the callback function for UDIEnumerateTIPs. */ #define UDITerminateEnumeration 0 #define UDIContinueEnumeration 1 /* Enumerate values for Terminate parameter to UDIDisconnect */ #define UDITerminateSession 1 #define UDIContinueSession 0 /* Error codes */ #define UDINoError 0 /* No error occured */ #define UDIErrorNoSuchConfiguration 1 #define UDIErrorCantHappen 2 #define UDIErrorCantConnect 3 #define UDIErrorNoSuchConnection 4 #define UDIErrorNoConnection 5 #define UDIErrorCantOpenConfigFile 6 #define UDIErrorCantStartTIP 7 #define UDIErrorConnectionUnavailable 8 #define UDIErrorTryAnotherTIP 9 #define UDIErrorExecutableNotTIP 10 #define UDIErrorInvalidTIPOption 11 #define UDIErrorCantDisconnect 12 #define UDIErrorUnknownError 13 #define UDIErrorCantCreateProcess 14 #define UDIErrorNoSuchProcess 15 #define UDIErrorUnknownResourceSpace 16 #define UDIErrorInvalidResource 17 #define UDIErrorUnsupportedStepType 18 #define UDIErrorCantSetBreakpoint 19 #define UDIErrorTooManyBreakpoints 20 #define UDIErrorInvalidBreakId 21 #define UDIErrorNoMoreBreakIds 22 #define UDIErrorUnsupportedService 23 #define UDIErrorTryAgain 24 #define UDIErrorIPCLimitation 25 #define UDIErrorIncomplete 26 #define UDIErrorAborted 27 #define UDIErrorTransDone 28 #define UDIErrorCantAccept 29 #define UDIErrorTransInputNeeded 30 #define UDIErrorTransModeX 31 #define UDIErrorInvalidSize 32 #define UDIErrorBadConfigFileEntry 33 #define UDIErrorIPCInternal 34 /* TBD */ /****************************************************************** PROCEDURES */ UDIError UDIConnect UDIParams(( char *Configuration, /* In */ UDISessionId *Session /* Out */ )); UDIError UDIDisconnect UDIParams(( UDISessionId Session, /* In */ UDIBool Terminate /* In */ )); UDIError UDISetCurrentConnection UDIParams(( UDISessionId Session /* In */ )); UDIError UDICapabilities UDIParams(( UDIUInt32 *TIPId, /* Out */ UDIUInt32 *TargetId, /* Out */ UDIUInt32 DFEId, /* In */ UDIUInt32 DFE, /* In */ UDIUInt32 *TIP, /* Out */ UDIUInt32 *DFEIPCId, /* Out */ UDIUInt32 *TIPIPCId, /* Out */ char *TIPString /* Out */ )); UDIError UDIEnumerateTIPs UDIParams(( UDIInt (*UDIETCallback) /* In */ UDIParams(( char *Configuration )) /* In to callback() */ )); UDIError UDIGetErrorMsg UDIParams(( UDIError ErrorCode, /* In */ UDISizeT MsgSize, /* In */ char *Msg, /* Out */ UDISizeT *CountDone /* Out */ )); UDIError UDIGetTargetConfig UDIParams(( UDIMemoryRange KnownMemory[], /* Out */ UDIInt *NumberOfRanges, /* In/Out */ UDIUInt32 ChipVersions[], /* Out */ UDIInt *NumberOfChips /* In/Out */ )); UDIError UDICreateProcess UDIParams(( UDIPId *PId /* Out */ )); UDIError UDISetCurrentProcess UDIParams(( UDIPId PId /* In */ )); UDIError UDIDestroyProcess UDIParams(( UDIPId PId /* In */ )); UDIError UDIInitializeProcess UDIParams(( UDIMemoryRange ProcessMemory[], /* In */ UDIInt NumberOfRanges, /* In */ UDIResource EntryPoint, /* In */ CPUSizeT StackSizes[], /* In */ UDIInt NumberOfStacks, /* In */ char *ArgString /* In */ )); UDIError UDIRead UDIParams(( UDIResource From, /* In */ UDIHostMemPtr To, /* Out */ UDICount Count, /* In */ UDISizeT Size, /* In */ UDICount *CountDone, /* Out */ UDIBool HostEndian /* In */ )); UDIError UDIWrite UDIParams(( UDIHostMemPtr From, /* In */ UDIResource To, /* In */ UDICount Count, /* In */ UDISizeT Size, /* In */ UDICount *CountDone, /* Out */ UDIBool HostEndian /* In */ )); UDIError UDICopy UDIParams(( UDIResource From, /* In */ UDIResource To, /* In */ UDICount Count, /* In */ UDISizeT Size, /* In */ UDICount *CountDone, /* Out */ UDIBool Direction /* In */ )); UDIError UDIExecute UDIParams(( void )); UDIError UDIStep UDIParams(( UDIUInt32 Steps, /* In */ UDIStepType StepType, /* In */ UDIRange Range /* In */ )); UDIVoid UDIStop UDIParams(( void )); UDIError UDIWait UDIParams(( UDIInt32 MaxTime, /* In */ UDIPId *PId, /* Out */ UDIUInt32 *StopReason /* Out */ )); UDIError UDISetBreakpoint UDIParams(( UDIResource Addr, /* In */ UDIInt32 PassCount, /* In */ UDIBreakType Type, /* In */ UDIBreakId *BreakId /* Out */ )); UDIError UDIQueryBreakpoint UDIParams(( UDIBreakId BreakId, /* In */ UDIResource *Addr, /* Out */ UDIInt32 *PassCount, /* Out */ UDIBreakType *Type, /* Out */ UDIInt32 *CurrentCount /* Out */ )); UDIError UDIClearBreakpoint UDIParams(( UDIBreakId BreakId /* In */ )); UDIError UDIGetStdout UDIParams(( UDIHostMemPtr Buf, /* Out */ UDISizeT BufSize, /* In */ UDISizeT *CountDone /* Out */ )); UDIError UDIGetStderr UDIParams(( UDIHostMemPtr Buf, /* Out */ UDISizeT BufSize, /* In */ UDISizeT *CountDone /* Out */ )); UDIError UDIPutStdin UDIParams(( UDIHostMemPtr Buf, /* In */ UDISizeT Count, /* In */ UDISizeT *CountDone /* Out */ )); UDIError UDIStdinMode UDIParams(( UDIMode *Mode /* Out */ )); UDIError UDIPutTrans UDIParams(( UDIHostMemPtr Buf, /* In */ UDISizeT Count, /* In */ UDISizeT *CountDone /* Out */ )); UDIError UDIGetTrans UDIParams(( UDIHostMemPtr Buf, /* Out */ UDISizeT BufSize, /* In */ UDISizeT *CountDone /* Out */ )); UDIError UDITransMode UDIParams(( UDIMode *Mode /* Out */ ));