1993-06-09 22:28:58 +00:00
|
|
|
/* local type decs. and macro defs.
|
|
|
|
|
|
|
|
Copyright 1993 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
This file is part of GDB.
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
1995-08-02 03:41:12 +00:00
|
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
1992-04-22 20:40:53 +00:00
|
|
|
|
|
|
|
#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 */
|
|
|
|
));
|