320 lines
8.4 KiB
C
320 lines
8.4 KiB
C
/******************************************************************************
|
|
* 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 */
|
|
));
|