Files
vxWorks/h/wtx.h
2025-08-20 18:25:46 +08:00

1440 lines
48 KiB
C

/* wtx.h - wtx protocol header file */
/* Copyright 1984-2004 Wind River Systems, Inc. */
/*
modification history
--------------------
05s,12oct04,jeg added wtxLastRuntimeErrorGet() API declaration
05r,03sep04,jeg added wtxTargetHasDspGet() declarations.
05q,18jun04,x_p Add addOptions to wtxProcessCreate
05p,16mar04,x_p Handle I/O redirection in wtxProcessCreate
05o,26feb04,mil Added SPE support for PPC85XX.
05n,15apr03,sn added wtxDemanglerStyleGet, obsoleted wtxDefaultDemanglerStyle
05m,29aug03,x_p Changed prototype
05l,04mar03,fle fixed (again ?) wtxEnvironRegistryOptionsGet() declaration
05k,21feb03,fle fixed wtxEnvironRegistryOptionsGet() declaration
05j,18feb03,p_b merge from T22-latest
05i,12feb03,elg Fix compilation error.
05h,13dec02,p_b changed TGT_XXX by WTX_TGT_XXX
05g,21nov02,p_b merging margaux/T3, 64 bits support
05f,07nov02,fle removed wtxSymAddWithGroup ()
05e,18mar02,x_p Updated wtxPdCreate for handling env vars
05d,24jan02,x_p Added wtxPdInfoSet / Get
05c,27nov01,x_p Added wtxPdTasksListGet
05b,22aug01,x_p Merge from bsdos.temp
05a,12sep00,c_c Added wtxTargetToolNameGet, wtxTargetBspShortNameGet,
wtxTargetRtNameGet. Removed wtxTargetRtTypeGet.
04z,08aug00,mts Added wtxLoadModeGet
04z,08aug00,mts Added wtxLoadModeGet
04y,18may00,fle added wtx log options for registry to
wtxEnvironRegistryOptionsGet()
04x,06apr00,fle added wtxToolOnHostAttach() that attaches to a target server
registered on a remote rgistry
04w,13mar00,p_b handled load and run facility.
04v,03mar00,fle renamed wtxTgtsvrLogGet() into wtxTsLogGet() for API
consistency
04u,17feb00,fle added wtxLogGet() routine
04t,01feb00,fle made pFunc parameter of wtxAsyncNotifyEnable() be a
WTX_EVENT_HANDLER rather than a FUNCPTR
04s,26jan00,dbt Added user service routines prototypes.
04r,15dec99,p_b fixed wrong typos in comments.
04q,26nov99,fle made wtxCpuInfoGet() return a char pointer, not a const char
pointer aymore
04p,26oct99,fle moved registry related routines declarations into
wtxRegistry.h
04o,21oct99,p_b Removed wtxEach(),wtxServiceAdd(). Renamed wtxModuleListFree()
in wtxObjModuleListFree(). Fixed wrong comments in wtxContext..
structure definitions. (Beware that it explicitly appears in
the documentation). Changed many "char *" to "const char *".
Removed wtxSymAddWithGroup (). Updated wtxPdCreate() profile.
Renamed wtxObjModuleList() in wtxObjModuleListGet().
04n,15oct99,fle exported wtxDescDuplicate() since it is now used in several
files
+ history cleanup
04m,13oct99,fle made include of wtxRegistry.h into ifdef HOST
04l,07oct99,fle added new registry related APIs declarations
04k,06oct99,pad Replaced WTX_SYMBOL_TYPE with UINT32 in wtxSym...() routines.
04j,04oct99,pad Added prototype of wtxSymRegister().
04i,21sep99,c_c Added Context Stop service.
04h,27aug99,fle added wtxPdCurrentSet(), wtxPdCurrentGet() and wtxPdRemove()
routines declarations
+ changed wtxPdCreateAt() into wtxPdCreate()
04g,22jul99,p_b changed wtxSymFind, wtxSymListGet, wtxObjModuleListGet apis.
04f,20jul99,fle memory leaks fixes
04e,19jul99,fle made the pdId parameters be WTX_TGT_ADDR_T and not UINT32 anymore
04d,16jul99,p_b added wtxModuleListFree (). Change wtxSymListFree () interface.
04c,16jul99,c_c Modified wtxMemMove.
04b,09jul99,fle moved N_DASM_INST_DEFAULT from here to wtxtypes.h
04a,08jul99,p_b Added wtxVioLink () & wtxVioUnlink (). Removed wtxConsoleXxx().
03z,07jul99,p_b Changed wtxSymListByModuleIdGet & wtxSymListByModuleNameGet.
03y,06jul99,c_c Added an option to wtxContextKill.
03x,05jul99,p_b Modified wtxSymFind, wtxSymListGet, wtxObjModuleListGet.
03w,05jul99,c_c Implemented PD context definition.
03v,02jul99,c_c Removed WTX_EVENTPOINT_LIST references.
03u,01jul99,c_c Modified wtxObjModuleLoad return value.
03t,30jun99,fle added wtxPdInfoQGet() routine declaration
03s,25jun99,fle added pdIds to all wtxMem calls
03r,21jun99,fle added wtxFreeAdd() routine declaration
03q,01jun99,c_c WTX for Protection Domain implementation: moved all type
definition to wtxtypes.h
03p,25may99,fle added WTX_SVR_TYPE enum
03o,23feb99,c_c Implemented an API to get the target IP address (SPR #25044).
03n,22sep98,l_k Removed wtxFindExecutable.
03m,21sep98,l_k Implement wtxFindExecutable.
03l,18sep98,pcn Implement wtxObjModuleInfoAndPathGet.
03k,18aug98,pcn Use WTX_MSG_EVTPT_LIST_2.
03j,20jul98,pcn Added evtptNum and toolId in the wtxEventpointListGet return
list.
03i,06jul98,pcn Removed wtxObjModuleUndefSymAdd from API.
03h,19jun98,pcn Added wtxObjModuleLoadStart, wtxObjModuleLoadProgressReport,
wtxObjModuleLoadCancel.
03g,11jun98,pcn Added an input parameter at wtxEventListGet.
03f,09jun98,jmp added wtxAsyncResultFree and wtxAsyncEventGet().
03e,03jun98,pcn Added 2 requests: wtxSymListByModuleNameGet and
wtxSymListByModuleIdGet.
03d,25may98,pcn Changed wtxTsLock in wtxTsTimedLock, wtxEventpointList_2 in
wtxEventpointListGet, wtxObjModuleUnload_2 in
wtxObjModuleUnloadByName.
03c,30apr98,dbt added wtxHwBreakpointAdd and wtxEventpointAdd.
03b,28apr98,pcn Removed wtxCommandSend.
03a,23apr98,fle added CPU name retrieving to wtxCpuInfoGet
02z,21apr98,fle added wtxCpuInfoGet()
02y,26mar98,pcn WTX 2: added a new parameter in wtxLogging.
02x,03mar98,fle got rid of wtxRegistryPing() function declaration
02w,02mar98,pcn WTX 2: moved WTX_LD_M_FILE_DESC in wtxMsg.h. Added
WTX_EVTPT_LIST_2 definition. Added wtxAsyncNotifyEnable,
wtxAsyncNotifyDisable, wtxCacheTextUpdate, wtxCommandSend,
wtxEventListGet, wtxEventpointList_2, wtxLogging,
wtxMemWidthRead, wtxMemWidthWrite, wtxObjModuleChecksum,
wtxObjModuleLoad_2, wtxObjModuleUnloa wtxUnregisterForEvent.
Changed wtxTargetRtTypeGet, wtxTargetCpuTypeGet return type.
02v,29jan98,fle added wtxRegistryPing() declaration
+ added WTX_REGISTRY_PING_INTERVAL definition
02u,28jan98,c_c Packed all wtxEvtxxxStringGet routines into one.
01a,06oct94,p_m written.
*/
#ifndef __INCwtxh
#define __INCwtxh 1
#ifdef __cplusplus
extern "C" {
#endif
#ifdef HOST
#include <setjmp.h>
#else
#include "vxWorks.h"
#include "setjmp.h"
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#include "bootLib.h"
#endif /* HOST */
#include "wtxtypes.h"
#include "wtxmsg.h"
#include "wtxerr.h"
#include "demanglerTypes.h"
#ifdef HOST
#include "wtxRegistry.h"
#endif /* HOST */
/* defines */
#define WTX_ALL_EVENTS ~0 /* number of events returned */
#define WTX_LOG_NO_LIMIT 0 /* no max size for the log file */
#define WTX_LOCK_FOREVER 0 /* lock indefinitely the target server */
#define LOAD_MODULE_INFO_ONLY 0x1000000 /* module synchronization */
#define WTX_TRY(hWtx) \
{\
WTX_HANDLER_T errHandler;\
jmp_buf jumpBuf;\
\
wtxErrClear (hWtx);\
errHandler = wtxErrHandlerAdd (hWtx, &wtxErrExceptionFunc, &jumpBuf);\
if (setjmp (jumpBuf) == 0)
#define WTX_CATCH(hWtx, errCode) else if (wtxErrGet (hWtx) == errCode)
#define WTX_CATCH_ALL(hWtx) else
#define WTX_TRY_END(hWtx) \
wtxErrHandlerRemove (hWtx, errHandler);\
}
#define WTX_THROW(hWtx, errCode) wtxErrDispatch (hWtx, errCode)
#ifndef HOST
/* externals */
extern BOOT_PARAMS sysBootParams;
#endif /* HOST */
/* function declarations */
extern char * wtxCpuInfoGet /* get target CPU information from DB */
(
int cpuNum, /* CPU number to get info on */
CPU_INFO cpuInfoType /* CPU info type to get */
);
extern STATUS wtxInitialize /* init to be called by WTX client */
(
HWTX * phWtx /* handle to use in next API calls */
);
extern WTX_TGT_ADDR_T wtxPdCurrentGet /* gets the current Protection Domain */
(
HWTX hWtx /* WTX session handler */
);
extern STATUS wtxPdCurrentSet /* sets the current Protection Domain */
(
HWTX hWtx, /* WTX session handler */
WTX_TGT_ID_T pdId /* protection domain ID to be set */
);
extern STATUS wtxPdDelete /* deletes given Protection Domain */
(
HWTX hWtx, /* WTX session handler */
WTX_TGT_ID_T pdId, /* protection domain ID to delete */
WTX_CTX_KILL_OPT options /* protection domain deletion options */
);
extern STATUS wtxProcessDelete /* deletes given Protection Domain */
(
HWTX hWtx, /* WTX session handler */
WTX_TGT_ID_T pdId, /* protection domain ID to delete */
WTX_CTX_KILL_OPT options /* protection domain deletion options */
);
extern WTX_TGT_ADDR_T wtxPdKernelGet /* get kernel Protection Domain ID */
(
HWTX hWtx /* WTX session handler */
);
extern WTX_PD_DESC_Q * wtxPdInfoQGet /* get the list of allocated PDs */
(
HWTX hWtx /* WTX session handler */
);
extern STATUS wtxProbe /* probe to see if registry is alive */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxTerminate /* terminate use of WTX client handle */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxTimeoutSet /* set WTX timeout */
(
HWTX hWtx, /* WTX API handle */
UINT32 msec /* new timeout value in milliseconds */
);
extern STATUS wtxTimeoutGet /* get the current timeout */
(
HWTX hWtx, /* WTX API handle */
UINT32 * pMsec /* pointer to timeout value in ms */
);
extern STATUS wtxAgentModeSet /* set the mode of the target agent */
(
HWTX hWtx, /* WTX API handle */
WTX_AGENT_MODE_TYPE agentMode /* debug agent mode */
);
extern WTX_AGENT_MODE_TYPE wtxAgentModeGet /* get agent mode */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxAsyncNotifyEnable /* start async. event notification */
(
HWTX hWtx, /* WTX API handle */
WTX_EVENT_HANDLER pFunc /* user defined function */
);
extern STATUS wtxAsyncNotifyDisable /* stop async. event notification */
(
HWTX hWtx /* WTX API handle */
);
extern WTX_EVENT_DESC * wtxAsyncEventGet
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxAsyncResultFree
(
HWTX hWtx, /* WTX API handle */
WTX_EVENT_DESC * pEventDesc /* pointer to structure to free */
);
extern WTX_TGT_ID_T wtxBreakpointAdd /* create a new event point */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext,
WTX_TGT_ADDR_T tgtAddr /* breakpoint address */
);
extern STATUS wtxCacheTextUpdate /* update the target text cache */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ADDR_T addr, /* start address */
UINT32 nBytes /* number of bytes to update */
);
extern STATUS wtxClientDataGet /* get the client data */
(
HWTX hWtx, /* WTX API handle */
void ** ppClientData /* pointer to client data pointer */
);
extern STATUS wtxClientDataSet /* set client data */
(
HWTX hWtx, /* WTX API handle */
void * pClientData /* value to associate with handle */
);
extern STATUS wtxContextStop /* stop execution of target context */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext
);
extern STATUS wtxContextCont /* continue execution of target ctxt */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext
);
extern WTX_CONTEXT_ID_T wtxContextCreate /* create a context on target */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT_DESC * pContextDesc /* context descriptor */
);
extern WTX_TGT_ID_T wtxContextExitNotifyAdd /* add exit evpt notification */
(
HWTX hWTx, /* WTX API handle */
WTX_CONTEXT * pContext
);
extern STATUS wtxContextKill /* kill a target context */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext,
UINT32 options /* option for the kill operation */
);
extern STATUS wtxContextResume /* resume execution of a target ctxt */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext
);
extern STATUS wtxContextStep /* single step exec of target ctxt */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext,
WTX_TGT_ADDR_T stepStart, /* stepStart PC value */
WTX_TGT_ADDR_T stepEnd /* stepEnd PC value */
);
extern WTX_CONTEXT_STATUS wtxContextStatusGet /* get status of a context */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext
);
extern STATUS wtxContextSuspend /* suspend a target context */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext
);
extern STATUS wtxErrClear /* clear any error for the tool */
(
HWTX hWtx /* WTX API handle */
);
extern WTX_ERROR_T wtxErrGet /* return the last error for a handle */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxErrSet /* set the error code for the handle */
(
HWTX hWtx, /* WTX API handle */
UINT32 errCode /* error value to set */
);
extern const char * wtxErrMsgGet /* fetch last WTX API error string */
(
HWTX hWtx /* WTX API handle */
);
extern const char * wtxErrToMsg /* convert error code to string */
(
HWTX hWtx, /* WTX API handle */
WTX_ERROR_T errCode /* error code to convert */
);
extern STATUS wtxErrDispatch /* dispatch error with supplied code */
(
HWTX hWtx, /* WTX API handle */
WTX_ERROR_T errCode /* error code to register */
);
extern BOOL32 wtxErrExceptionFunc /* a function to handle an error */
(
HWTX hWtx, /* WTX API handle */
void * pClientData, /* pointer to a jump buffer */
void * pCallData /* error code to return via setjmp() */
);
extern WTX_HANDLER_T wtxErrHandlerAdd /* add an error handler */
(
HWTX hWtx, /* WTX API handle */
WTX_HANDLER_FUNC pFunc, /* function to call on error */
void * pClientData /* data to pass function */
);
extern STATUS wtxErrHandlerRemove /* remove error handler for WTX handle*/
(
HWTX hWtx, /* WTX API handle */
WTX_HANDLER_T pHandler /* error handler */
);
extern STATUS wtxEventAdd /* send an event to the target server */
(
HWTX hWtx, /* WTX API handle */
const char * event, /* event string to send */
UINT32 addlDataLen, /* length of addl data block in bytes */
const void * pAddlData /* pointer to additional data */
);
extern WTX_EVENT_DESC * wtxEventGet /* get an event from the target */
(
HWTX hWtx /* WTX API handle */
);
extern WTX_EVENT_NODE * wtxEventListGet /* get all the events in one call */
(
HWTX hWtx, /* WTX API handle */
UINT32 nEvents /* number of events to return */
);
extern WTX_TGT_ID_T wtxEventpointAdd /* create a new event point */
(
HWTX hWtx, /* WTX API handle */
WTX_EVTPT * pEvtpt /* eventpoint descriptor */
);
extern WTX_TGT_ID_T wtxHwBreakpointAdd /* create a new hardware breakpoint */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext,
WTX_TGT_ADDR_T tgtAddr, /* breakpoint address */
WTX_TGT_INT_T type /* access type (arch dependant) */
);
extern STATUS wtxEventpointDelete /* delete eventpoint from the target */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T evtptId /* ID of eventpoint to delete */
);
extern WTX_EVTPT_LIST * wtxEventpointListGet /* list event points on TS */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxFileClose /* close a file on the target server */
(
HWTX hWtx, /* WTX API handle */
INT32 fileDescriptor /* file to close descriptor */
);
extern WTX_TGT_ID_T wtxFileOpen /* open a file on the target server */
(
HWTX hWtx, /* WTX API handle */
const char * fileName, /* file name */
WTX_OPEN_FLAG flags, /* unix style flags */
INT32 mode, /* unix style mode */
INT32 channel /* channel id for redirection */
);
extern STATUS wtxFreeAdd /* adds a pointer to free list */
(
HWTX hWtx, /* WTX session handler */
void * pToFree, /* pointer to add to the free list */
FUNCPTR pFreeRtn, /* pointer to freeing routine */
void * pMsgToFree, /* message pointer containing pToFree */
FUNCPTR pMsgFreeRtn /* routine to use to free pMsgToFree */
);
extern WTX_CONTEXT_ID_T wtxFuncCall /* call a function on the target */
(
HWTX hWtx, /* WTX API handle */
WTX_TASK_CONTEXT_DEF *pTaskContextDef /* pointer to call descriptor */
);
extern STATUS wtxDirectCall /* call func on target within agent */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ADDR_T entry, /* function address */
void * pRetVal, /* pointer to return value */
UINT32 argc, /* argument count */
... /* argument list */
);
extern WTX_GOPHER_TAPE * wtxGopherEval /* evaluate Gopher string on target */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* targeted PD */
const char * inputString /* gopher program to evaluate */
);
extern STATUS wtxLogging /* WDB/WTX logging facilities */
(
HWTX hWtx, /* WTX API handle */
int type, /* WDB or WTX logging */
int action, /* logging ON or OFF */
const char * fileName, /* logging file name */
int maxSize, /* log file max size */
const char * filter /* request filter */
);
extern WTX_MEM_INFO * wtxMemInfoGet /* get info about memory pool */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId /* PD into which we want to operate */
);
extern STATUS wtxMemAddToPool /* add memory to the agent pool */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD ID to look into */
WTX_TGT_ADDR_T address, /* base of memory block to add */
UINT32 size /* size of memory block to add */
);
extern WTX_TGT_ADDR_T wtxMemAlign /* allocate aligned target memory */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD into which we want to operate */
WTX_TGT_ADDR_T alignment, /* alignment boundary */
UINT32 numBytes /* size of block to allocate */
);
extern WTX_TGT_ADDR_T wtxMemAlloc /* alloc blocks in memory pool */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD into which we want to operate */
UINT32 numBytes /* size to allocate in bytes */
);
extern UINT32 wtxMemChecksum /* perform checksum on target memory */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD ID to look into */
WTX_TGT_ADDR_T startAddr, /* remote addr to start checksum at */
UINT32 numBytes /* number of bytes to checksum */
);
extern WTX_DASM_INST_LIST * wtxMemDisassemble /* disassemble memory */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ADDR_T pdId, /* PD ID to look into */
WTX_TGT_ADDR_T startAddr, /* inst address to match */
UINT32 nInst, /* number of instructions to get */
WTX_TGT_ADDR_T endAddr, /* last address to match */
BOOL32 printAddr, /* if instruction's address appended */
BOOL32 printOpcodes, /* if instruction's opcodes appended */
BOOL32 hexaAddr /* for HEX address representation */
);
extern STATUS wtxMemFree /* free a block of target memory */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD into which we want to operate */
WTX_TGT_ADDR_T address /* target mem block address to free */
);
extern STATUS wtxMemMove /* move a block of target memory */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T srcPdId, /* source PD */
WTX_TGT_ADDR_T srcAddr, /* remote addr to move from */
WTX_TGT_ID_T dstPdId, /* destination PD */
WTX_TGT_ADDR_T destAddr, /* remote addr to move to */
UINT32 numBytes /* number of bytes to move */
);
extern UINT32 wtxMemRead /* read memory from the target */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD ID to look into */
WTX_TGT_ADDR_T fromAddr, /* target addr to read from */
void * toAddr, /* local addr to read to */
UINT32 numBytes, /* bytes to read */
UINT32 options /* memory read options */
);
extern UINT32 wtxMemWidthRead /* read memory on <width> bytes */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD ID to look into */
WTX_TGT_ADDR_T fromAddr, /* target addr to read from */
void * toAddr, /* local addr to read to */
UINT32 numBytes, /* bytes to read */
UINT8 width, /* width to read */
UINT32 options /* memory read options */
);
extern WTX_TGT_ADDR_T wtxMemRealloc /* reallocate a block of target mem */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD into which we want to operate */
WTX_TGT_ADDR_T address, /* memory block to reallocate */
UINT32 numBytes /* new size */
);
extern UINT32 wtxMemSet /* set target memory to given value */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD ID to look into */
WTX_TGT_ADDR_T addr, /* remote addr to write to */
UINT32 numBytes, /* number of bytes to set */
UINT32 val /* value to set */
);
extern STATUS wtxMemScan /* scan target memory for pattern */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD ID to look into */
BOOL32 match, /* match/Not-match pattern boolean */
WTX_TGT_ADDR_T startAddr, /* target address to start scan */
WTX_TGT_ADDR_T endAddr, /* target address to finish scan */
UINT32 numBytes, /* number of bytes in pattern */
void * pattern, /* pointer to pattern to search for */
WTX_TGT_ADDR_T * pResult /* pointer to result address */
);
extern UINT32 wtxMemWrite /* write memory on the target */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD ID to look into */
void * fromAddr, /* local addr to write from */
WTX_TGT_ADDR_T toAddr, /* remote addr to write to */
UINT32 numBytes, /* bytes to read */
UINT32 options /* memory write options */
);
extern UINT32 wtxMemWidthWrite /* write memory on the target */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD ID to look into */
void * fromAddr, /* local addr to write from */
WTX_TGT_ADDR_T toAddr, /* remote addr to write to */
UINT32 numBytes, /* number of bytes to read */
UINT8 width, /* width to read */
UINT32 options /* memory write options */
);
extern STATUS wtxObjModuleChecksum /* checks validity of target memory */
(
HWTX hWtx, /* WTX API handler */
WTX_TGT_ID_T pdId, /* protection domain ID to look into */
WTX_TGT_ID_T moduleId, /* module ID to check */
char * moduleName /* module name to check */
);
extern char * wtxObjModuleFindName /* find module name given its ID */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* protection domain in which to look */
WTX_TGT_ID_T moduleId /* module ID to get name from */
);
extern WTX_TGT_ID_T wtxObjModuleFindId /* find obj module ID from name */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* protection domain in which to look */
const char * moduleName /* module name to get ID from */
);
extern WTX_MODULE_INFO * wtxObjModuleInfoGet /* give info on obj module */
(
HWTX hWtx, /* WTX API handler */
WTX_TGT_ID_T pdId, /* protection domain to look into */
WTX_TGT_ID_T moduleId /* module ID to get name from */
);
extern WTX_MODULE_INFO * wtxObjModuleInfoAndPathGet /* give info on obj mod */
(
HWTX hWtx, /* WTX API handler */
WTX_TGT_ID_T pdId, /* protection domain to look into */
WTX_TGT_ID_T moduleId /* module ID to get name from */
);
extern WTX_MODULE_LIST * wtxObjModuleListGet /* list loaded obj modules */
(
HWTX hWtx, /* WTX API handle */
WTX_MOD_FIND_CRITERIA * pCriteria /* search criteria */
);
extern UINT32 wtxLoadModeGet /* get host loader load mode */
(
HWTX hWtx /* WTX API handle */
);
extern WTX_MODULE_INFO * wtxObjModuleLoad /* load a new object module */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD we want to load in */
WTX_MODULE_FILE_DESC * pFileDesc, /* module descriptor */
UINT32 loadOptions /* load options */
);
extern STATUS wtxObjModuleLoadStart /* asynchronous load */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD we want to load in */
WTX_MODULE_FILE_DESC * pFileDesc, /* module descriptor */
UINT32 loadOptions /* load options */
);
extern WTX_LOAD_REPORT_INFO * wtxObjModuleLoadProgressReport /* load status */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxObjModuleLoadCancel /* cancel an async. load */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxObjModuleUnload /* unload an obj module from target */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD into which we want to operate */
UINT32 option, /* unload option */
WTX_TGT_ID_T modId /* ID of module to unload */
);
extern STATUS wtxObjModuleByNameUnload /* unload an obj. mod. from target */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD into which we want to operate */
UINT32 option, /* unload option */
const char * name /* name of module to look for */
);
extern WTX_TGT_ADDR_T wtxProcessCreate
(
HWTX hWtx, /* WTX API handle */
const char * name, /* name of the PD to be created */
int options, /* options of the PD */
int addOptions, /* additionnal options */
int stackSize, /* heap size */
UINT32 uid, /* UID */
UINT32 gid, /* GID */
UINT32 priority, /* Priority */
UINT32 redirIn, /* RedirIn */
UINT32 redirOut, /* RedirOut */
UINT32 redirErr, /* RedirErr */
int argc, /* argc number */
char ** argv, /* argv for process */
int envc, /* envc number */
char ** envv /* envv for process */
);
extern WTX_TGT_ADDR_T wtxPdCreate
(
HWTX hWtx, /* WTX API handle */
const char * name, /* name of the PD to be created */
int options, /* options of the PD */
int heapSize, /* heap size */
int lowPriority, /* lowest priority a task may have */
int highPriority, /* highest priority a task may have */
WTX_TGT_ADDR_T pagePoolList, /* a list of page pools for the PD */
const char * linkPath /* link path to specify for the PD */
);
extern STATUS wtxRegisterForEvent /* send events matching expression */
(
HWTX hWtx, /* WTX API handle */
const char * regExp /* regular expr to select events */
);
extern STATUS wtxRegsGet /* read register data from the target */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext,
WTX_REG_SET_TYPE regSet, /* type of register set */
UINT32 firstByte, /* first byte of register set */
UINT32 numBytes, /* number of bytes of register set */
void * regMemory /* place holder for reg. values */
);
extern STATUS wtxRegsSet /* write to registers on the target */
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext,
WTX_REG_SET_TYPE regSet, /* type of register set */
UINT32 firstByte, /* first byte of reg. set */
UINT32 numBytes, /* number of bytes in reg. set. */
void * regMemory /* register contents */
);
extern void wtxSymListFree /* free a wtx symbol list */
(
WTX_SYM_LIST * pSymList /* symbol list to free */
);
extern void wtxObjModuleListFree /* free a wtx module list */
(
WTX_MODULE_LIST * pModList /* module list to free */
);
extern STATUS wtxResultFree /* free mem allocated by WTX API call */
(
HWTX hWtx, /* WTX API handle */
void * pResult /* pointer to WTX result structure */
);
extern WTX_TGT_ADDR_T wtxStrToTgtAddr /* convert str to a WTX_TGT_ADDR_T */
(
HWTX hWtx, /* WTX API handle */
const char * str /* string to convert */
);
extern INT32 wtxStrToInt32 /* convert str to an INT32 */
(
HWTX hWtx, /* WTX API handle */
const char * str /* string to convert */
);
extern WTX_CONTEXT_ID_T wtxStrToContextId /* convert str to ctxt ID */
(
HWTX hWtx, /* WTX API handle */
const char * str /* string to convert */
);
extern WTX_CONTEXT_TYPE wtxStrToContextType /* convert str ton ctxt type */
(
HWTX hWtx, /* WTX API handle */
const char * str /* string to convert */
);
extern WTX_EVENT_TYPE wtxStrToEventType /* convert string to event type */
(
HWTX hWtx, /* WTX API handle */
const char * str /* string to convert */
);
const char * wtxEventToStrType /* convert event type to a string */
(
WTX_EVENT_TYPE event /* WTX Event */
);
extern STATUS wtxSymAdd /* add symbol with given params */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD into which we want operate */
const char * symName, /* name of symbol to add */
WTX_TGT_ADDR_T symValue, /* value of symbol to add */
UINT32 symType /* type of symbol to add */
);
extern WTX_SYMBOL * wtxSymFind /* find a symbol in the symbol table */
(
HWTX hWtx, /* WTX API handle */
WTX_SYM_FIND_CRITERIA * pCriteria /* criteria structure */
);
extern WTX_SYM_LIST * wtxSymListGet /* find a symbol in the symbol table */
(
HWTX hWtx, /* WTX API handler */
WTX_SYM_FIND_CRITERIA * pCriteria /* criteria structure */
);
extern WTX_SYM_LIST * wtxSymListByModuleIdGet /* get list of symbols */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* protection domain ID to look into */
const char * string, /* string to match */
WTX_TGT_ID_T moduleId, /* module ID to search in */
WTX_TGT_ADDR_T value, /* symbol value to match */
BOOL32 listUnknown /* list unknown symbols only flag */
);
extern WTX_SYM_LIST * wtxSymListByModuleNameGet /* get list of symbols */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* protection domain ID to look into */
const char * string, /* string to match */
const char * moduleName, /* module name to search in */
WTX_TGT_ADDR_T value, /* symbol value to match */
BOOL32 listUnknown /* list unknown symbols only flag */
);
extern STATUS wtxSymRegister /* registers a new syymbol */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD into which we want to operate */
const char * name, /* name of symbol to add */
WTX_TGT_ADDR_T value, /* value of symbol to add */
UINT32 symRef, /* reference of the symbol */
UINT32 type, /* type of symbol to add */
#ifdef HOST /* XXX */
UINT32 execMode, /* execution mode (entry points only) */
GROUP_ID apiGroup /* API group of the symbol */
#else /* HOST */
UINT32 execMode /* execution mode (entry points only) */
#endif /* HOST */
);
extern STATUS wtxSymRemove /* remove a symbol from sym table */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* PD into which we want operate */
const char * symName, /* name of symbol to remove */
UINT32 symType /* type of symbol to remove */
);
extern WTX_SYM_TBL_INFO * wtxSymTblInfoGet /* return sym table info */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId /* PD into which we want to look at */
);
extern const char * wtxTargetRtNameGet /* get the target-runtime name */
(
HWTX hWtx /* WTX API handle */
);
extern const char * wtxTargetRtVersionGet /* get target-runtime version */
(
HWTX hWtx /* WTX API handle */
);
extern INT32 wtxTargetCpuTypeGet /* get the target CPU type code */
(
HWTX hWtx /* WTX API handle */
);
extern BOOL32 wtxTargetHasFppGet /* check for floating point processor */
(
HWTX hWtx /* WTX API handle */
);
extern BOOL32 wtxTargetHasAltivecGet /* check for altivec processor */
(
HWTX hWtx /* WTX API handle */
);
extern BOOL32 wtxTargetHasSpeGet /* check for SPE processor */
(
HWTX hWtx /* WTX API handle */
);
extern BOOL32 wtxTargetHasDspGet /* check for DSP prcessor */
(
HWTX hWtx /* WTX API handle */
);
extern WTX_ENDIAN_T wtxTargetEndianGet /* get edianness of target */
(
HWTX hWtx /* WTX API handle */
);
extern const char * wtxTargetBootlineGet /* get target boot line info */
(
HWTX hWtx /* WTX API handle */
);
extern const char * wtxTargetBspNameGet /* get the BSP name string */
(
HWTX hWtx /* WTX API handle */
);
extern const char * wtxTargetBspShortNameGet /* get the BSP_NAME value */
(
HWTX hWtx /* WTX API handle */
);
extern const char * wtxTargetToolNameGet/* get the tool used to build the tgt */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxTargetReset /* reset the target */
(
HWTX hWtx /* WTX API handle */
);
extern UINT32 wtxTargetIpAddressGet /* get the target IP address */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxTargetAttach /* reattach to the target */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxToolAttach /* connect client to target server */
(
HWTX hWtx, /* WTX API handle */
const char * targetName, /* target Server name */
const char * toolName /* tool name */
);
extern STATUS wtxToolOnHostAttach /* attach to a remote target server */
(
HWTX hWtx, /* WTX API handle */
const char * serverName, /* target server name */
const char * toolName, /* tool name */
char * host /* host to ask for tgtsvr */
);
extern const char * wtxToolNameGet /* return name of current tool */
(
HWTX hWtx /* WTX API handle */
);
extern BOOL32 wtxToolConnected /* check tool connection to server */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxToolDetach /* detach from the target server */
(
HWTX hWtx /* WTX API handle */
);
extern WTX_TGT_ID_T wtxToolIdGet /* return tool ID of current tool */
(
HWTX hWtx /* WTX API handle */
);
extern WTX_TS_INFO * wtxTsInfoGet /* get info about target and server */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxTsKill /* kill the target server */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxTsLock /* lock server for exclusive access */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxTsTimedLock /* lock target server a limited time */
(
HWTX hWtx, /* WTX API handle */
UINT32 seconds /* duration of lock */
);
extern const char * wtxTsNameGet /* get target server name */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxTsRestart /* restart the target server */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxTsUnlock /* unlock the connected target server */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxUnregisterForEvent /* unregister for some events */
(
HWTX hWtx, /* WTX API handle */
const char * regExp /* regexp for the unwanted events */
);
extern BOOL32 wtxVerify /* verify WTX handle is valid for use */
(
HWTX hWtx /* WTX API handle */
);
extern INT32 wtxVioChanGet /* get a virtual I/O channel number */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxVioChanRelease /* release a virtual I/O channel */
(
HWTX hWtx, /* WTX API handle */
INT32 channel /* the channel number to release */
);
extern STATUS wtxVioCtl /* perform control operation on VIO */
(
HWTX hWtx, /* WTX API handle */
INT32 channel, /* channel to do control operation on */
UINT32 request, /* control operation to perform */
UINT32 arg /* argument for call */
);
extern WTX_VIO_FILE_DESC ** wtxVioFileListGet /* list server files */
(
HWTX hWtx /* WTX API handle */
);
extern UINT32 wtxVioWrite /* write data to a VIO channel */
(
HWTX hWtx, /* WTX API handle */
INT32 channel, /* channel to write to */
void * pData, /* pointer to data to write */
UINT32 numBytes /* number of bytes of data to write */
);
extern STATUS wtxVioLink
(
HWTX hWtx, /* WTX API handle */
WTX_VIO_LINK_DESC *vioLinkDesc /* VIO link descriptor */
);
extern STATUS wtxVioUnlink
(
HWTX hWtx, /* WTX API handle */
WTX_VIO_LINK_DESC *vioLinkDesc /* VIO link descriptor */
);
extern const char * wtxTsVersionGet /* return the Tornado version */
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxMsgObjModuleLoad
(
HWTX hWtx, /* WTX API handle */
WTX_MSG_FILE_LOAD_DESC *pfileLoadDescIn,
WTX_MSG_FILE_LOAD_DESC *pfileLoadDescOut
);
extern STATUS wtxUsrSvcAdd
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T svcId, /* id to attribute to new service, */
/* 0 = use the id returned by this */
/* request */
WTX_TGT_ADDR_T entry, /* service function address */
WTX_TGT_ADDR_T initRtn, /* service init routine address */
WTX_TGT_INT_T initRtnArg, /* service init routine argument */
WTX_TGT_ID_T * pSvcId /* pointer to service id */
);
extern STATUS wtxUsrSvcFind
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ADDR_T entry, /* service function address */
WTX_TGT_ID_T * pSvcId /* pointer to service id */
);
extern STATUS wtxUsrSvcRemove
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T svcId, /* id of service to remove */
WTX_TGT_ADDR_T stopRtn, /* service stop routine address */
WTX_TGT_INT_T stopRtnArg /* service stop routine argument */
);
WTX_MEM_XFER * wtxUsrSvcCall
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T svcId, /* id of service to call */
void * buffer, /* service arguments */
UINT32 nBytes /* number of bytes in buffer */
);
extern char * wtxTsLogGet
(
HWTX hWtx, /* WTX current session handle */
char * svrName, /* target server to get log from */
int seek, /* seek to apply on target server log file */
char * host /* host on which registry is running */
);
extern STATUS wtxShlibAddrGet /* Get address of sharedlib */
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T shlibPdId, /* PD of the sharedlib */
WTX_TGT_ID_T prPdId, /* Process PD. 0 is current process */
WTX_TGT_ADDR_T * pRetVal /* Return address */
);
extern STATUS wtxTargetFileCopy /* Do a remote file copy */
(
HWTX hWtx, /* WTX API handle */
char * srcPathname, /* Host source pathname */
char * dstPathname, /* Destination pathname */
UINT32 options /* Copy options */
);
extern STATUS wtxTargetFileRemove /* Do a remote file copy */
(
HWTX hWtx, /* WTX API handle */
char * fileName, /* Host source pathname */
UINT32 options /* Remove options */
);
extern STATUS wtxContextAttach
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext
);
extern STATUS wtxContextDetach
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext
);
/* --------------------------- Environment settings ------------------------- */
extern char * wtxTgtsvrEnvGet /* Get environment string */
(
HWTX hWtx, /* WTX API handle */
char * envVariable /* Environment variable to get */
);
extern STATUS wtxTgtsvrEnvSet /* Set environment string */
(
HWTX hWtx, /* WTX API handle */
char * envVariable, /* Environment variable to set */
char * envValue /* Value to set */
);
extern STATUS wtxLastRuntimeErrorGet
(
HWTX hWtx, /* WTX API handle */
char * pRetVal /* last runtime errno string */
);
/* --------------------------- kernel modules utilities --------------------- */
extern STATUS wtxModulesInfoSynchro /* Update kernel modules symbols */
(
HWTX hWtx, /* WTX API handle */
UINT32 * pRetVal /* Number of synchronized modules */
);
/* --------------------------- Target filesystem IO ------------------------ */
extern STATUS wtxTgtfsMkdir
(
HWTX hWtx, /* WTX API handle */
char * pathname, /* Pathname */
WTX_TGTFS_INODE_MODE_TYPE mode /* Mode */
);
extern STATUS wtxTgtfsRmdir
(
HWTX hWtx, /* WTX API handle */
char * pathname /* Pathname */
);
extern STATUS wtxTgtfsMv
(
HWTX hWtx, /* WTX API handle */
char * oldPath, /* Pathname */
char * newPath /* Pathname */
);
extern STATUS wtxTgtfsRm
(
HWTX hWtx, /* WTX API handle */
char * pathname /* Pathname */
);
extern STATUS wtxTgtfsLink
(
HWTX hWtx, /* WTX API handle */
char * oldPath, /* Pathname */
char * newPath /* Pathname */
);
extern STATUS wtxTgtfsSymlink
(
HWTX hWtx, /* WTX API handle */
char * oldPath, /* Pathname */
char * newPath /* Pathname */
);
extern STATUS wtxTgtfsCp
(
HWTX hWtx, /* WTX API handle */
char * oldPath, /* Pathname */
char * newPath /* Pathname */
);
extern STATUS wtxTgtfsMknod
(
HWTX hWtx, /* WTX API handle */
char * pathname, /* Pathname */
WTX_TGTFS_INODE_MODE_TYPE mode, /* Mode */
UINT32 major, /* Major */
UINT32 minor /* Minor */
);
extern STATUS wtxTgtfsReaddir
(
HWTX hWtx, /* WTX API handle */
char * pathname,/* Pathname (in) */
WTX_TGTFS_INODE_CTRL_OPT option, /* Option (in) */
WTX_TGTFS_INODE_READDIR_LIST * pReaddirList /* Pointer to result list */
);
extern STATUS wtxTgtfsSetdir
(
HWTX hWtx, /* WTX API handle */
char * pathname, /* Pathname */
char ** ppCurrentDir /* New pathname */
);
extern STATUS wtxTgtfsGetdir
(
HWTX hWtx, /* WTX API handle */
char ** ppCurrentDir /* New pathname */
);
extern STATUS wtxTgtfsStat
(
HWTX hWtx, /* WTX API handle */
char * pathname, /* Structure dirp (in) */
WTX_TGTFS_INODE_STAT_RES ** ppStatInfo /* Pointer to info */
);
extern STATUS wtxTgtfsLstat
(
HWTX hWtx, /* WTX API handle */
char * pathname, /* Structure dirp (in) */
WTX_TGTFS_INODE_STAT_RES ** ppStatInfo /* Pointer to info */
);
extern UINT32 wtxOsErrCodeGet
(
HWTX hWtx /* WTX API handle */
);
extern STATUS wtxTgtfsChmod
(
HWTX hWtx, /* WTX API handle */
char * pathname, /* Pathname */
WTX_TGTFS_INODE_MODE_TYPE mode /* Mode */
);
extern STATUS wtxTgtfsChown
(
HWTX hWtx, /* WTX API handle */
char * pathname, /* Pathname */
UINT32 uid, /* UID */
UINT32 gid
);
extern STATUS wtxTgtfsUmask
(
HWTX hWtx, /* WTX API handle */
WTX_TGTFS_INODE_MODE_TYPE umask, /* Mode to set to */
WTX_TGTFS_INODE_MODE_TYPE * pPrevValue /* Previous value */
);
extern STATUS wtxReaddirFree
(
WTX_TGTFS_INODE_READDIR_RES *pList
);
extern STATUS wtxTgtfsReadlink
(
HWTX hWtx, /* WTX API handle */
char * pathname, /* Pathname */
char ** ppCurrentLink /* Points to (out) */
);
/* ------------------------PD threads ------------------------------------ */
extern WTX_TASKS_INFO_DESC * wtxPdTasksListGet
(
HWTX hWtx, /* WTX API handle */
WTX_CONTEXT * pContext /* Input : Context */
);
extern STATUS wtxPdInfoSet
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId, /* pdId */
UINT32 options /* Options */
);
extern WTX_PD_INFO_OPT wtxPdInfoGet
(
HWTX hWtx, /* WTX API handle */
WTX_TGT_ID_T pdId /* pdId */
);
/* --------------------------- exported utilities --------------------------- */
extern WTX_DESC * wtxDescDuplicate /* duplicate a WTX_DESC */
(
HWTX hWtx, /* current WTX session handler */
WTX_DESC * pDesc /* WTX_DESC to duplicate */
);
#ifdef HOST
extern const char * wtxTargetToolFamilyGet
/* returns toolchain family (e.g. "gnu" or "diab") */
(
HWTX hWtx /* WTX API handle */
);
#endif
#ifdef WIN32
long wtxEnvironRegistryOptionsGet
(
HKEY hKey, /* Win32 registry key handler */
char * dbDir, /* Tornado registry DB directory */
int * pPingDelay, /* target server ping delay */
int * pNUnsuccessPing, /* target server max unsuccess ping */
int * pConnectionTimeout, /* inter-registry timeout (seconds) */
char ** pWtxLogFileName, /* wtx log file path */
int * pWtxLogMaxSize, /* wtx log file max size */
char ** pWtxLogFilter, /* wtx log filter regexp */
int * pWtxLogLevel /* wtx log level */
);
#endif /* WIN32 */
#ifdef HOST
extern DEMANGLER_STYLE wtxMsgDemanglerStyleGet
(
HWTX hWtx /* WTX API handle */
);
#define wtxDemanglerStyleGet wtxMsgDemanglerStyleGet
#define wtxDefaultDemanglerStyleGet wtxMsgDemanglerStyleGet
#endif
#ifdef __cplusplus
}
#endif
#endif /* __INCwtxh */