/* 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 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #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 */ ));