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

1819 lines
62 KiB
C

/* wtxmsg.h - WTX message definition */
/* Copyright 1984-2000 Wind River Systems, Inc. */
/*
modification history
--------------------
04s,24sep04,fle Added WTX_REGISTRY_HEARTBEAT message
04r,25may04,fle Added wtxMsgRegistryHostSet()
04q,05jan04,x_p Fix wtxMsgTargetFileCopy
04p,22apr03,p_b added -cachebypass to wtxMemDisassemble
04o,26mar03,x_p Removed V3_OFFSET
04n,05feb03,p_b merging T2.2
04m,28jan03,p_b canceled some changes (64 bits)
04l,13dec02,p_b changed TGT_XXX by WTX_TGT_XXX
04k,20nov02,p_b merging margaux/T3
04j,24jul02,x_p Removed BSD_TARGET for documentation
04i,22jan02,x_p Added WTX_MSG_PD_INFO_SET / GET
04h,27nov01,x_p Added threads
04g,22aug01,x_p Merge from bsdos.temp
04f,25aug00,p_b updated a bad comment.
04e,05jun00,mts Added wtxMsgPdNameGet
04d,26may00,fle changed pUnusedIn into pWtxMsgParam for wtxMsgRegistryConnect
04c,09mar00,p_b added load and run handling facility.
04b,29feb00,fle added message number for WTX_LOG
04a,11feb00,fle changed WTX_MSG_WTXREGD_LOG action from a pointer to a
structure for easier use
03z,01feb00,fle moved HWTX declaration from here to wtxtypes.h
03y,20jan00,dbt Added user service facility headers and structures.
03x,05jan00,fle added wtxMsgInitialize() routine
+ removed _wtx structure from here for visibility issues
03w,10dec99,bpn Added wtxMsgKernelPdIdGet() definition.
03v,25nov99,fle doc : fixed expand of WTX_MSG_WTXREGD_LOG
03u,22oct99,fle added WTX_REGISTRY_ENTRY_UPDATE message
03t,21oct99,p_b removed service management structures. Made some clean up.
03s,21oct99,fle added the registryTimeout field in the HWTX structure (for host
side only)
03r,13oct99,c_c Added WTX2 compatibility.
03q,29sep99,fle added WTX_MSG_REG_TGTSVR_ACTION and WTX_MSG_REG_LOG_ACTION
registry new messages
03p,29sep99,c_c Added ModuleFind and SymFind.
03o,14sep99,c_c Added wtxContextCont routine and modified wtxGopherEval.
03n,25aug99,fle added pdId to HWTX structure
03m,16jul99,fle removed wtxMsgObjModuleUndefSymAdd and related variables
+ moved HWTX definition from wtxp.h to here
03l,16jul99,c_c Modified WTX_MSG_MEM_MOVE_DESC structure.
03k,09jul99,fle removed references to wtxMsgConsoleKill and
wtxMsgConsoleCreate
03j,08jul99,p_b removed WTX_CONSOLE_XXX.
03i,07jul99,fle removed wtxSymFind since philb changes
03h,06jul99,c_c Added wtx_msg_kill_context struct.
03g,05jul99,p_b Rewritten wtxMsgSymListGet (), wtxMsgSymFind ().
03f,05jul99,c_c Implemented PD context definition.
03e,02jul99,c_c Removed WTX_EVENTPOINT_LIST references.
03d,29jun99,fle added WTX_MSG_DESC_Q message
03c,25jun99,fle added pdIds in all WTX_MSG_MEM related messages
03b,23jun99,c_c changed UINT32 to WTX_TGT_ADDR_T for pdId
03a,04jun99,fle made all the pdIds have the same type
02z,02jun99,fle added WTX_NULLPROC definition
02y,01jun99,fle added declarations of new wtxMsgXxx() routines
02x,18aug98,pcn Moved WTX_SVC_TYPE and renamed WTX_MSG_EVTPT_LIST_GET.
02w,28jul98,lcs Change TOOL_ID field of WTX_EVTPT_INFO structure to a uint32
02v,20jul98,pcn Added evtptNum and toolId in the wtxEventpointListGet return
list.
02u,19jun98,pcn Added new fields in WTX_MSG_FILE_LOAD_DESC structure.
02t,26may98,pcn Changed WTX_MSG_EVTPT_LIST_2 in WTX_MSG_EVTPT_LIST_GET.
02s,08apr98,fle doc: limit element comment to column 75 for manual generation
purpose
02r,07apr98,fle doc: changed wtx_dasm_desc in wtx_msg_dasm_desc for mangen
02q,24mar98,dbt added WTX_CONTEXT_STATUS_GET.
02p,03mar98,fle got rid of WTX_REGISTRY_PING service
02o,02mar98,pcn WTX 2: added WTX_EVENTPOINT_ADD_2, WTX_EVENTPOINT_LIST_2,
WTX_CACHE_TEXT_UPDATE, WTX_MEM_WIDTH_READ,
WTX_MEM_WIDTH_WRITE, WTX_OBJ_MODULE_CHECKSUM,
WTX_OBJ_MODULE_LOAD_2, WTX_OBJ_MODULE_UNLOAD_2,
WTX_UNREGISTER_FOR_EVENT, WTX_EVENT_LIST_GET,
WTX_COMMAND_SEND. Removed WTX_UN_REGIS_FOR_EVENT. Added
WTX_MSG_MEM_WIDTH_READ_DESC, WTX_MSG_MEM_WIDTH_COPY_DESC,
WTX_SVC_TYPE, WTX_MSG_LOG_CTRL, WTX_EVENT_NODE,
WTX_MSG_EVENT_LIST, WTX_LD_M_FILE_DESC,
WTX_MSG_FILE_LOAD_DESC, WTX_EVENT_2, WTX_EVTPT_2,
WTX_MSG_EVTPT_DESC_2, WTX_MSG_EVTPT_LIST_2.
02n,26jan98,fle added WTX_REGISTRY_PING service number
02m,29aug97,fle Adding the WTX_MEM_DISASSEMBLE service : creating
WTX_MSG_DASM_INST_LIST, WTX_DASM_INST_LIST and
WTX_MSG_DASM_DESC structures.
02l,06dec96,dgp doc: correct spelling
02k,30sep96,elp put in share/, added WTX_OBJ_MODULE_UNDEF_SYM_ADD (SPR# 6775).
02j,17jun96,p_m changed flags type in WTX_MSG_OPEN_DESC (SPR# 4941).
02i,10jun96,elp re-installed WTX_MSG_SYM_TBL_INFO type to prevent
compatibility problems.
02h,20may96,elp added WTX_SYM_TBL_INFO type (SPR# 6502).
02g,25oct95,p_m added WTX_AGENT_MODE_GET service (SPR# 5231) and
WTX_DIRECT_CALL.
02f,17jul95,p_m cleaned comments for manual generation.
02d,06jun95,p_m replaced moduleNameOrId in WTX_MSG_SYM_MATCH_DESC by an union.
02c,01jun95,p_m removed WTX_MSG_CALL_PARAM. added returnType and pReserved
and replaced isText by contextType in WTX_MSG_CONTEXT_DESC.
02b,30may95,p_m completed WTX_MEM_SCAN and WTX_MEM_MOVE implementation.
02a,26may95,p_m added match field in WTX_MSG_MEM_SCAN_DESC.
01z,23may95,p_m made missing name changes.
01y,22may95,jcf name revision.
01x,18may95,p_m added WTX_VIO_CHAN_GET and WTX_VIO_CHAN_RELEASE.
removed DETECTION in enventpoint.
01w,16may95,p_m added WTX_MSG_KILL_DESC and WTX_TARGET_ATTACH.
01v,10may95,pad modified WTX_MSG_SYM_LIST and WTX_MSG_SYM_MATCH_DESC to get
defined or unknown symbols associated with a module.
01u,09may95,p_m added wtxregd related messages. added Target Server version
in WTX_MSG_TS_INFO.
01t,04may95,s_w Put in WTX_xxx message numbers previously in private/wtxp.h
01s,02may95,pad changed WTX_MSG_MODULE_INFO format field from UINT32 to char *
01r,04apr95,p_m fixed WTX_MSG_CONTEXT_DESC.stackBase comment.
01q,29mar95,p_m added comments. removed #include "comtypes.h".
changed addr type in OBJ_SEGMENT to WTX_TGT_ADDR_T.
01p,28mar95,p_m took care of comments line length for manual generation.
01o,24mar95,p_m changed addr type in LD_M_SECTION to WTX_TGT_ADDR_T.
01n,19mar95,c_s updated gopher structures.
01m,20mar95,f_v fix few syntax error to work with mgtools
01l,16mar95,p_m added WTX_MSG_VIO_FILE_LIST.
01k,15mar95,p_m changed #include "vxWorks.h" to #include "host.h".
01j,10mar95,p_m made endian field a UINT32.
01i,03mar95,p_m replaced WRAPSTRING by char *.
added gopher structure for WTX.
01h,27feb95,p_m cleanup up WTX_MSG_MEM_SCAN_DESC.
added symTblId to WTX_MSG_SYM_TBL_INFO.
simplified WTX_WDB_SERVICE_DESC.
01g,25feb95,jcf extended WTX_TS_INFO. converted spaces to tabs.
01f,20feb95,pad added WTX_WTX_SERVICE_DESC type. Modified type
WTX_MSG_SERVICE_DESC.
01e,09feb95,p_m renamed structures for more coherency.
get rid of structures shared with WDB.
added comments and cleanup.
01d,08feb95,p_m added loadFlag in WTX_MODULE_INFO.
01c,30jan95,p_m added additional routines and filenames in SERVICE_DESC.
changed rtnObjFile to svcObjFile in SERVICE_DESC.
added WTX_MEM_XFER; added WTX_MEM_SET_DESC;
added WTX_REG_WRITE;
01b,22jan95,p_m added TOOL_DESC field in WTX_TS_INFO.
replaced #include "wdb/wdbtypes.h" by #include "wdbtypes.h".
replaced rtnName with initRtnName in SERVICE_DESC.
01a,20jan95,p_m written.
*/
#ifndef __INCwtxmsgh
#define __INCwtxmsgh
#ifdef __cplusplus
extern "C" {
#endif
#ifdef HOST
#include "host.h"
#else
#include "vxWorks.h"
#endif /* HOST */
#include "wtxtypes.h" /* basic wtx types */
/* WTX requests */
/*
* This offset determines if a call was a pre V3 call or not.
* If a call goes to the tgtsvr, and its number is less than the offset value,
* then it will be routed to the backward compat shared lib.
*/
#define WTX_NULLPROC (0)
#define WTX_TOOL_ATTACH (1)
#define WTX_TOOL_DETACH (2)
#define WTX_TS_INFO_GET (3)
#define WTX_TARGET_RESET (4)
#define WTX_TS_LOCK (5)
#define WTX_TS_UNLOCK (6)
#define WTX_TARGET_ATTACH (7)
#define WTX_CONTEXT_CREATE (10)
#define WTX_CONTEXT_KILL (11)
#define WTX_CONTEXT_SUSPEND (12)
#define WTX_CONTEXT_CONT (13)
#define WTX_CONTEXT_RESUME (14)
#define WTX_CONTEXT_STEP (15)
#define WTX_CONTEXT_STATUS_GET (16)
#define WTX_CONTEXT_STOP (17)
#define WTX_CONTEXT_ATTACH (18)
#define WTX_CONTEXT_DETACH (19)
#define WTX_EVENTPOINT_ADD (20)
#define WTX_EVENTPOINT_DELETE (21)
#define WTX_EVENTPOINT_LIST_GET (22)
#define WTX_EVENTPOINT_LIST (23)
#define WTX_MEM_CHECKSUM (30)
#define WTX_MEM_READ (31)
#define WTX_MEM_WRITE (32)
#define WTX_MEM_SET (33)
#define WTX_MEM_SCAN (34)
#define WTX_MEM_MOVE (35)
#define WTX_MEM_ALLOC (36)
#define WTX_MEM_FREE (37)
#define WTX_MEM_INFO_GET (38)
#define WTX_MEM_ALIGN (39)
#define WTX_MEM_REALLOC (40)
#define WTX_MEM_ADD_TO_POOL (41)
#define WTX_MEM_DISASSEMBLE (42)
#define WTX_CACHE_TEXT_UPDATE (43)
#define WTX_REGS_GET (50)
#define WTX_REGS_SET (51)
#define WTX_OPEN (60)
#define WTX_VIO_READ (61)
#define WTX_VIO_WRITE (62)
#define WTX_CLOSE (63)
#define WTX_VIO_CTL (64)
#define WTX_VIO_FILE_LIST (65)
#define WTX_VIO_CHAN_GET (66)
#define WTX_VIO_CHAN_RELEASE (67)
#define WTX_OBJ_MODULE_LOAD (70)
#define WTX_OBJ_MODULE_UNLOAD (71)
#define WTX_OBJ_MODULE_LIST (72)
#define WTX_OBJ_MODULE_INFO_GET (73)
#define WTX_OBJ_MODULE_FIND (74)
#define WTX_OBJ_MODULE_CHECKSUM (75)
#define WTX_SYM_TBL_CREATE (80)
#define WTX_SYM_TBL_DELETE (81)
#define WTX_SYM_TBL_LIST_GET (82)
#define WTX_SYM_LIST_GET (83)
#define WTX_SYM_TBL_INFO_GET (84)
#define WTX_SYM_FIND (85)
#define WTX_SYM_ADD (86)
#define WTX_SYM_REMOVE (87)
#define WTX_EVENT_GET (100)
#define WTX_REGISTER_FOR_EVENT (101)
#define WTX_UNREGISTER_FOR_EVENT (102)
#define WTX_EVENT_ADD (103)
#define WTX_EVENT_LIST_GET (104)
#define WTX_GOPHER_EVAL (110)
#define WTX_FUNC_CALL (111)
#define WTX_SERVICE_ADD (112)
#define WTX_WTX_SERVICE_LIST (113)
#define WTX_WDB_SERVICE_LIST (114)
#define WTX_AGENT_MODE_SET (117)
#define WTX_AGENT_MODE_GET (118)
#define WTX_DIRECT_CALL (119)
#define WTX_OBJ_KILL (120)
#define WTX_OBJ_RESTART (121)
#define WTX_COMMAND_SEND (122)
#define WTX_LOG (123)
#define WTX_PD_INFO_Q_GET (130)
#define WTX_TARGET_FILE_COPY (140)
#define WTX_TARGET_FILE_REMOVE (141)
#define WTX_TGTFS_INODE_CTRL (150)
#define WTX_PD_TASKS_LIST (160)
#define WTX_PD_INFO_SET (161)
#define WTX_PD_INFO_GET (162)
#define WTX_REGISTER (201)
#define WTX_UNREGISTER (202)
#define WTX_INFO_GET (203)
#define WTX_INFO_Q_GET (204)
#define WTX_WTXREGD_TGTSVR_ACTION (205)
#define WTX_WTXREGD_LOG (206)
#define WTX_REGISTRY_ENTRY_ADD (207)
#define WTX_REGISTRY_ENTRY_REMOVE (208)
#define WTX_REGISTRY_ENTRY_GET (209)
#define WTX_REGISTRY_ENTRY_LIST_GET (210)
#define WTX_REGISTRY_ENTRY_UPDATE (211)
#define WTX_REGISTRY_HEARTBEAT (212)
#define WTX_USR_SVC_CTRL (220)
#define WTX_USR_SVC_CALL (221)
/* typedefs */
typedef struct wtx_msg_result /* Simple request result */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_VALUE val; /* Result value of call */
} WTX_MSG_RESULT;
typedef struct wtx_msg_param /* Simple request parameter */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_VALUE param; /* Param value of call */
} WTX_MSG_PARAM;
typedef struct wtx_msg_param_with_pd /* simple request parameter with PDID */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_VALUE_WITH_PD param; /* parameter with PD ID */
} WTX_MSG_PARAM_WITH_PD;
/* -------------------------------- registry -------------------------------- */
typedef struct wtx_msg_wtxregd_pattern /* wtxregd pattern */
{
WTX_CORE wtxCore; /* WTX message core */
char * name; /* Pattern to match wpwrName */
char * type; /* Pattern to match wpwrType */
char * key; /* Pattern to match wpwrKey */
} WTX_MSG_WTXREGD_PATTERN;
typedef struct wtx_msg_wtxregd_info /* wtxregd info with host name/IP */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_WTXREGD_INFO regdInfo; /* registry info/match desc */
} WTX_MSG_WTXREGD_INFO;
typedef struct wtx_msg_wtxregd_item /* registry item desc per name */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_WTXREGD_ITEM regdItem; /* exact item short desc (name/IP) */
} WTX_MSG_WTXREGD_ITEM;
typedef struct wtx_msg_tgtsvr_action /* target server action desc */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGTSVR_ACTION * pAction; /* action type to perform */
} WTX_MSG_TGTSVR_ACTION;
typedef struct wtx_msg_svr_desc /* Server descriptor message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_SVR_DESC wtxSvrDesc; /* Server Descriptor */
} WTX_MSG_SVR_DESC;
typedef struct wtx_msg_svr_desc_q /* Server desc. queue message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_SVR_DESC_Q wtxSvrDescQ; /* Server Descriptor Queue */
} WTX_MSG_SVR_DESC_Q;
typedef struct wtx_msg_wtxregd_log /* wtxregd log action */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_LOG_ACTION action; /* log action to perform */
} WTX_MSG_WTXREGD_LOG;
typedef struct wtx_msg_desc_q
{
WTX_CORE wtxCore; /* wtx message core */
WTX_DESC_Q * pDescQ; /* wtx desc queue */
} WTX_MSG_DESC_Q;
/* --------------------------------- server --------------------------------- */
typedef struct wtx_msg_ts_info /* TS information message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TS_INFO tsInfo; /* TS info structure */
} WTX_MSG_TS_INFO;
typedef struct wtx_msg_ts_lock /* Lock message */
{
WTX_CORE wtxCore; /* WTX message core */
UINT32 lockType; /* Lock type to use */
} WTX_MSG_TS_LOCK;
typedef struct wtx_msg_ts_unlock /* Unlock message */
{
WTX_CORE wtxCore; /* WTX message core */
BOOL32 force; /* Force unlock type to use */
} WTX_MSG_TS_UNLOCK;
typedef struct wtx_msg_tool_desc /* Tool desc. message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TOOL_DESC wtxToolDesc; /* Tool descriptor */
} WTX_MSG_TOOL_DESC;
typedef struct wtx_msg_tool_id /* Tool identifier message */
{
WTX_CORE wtxCore; /* WTX message core */
} WTX_MSG_TOOL_ID;
typedef struct wtx_msg_kill_desc /* Kill descriptor message */
{
WTX_CORE wtxCore; /* WTX message core */
UINT32 request; /* Object kill flag */
WTX_VALUE arg; /* Object kill additional arg */
} WTX_MSG_KILL_DESC;
typedef struct wtx_msg_log_ctrl /* Logging control message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_SVC_TYPE svcDesc; /* Service type and action */
WTX_VALUE svcParam; /* Parameter needed */
int svcValue; /* Extra parameter */
} WTX_MSG_LOG_CTRL;
/* --------------------------- symbol operations ---------------------------- */
typedef struct wtx_msg_symbol_desc /* Symbol message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_SYMBOL symbol; /* Symbol */
} WTX_MSG_SYMBOL_DESC;
typedef struct wtx_msg_sym_list /* Symbol list message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* Prot. Dom Id */
WTX_SYM_LIST symList; /* Symbol list */
BOOL32 moreToCome; /* TRUE if symbols are remaining */
} WTX_MSG_SYM_LIST;
typedef struct wtx_msg_sym_tbl_info /* Symbol table information */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T symTblId; /* Symbol table identifier */
UINT32 symNum; /* Number of symbols */
BOOL32 sameNameOk; /* Name clash policy */
} WTX_MSG_SYM_TBL_INFO;
typedef struct wtx_msg_sym_match_desc /* Symbol lookup descriptor */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_SYM_FIND_CRITERIA criteria; /* criteria struct */
BOOL32 giveMeNext; /* TRUE for a follow-up req */
} WTX_MSG_SYM_MATCH_DESC;
/* --------------------------- VIO operations ------------------------------- */
typedef struct wtx_msg_open_desc /* File opening descriptor */
{
WTX_CORE wtxCore; /* WTX message core */
char * filename; /* Filename */
WTX_OPEN_FLAG flags; /* Unix style open flags */
INT32 mode; /* Unix style mode */
INT32 channel; /* Channel id for redirection */
} WTX_MSG_OPEN_DESC;
typedef struct wtx_msg_vio_ctl_desc /* VIO control descriptor */
{
WTX_CORE wtxCore; /* WTX message core */
INT32 channel; /* VIO channel number */
UINT32 request; /* Control operation */
UINT32 arg; /* Control argument */
} WTX_MSG_VIO_CTL_DESC;
typedef struct wtx_msg_vio_copy_desc /* Virtual I/O data */
{
WTX_CORE wtxCore; /* WTX message core */
UINT32 channel; /* Virtual I/O channel */
UINT32 maxBytes; /* Maximum bytes to transfer */
void * baseAddr; /* Base address of data */
} WTX_MSG_VIO_COPY_DESC;
typedef struct wtx_msg_vio_file_list /* VIO files list message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_VIO_FILE_DESC * pVioFileList; /* VIO file list */
} WTX_MSG_VIO_FILE_LIST;
/* ------------------------- Target Disk operation ---------------------------*/
typedef struct wtx_msg_target_file_copy_desc
{
WTX_CORE wtxCore; /* WTX message core */
char * srcPathname; /* Host source Pathname */
char * dstPathname; /* Target destination Pathname */
UINT32 options; /* load options. Any combination of:
* - WTX_TARGET_FILE_COPY_NOMKDIR
* - WTX_TARGET_FILE_COPY_CHECK
*/
} WTX_MSG_TARGET_FILE_COPY_DESC;
typedef struct wtx_msg_target_file_remove_desc
{
WTX_CORE wtxCore; /* WTX message core */
char * fileName; /* Target file to erase */
UINT32 options; /* load options. Any combination of:
* - WTX_TARGET_FILE_REMOVE_FORCE
*/
} WTX_MSG_TARGET_FILE_REMOVE_DESC;
/* ------------------------- load operation ----------------------------------*/
typedef struct wtx_msg_file_load_desc /* Object module load desc. */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* Prot. Dom. Id in which we load */
UINT32 loadOpt; /* load options. Any combination of:
* - WTX_LOAD_ASYNCHRONOUSLY
* - WTX_LOAD_FROM_TOOL
*/
WTX_LOAD_COMMAND loadCmd; /* load subcommand */
union wtx_load_subcommand
{
WTX_MODULE_FILE_DESC moduleDesc; /* module descriptor */
WTX_UPLOAD_BUF loadBuffer; /* upload buffer */
WTX_LOAD_PROGRESS_INFO progressInfo; /* async load progress infos */
WTX_MODULE_INFO moduleInfo; /* module info when loaded */
} wtxLoadCmdInfo;
} WTX_MSG_FILE_LOAD_DESC;
/* ------------------------- module operation --------------------------------*/
typedef struct wtx_msg_module_list /* Object module list */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* owning Prot. Dom. */
WTX_MODULE_LIST moduleList; /* Module list struct */
} WTX_MSG_MODULE_LIST;
typedef struct wtx_msg_module_info /* Object module information */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_MODULE_INFO moduleInfo; /* object module information */
} WTX_MSG_MODULE_INFO;
typedef struct wtx_msg_mod_name_or_id /* Module name or identifier */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* Prot. Dom. Id in which we look */
WTX_TGT_ID_T moduleId; /* Module Id */
char * filename; /* Module file name */
UINT32 option; /* option field to carry misc info */
} WTX_MSG_MOD_NAME_OR_ID;
typedef struct wtx_msg_mod_match_desc /* Symbol lookup descriptor */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_MOD_FIND_CRITERIA criteria; /* criteria struct */
} WTX_MSG_MOD_MATCH_DESC;
/* -------------------------- event operation --------------------------------*/
typedef struct wtx_msg_event_desc /* Event message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_EVENT_DESC eventDesc; /* Event descriptor */
} WTX_MSG_EVENT_DESC;
typedef struct wtx_msg_event_reg_desc /* WTX event register desc. */
{
WTX_CORE wtxCore; /* WTX message core */
char * evtRegExp; /* Register event reg. expr. */
} WTX_MSG_EVENT_REG_DESC;
typedef struct wtx_msg_evtpt_desc /* Eventpoint message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_EVTPT wtxEvtpt; /* Eventpoint */
} WTX_MSG_EVTPT_DESC;
typedef struct wtx_msg_event_list /* Message for all events */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_EVENT_NODE * pEventList; /* List of events */
} WTX_MSG_EVENT_LIST;
typedef struct wtx_msg_evtpt_list /* Eventpoint list message */
{
WTX_CORE wtxCore; /* WTX message core */
UINT32 nEvtpt; /* Num. eventpoint in list */
WTX_EVTPT_INFO * pEvtptInfo; /* Eventpoint info list */
} WTX_MSG_EVTPT_LIST;
/* -------------------------- memory operations ------------------------------*/
typedef struct wtx_msg_mem_info /* Memory information */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_MEM_INFO wtxMemInfo; /* memory information */
} WTX_MSG_MEM_INFO;
typedef struct wtx_msg_mem_xfer_desc /* Memory transfer message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_MEM_XFER memXfer; /* Mem. transfer desc. */
} WTX_MSG_MEM_XFER_DESC;
typedef struct wtx_msg_reg_write /* Register(s) to set */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_REG_SET_TYPE regSetType; /* Type of register set */
WTX_CONTEXT context; /* Associated context */
WTX_MEM_XFER memXfer; /* New value of register(s) */
} WTX_MSG_REG_WRITE;
typedef struct wtx_msg_reg_read /* Register(s) to get */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_REG_SET_TYPE regSetType; /* Type of register set */
WTX_CONTEXT context; /* Associated context */
WTX_MEM_REGION memRegion; /* Register block subregion */
} WTX_MSG_REG_READ;
typedef struct wtx_msg_mem_block_desc /* Target memory block */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* Prot. Dom from which we want to */
WTX_TGT_ADDR_T startAddr; /* Blocks starts from here */
UINT32 numBytes; /* Number of bytes in block */
} WTX_MSG_MEM_BLOCK_DESC;
typedef struct wtx_msg_mem_scan_desc /* Target memory scan desc. */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* Protection Domain ID to look into */
BOOL32 match; /* TRUE for matching pattern */
WTX_TGT_ADDR_T startAddr; /* Start addr. for scanning */
WTX_TGT_ADDR_T endAddr; /* End addr. for scanning */
UINT32 numBytes; /* Number of bytes in pattern */
void * pattern; /* Byte pattern to look for */
} WTX_MSG_MEM_SCAN_DESC;
typedef struct wtx_msg_mem_move_desc /* Target memory move desc. */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T srcPdId; /* source Protection Domain */
WTX_TGT_ADDR_T source; /* Copy from here */
WTX_TGT_ID_T dstPdId; /* destination Protection Domain */
WTX_TGT_ADDR_T destination; /* To there */
UINT32 numBytes; /* Number of bytes to copy */
} WTX_MSG_MEM_MOVE_DESC;
typedef struct wtx_msg_mem_set_desc /* Memory setting desc. */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* PD ID to look into */
UINT32 value; /* Value to set */
UINT8 width; /* Value width 1, 2, 4 or 8 bytes */
WTX_TGT_ADDR_T startAddr; /* Set from here */
UINT32 numItems; /* Number of items to set */
} WTX_MSG_MEM_SET_DESC;
typedef struct wtx_msg_mem_copy_desc /* Target memory copy desc. */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* PD ID to look into */
BOOL32 hostToTgt; /* it is a host to target mem copy */
UINT32 hostAddr; /* host memory address */
WTX_TGT_ADDR_T tgtAddr; /* target memory address */
UINT32 numBytes; /* Bytes to copy/bytes copied */
UINT8 width; /* Value width 1, 2, 4 or 8 bytes */
UINT32 options; /* memory operations options */
} WTX_MSG_MEM_COPY_DESC;
/* -------------------------- context operations -----------------------------*/
typedef struct wtx_msg_context /* Context message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_CONTEXT_TYPE contextType; /* Type of context */
WTX_CONTEXT_ID_T contextId; /* Context ID */
WTX_CONTEXT_ID_T contextSubId; /* context Sub ID */
} WTX_MSG_CONTEXT;
typedef struct wtx_msg_kill_context /* kill context desc. */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_KILL_CONTEXT wtxKillContext; /* Context to kill */
} WTX_MSG_KILL_CONTEXT;
typedef struct wtx_msg_context_desc /* Context creation desc. */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_CONTEXT_DESC wtxContextDesc; /* WTX context description */
} WTX_MSG_CONTEXT_DESC;
typedef struct wtx_msg_context_step_desc /* Single step desc. */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_CONTEXT context; /* Context to step */
WTX_TGT_ADDR_T startAddr; /* Lower bound of step range */
WTX_TGT_ADDR_T endAddr; /* Upper bound of step range */
} WTX_MSG_CONTEXT_STEP_DESC;
/* -------------------------- gopher operations ------------------------------*/
typedef struct wtx_msg_gopher_tape /* Gopher tape message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_GOPHER_TAPE tape; /* Gopher tape */
} WTX_MSG_GOPHER_TAPE;
/* -------------------------- disassembler operations ----------------------- */
typedef struct wtx_msg_dasm_desc /* Instructions desc. to match */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* PD in which we want to work */
WTX_TGT_ADDR_T startAddr; /* Disassembling start address */
WTX_TGT_ADDR_T endAddr; /* Disassembling end address */
UINT32 nInst; /* Number of instructions to get */
BOOL32 printAddr; /* Prepends instruction address */
BOOL32 printOpcodes; /* Prepends instruction opcodes */
BOOL32 giveMeNext; /* TRUE for a follow-up req */
BOOL32 hexAddr; /* Turn off "symbolic + offset" */
BOOL32 cacheByPass; /* bypass cache ? */
} WTX_MSG_DASM_DESC;
typedef struct wtx_msg_dasm_inst_list /* Instructions list message */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* Protection Domain ID to look into */
WTX_DASM_INST_LIST instList; /* Symbol list */
BOOL32 moreToCome; /* TRUE if instructions remain */
} WTX_MSG_DASM_INST_LIST;
/* ---------------------- Protection domain operations ---------------------- */
typedef struct wtx_msg_pd_desc_q
{
WTX_CORE wtxCore; /* WTX message core */
WTX_PD_DESC_Q wtxPdDescQ; /* WTX protection domain queue */
} WTX_MSG_PD_DESC_Q;
typedef struct wtx_msg_pd_info_set_desc
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* Protection Domain ID to set option */
WTX_PD_INFO_OPT options; /* Options */
} WTX_MSG_PD_INFO_SET_DESC;
typedef struct wtx_msg_pd_info_get_desc
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_ID_T pdId; /* Protection Domain ID to set option */
} WTX_MSG_PD_INFO_GET_DESC;
/* ---------------------- User service operations --------------------------- */
typedef struct wtx_msg_usr_svc_ctrl_info /* user service control information */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGT_INT_T numInts; /* depends on opcode */
WTX_TGT_ID_T svcId; /* command Id */
WTX_USR_SVC_CTRL_CMD opcode; /* operation to perform */
union
{
WTX_USR_SVC_ADD_INFO add; /* specific params to add a service */
WTX_USR_SVC_REM_INFO rem; /* specific params to remove a service */
WTX_USR_SVC_FIND_INFO find; /* specific params to find a service */
} extra;
} WTX_MSG_USR_SVC_CTRL_INFO;
/* ---------------------- Target filesystem IO --------------------------- */
typedef struct wtx_msg_tgtfs_inode_ctrl_info /* I-node operations */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGTFS_INODE_CTRL_CMD opcode; /* operation to perform */
WTX_TGTFS_INODE_CTRL_OPT options; /* options */
union
{
WTX_MSG_TGTFS_INODE_MKDIR_DESC mkdir; /* mkdir */
WTX_MSG_TGTFS_INODE_RMDIR_DESC rmdir; /* rmdir */
WTX_MSG_TGTFS_INODE_MV_DESC mv; /* mv */
WTX_MSG_TGTFS_INODE_RM_DESC rm; /* rm */
WTX_MSG_TGTFS_INODE_LINK_DESC link; /* link */
WTX_MSG_TGTFS_INODE_LINK_DESC symlink; /* symlink */
WTX_MSG_TGTFS_INODE_CP_DESC cp; /* cp */
WTX_MSG_TGTFS_INODE_MKNOD_DESC mknod; /* mknod */
WTX_MSG_TGTFS_INODE_READDIR_DESC readdir; /* readdir */
WTX_MSG_TGTFS_INODE_SETDIR_DESC setdir; /* setdir */
WTX_MSG_TGTFS_INODE_STAT_DESC stats; /* stat */
WTX_MSG_TGTFS_INODE_CHMOD_DESC chmod; /* chmod */
WTX_MSG_TGTFS_INODE_CHOWN_DESC chown; /* chown */
WTX_MSG_TGTFS_INODE_UMASK_DESC umask; /* umask */
WTX_MSG_TGTFS_INODE_READLINK_DESC readlink; /* readlink */
} params;
} WTX_MSG_TGTFS_INODE_CTRL_INFO;
typedef struct wtx_msg_tgtfs_inode_ctrl_result /* Simple request result */
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TGTFS_INODE_CTRL_CMD opcode; /* operation to perform */
WTX_VALUE val; /* Result value of call */
union
{
WTX_TGTFS_INODE_READDIR_LIST readdir; /* readdir element list */
WTX_TGTFS_INODE_STAT_RES * pStat; /* stat result */
} extras;
} WTX_MSG_TGTFS_INODE_CTRL_RESULT;
/* ---------------------- Theads (PD/TASKS) --------------------------------- */
typedef struct wtx_msg_tasks_info_desc
{
WTX_CORE wtxCore; /* WTX message core */
WTX_TASKS_INFO_DESC res; /* Result */
} WTX_MSG_TASKS_INFO_DESC;
/* ----------------------- End of messages definition ----------------------- */
/* forward declarations */
extern WTX_TGT_ID_T wtxMsgKernelPdIdGet
(
HWTX hWtx /* wtx API handler */
);
extern STATUS wtxMsgAgentModeGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_ID * pWtxMsgToolId, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgAgentModeSet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgCacheTextUpdate
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MEM_BLOCK_DESC * pWtxMsgMemBlockDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgClose
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgCommandSend
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgContextStop
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT * pWtxMsgContext, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgContextCont
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT * pWtxMsgContext, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgContextCreate
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT_DESC * pWtxMsgContextDesc, /* Input msg. desc. */
WTX_MSG_CONTEXT * pWtxMsgContext /* Output msg. result */
);
extern STATUS wtxMsgContextKill
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_KILL_CONTEXT * pWtxMsgContext, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgContextResume
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT * pWtxMsgContext, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgContextStatusGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT * pWtxMsgContext, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgContextStep
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT_STEP_DESC * pWtxMsgContextStepDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgContextSuspend
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT * pWtxMsgContext, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgDirectCall
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT_DESC * pWtxMsgContextDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgErrDispatch /* dispatch error for given handle */
(
HWTX hWtx, /* WTX API handler */
WTX_ERROR_T errCode, /* error code pointer */
void * pUnused /* unused yet */
);
extern STATUS wtxMsgEventpointAdd
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_EVTPT_DESC * pWtxMsgEvtptDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgEventpointDelete
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgEventpointListGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_ID * pWtxMsgToolId, /* Input msg. desc. */
WTX_MSG_EVTPT_LIST * pWtxMsgEvtptList /* Output msg. result */
);
extern STATUS wtxMsgEventAdd
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_EVENT_DESC * pWtxMsgEventDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgEventGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_ID * pWtxMsgToolId, /* Input msg. desc. */
WTX_MSG_EVENT_DESC * pWtxMsgEventDesc /* Output msg. result */
);
extern STATUS wtxMsgEventListGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_EVENT_LIST * pWtxMsgEventList /* Output msg. result */
);
extern STATUS wtxMsgExchangeControl /* sends a CTL event to exch */
(
HWTX hWtx, /* WTX API handle */
WTX_EXCHANGE_DESC * pExchangeDescIn, /* description of ctl to send */
WTX_EXCHANGE_DESC * pExchangeDescOut /* result of ctl action */
);
extern STATUS wtxMsgFreeAdd
(
HWTX hWtx, /* wtx session handler */
void * pToFree, /* pointer to be freed */
FUNCPTR pFreeRtn, /* routine to use to free pToFree */
void * pMsgToFree, /* message to free if needed */
WTX_REQUEST svcNum /* service num to free if needed */
);
extern STATUS wtxMsgFreeListSearch /* searches for pointer in free list */
(
HWTX hWtx, /* wtx session handler */
void * pToFind, /* pointer to find in list */
void * pUnused /* unused pointer */
);
extern STATUS wtxMsgFreeListUpdate /* updates a free node in list */
(
HWTX hWtx, /* wtx session handler */
WTX_FREE_DESC * pWtxFreeDesc, /* description of pointer to free */
void * pUnused /* unused pointer */
);
extern STATUS wtxMsgFuncCall
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT_DESC * pWtxMsgContextDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgGopherEval
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM_WITH_PD * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_GOPHER_TAPE * pWtxMsgGopherTape /* Output msg. result */
);
extern STATUS wtxMsgInitialize /* initialize a WTX handle for a new session */
(
HWTX * phWtx /* WTX handle pointer to initialise */
);
extern STATUS wtxMsgInfoGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_SVR_DESC * pWtxMsgSvrDesc /* Output msg. result */
);
extern STATUS wtxMsgMemAddToPool
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MEM_BLOCK_DESC * pWtxMsgMemBlockDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgMemAlign
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MEM_BLOCK_DESC * pWtxMsgMemBlockDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgMemAlloc
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM_WITH_PD * pWtxMsgParamWithPD, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgMemChecksum
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MEM_SET_DESC * pWtxMsgMemSetDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgMemDisassemble
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_DASM_DESC * pWtxMsgDasmDesc, /* Input msg. desc. */
WTX_MSG_DASM_INST_LIST * pWtxMsgDasmInstList /* Output msg. result */
);
extern STATUS wtxMsgMemFree
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM_WITH_PD * pWtxMsgParamWithPD, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgMemInfoGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_MEM_INFO * pWtxMsgMemInfo /* Output msg. result */
);
extern STATUS wtxMsgMemMove
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MEM_MOVE_DESC * pWtxMsgMemMoveDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgMemRealloc
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MEM_BLOCK_DESC * pWtxMsgMemBlockDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgMemScan
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MEM_SCAN_DESC * pWtxMsgMemScanDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgMemSet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MEM_SET_DESC * pWtxMsgMemSetDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgMemRead
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MEM_COPY_DESC * pWtxMsgMemCopyDescIn, /* Input msg. desc. */
WTX_MSG_MEM_COPY_DESC * pWtxMsgMemCopyDescOut /* Output msg. res. */
);
extern STATUS wtxMsgMemWrite
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MEM_COPY_DESC * pWtxMsgMemCopyDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. res. */
);
extern STATUS wtxMsgNullProc
(
HWTX hWtx, /* WTX API handler */
WTX_SVR_TYPE * pWtxSvrType, /* Input msg. desc. */
void * pVoidOut /* Output msg. result */
);
extern STATUS wtxMsgPdInfoQGet
(
HWTX hWtx, /* WTX session handler */
WTX_MSG_PARAM * pWtxMsgParam, /* unused (valid) pointer */
WTX_MSG_PD_DESC_Q * pWtxMsgPdDescQ /* list of protection domains */
);
extern STATUS wtxMsgObjKill
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_KILL_DESC * pWtxMsgKillDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgObjModuleChecksum
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MOD_MATCH_DESC * pWtxMsgModMatchDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgObjModuleInfoGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MOD_MATCH_DESC * pWtxMsgModMatchDesc, /* Input msg. desc. */
WTX_MSG_MODULE_INFO * pWtxMsgModuleInfo /* Output msg. result */
);
extern STATUS wtxMsgObjModuleFind
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MOD_MATCH_DESC * pWtxMsgModMatchDesc, /* Input msg. desc. */
WTX_MSG_MODULE_LIST * pWtxMsgModuleList /* Output msg. result */
);
extern STATUS wtxMsgObjModuleListGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MOD_MATCH_DESC * pWtxMsgModMatchDesc, /* Input msg. desc. */
WTX_MSG_MODULE_LIST * pWtxMsgModuleList /* Output msg. result */
);
extern STATUS wtxMsgObjModuleLoad
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_FILE_LOAD_DESC * pWtxMsgFileLoadDescIn, /* Input msg. desc. */
WTX_MSG_FILE_LOAD_DESC * pWtxMsgFileLoadDescOut /* Output msg. result */
);
extern STATUS wtxMsgObjModuleUnload
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_MOD_NAME_OR_ID * pWtxMsgModNameOrId, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgOpen
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_OPEN_DESC * pWtxMsgOpenDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgRegisterForEvent
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_EVENT_REG_DESC * pWtxMsgEventRegDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgRegistryConnect /* setting up registry exchange */
(
HWTX hWtx, /* handle to connect to registry */
WTX_MSG_PARAM * pWtxMsgParam, /* Input message desc */
void * pUnusedOut /* output pointer, not used yet */
);
extern void wtxMsgRegistryDisconnect /* closing registry exchange */
(
HWTX hWtx, /* handle to disconnect registry */
void * pUnusedIn, /* input message pointer (not used) */
void * pUnusedOut /* output message pointer (not used) */
);
extern STATUS wtxMsgRegsGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_REG_READ * pWtxMsgRegRead, /* Input msg. desc. */
WTX_MSG_MEM_XFER_DESC * pWtxMsgMemXferDesc /* Output msg. result */
);
extern STATUS wtxMsgRegsSet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_REG_WRITE * pWtxMsgRegWrite, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgResultFree
(
HWTX hWtx, /* WTX API handler */
void * pToFree, /* pointer to free from list */
void * pUnused /* unused value yet */
);
extern STATUS wtxMsgSvrDescGet
(
HWTX hWtx, /* WTX session handler */
char * serverName, /* target server name to set */
char * hostName, /* registry host name */
WTX_DESC * pWtxDesc /* target server full desc */
);
extern STATUS wtxMsgSvrSet
(
HWTX hWtx, /* current wtx session handle */
WTX_DESC * pWtxDesc, /* registry item desc */
void * pUnused /* unused parameter yet */
);
extern STATUS wtxMsgSymAdd
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_SYMBOL_DESC * pWtxMsgSymbolDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgSymFind
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_SYM_MATCH_DESC * pWtxMsgSymMatchDesc, /* Input msg. desc. */
WTX_MSG_SYM_LIST * pWtxMsgSymList /* Output msg. result */
);
extern STATUS wtxMsgSymListGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_SYM_MATCH_DESC * pWtxMsgSymMatchDesc, /* Input msg. desc. */
WTX_MSG_SYM_LIST * pWtxMsgSymList /* Output msg. result */
);
extern STATUS wtxMsgSymRemove
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_SYMBOL_DESC * pWtxMsgSymbolDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgSymTblInfoGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_SYM_TBL_INFO * pWtxMsgSymTblInfo /* Output msg. result */
);
extern STATUS wtxMsgTargetAttach
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_ID * pWtxMsgToolId, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgTargetPing
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_ID * pWtxMsgToolId, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgTargetReset
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_ID * pWtxMsgToolId, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgTerminate
(
HWTX hWtx, /* WTX API handler */
void * pUnusedIn, /* unused yet */
void * pUnusedOut /* unused yet */
);
extern STATUS wtxMsgToolAttach
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_DESC * pWtxMsgToolDescIn, /* Input msg. desc. */
WTX_MSG_TOOL_DESC * pWtxMsgToolDescOut /* Output msg. result */
);
extern STATUS wtxMsgToolCleanup
(
HWTX hWtx, /* WTX API handler */
void * pUnusedIn, /* input : unused yet */
void * pUnusedOut /* output : unused yet */
);
extern STATUS wtxMsgToolDetach
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_ID * pWtxMsgToolId, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgTsInfoGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_ID * pWtxMsgToolId, /* Input msg. desc. */
WTX_MSG_TS_INFO * pWtxMsgTsInfo /* Output msg. result */
);
extern STATUS wtxMsgTsLock
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TS_LOCK * pWtxMsgTsLock, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgTsUnlock
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TS_UNLOCK * pWtxMsgTsUnlock, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgUnregisterForEvent
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_EVENT_REG_DESC * pWtxMsgEventRegDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgVioChanGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_ID * pWtxMsgToolId, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgVioChanRelease
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgVioCtl
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_VIO_CTL_DESC * pWtxMsgVioCtlDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgVioFileListGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_TOOL_ID * pWtxMsgToolId, /* Input msg. desc. */
WTX_MSG_VIO_FILE_LIST * pWtxMsgVioFileList /* Output msg. result */
);
extern STATUS wtxMsgVioRead
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_VIO_COPY_DESC * pWtxMsgVioCopyDescIn, /* Input msg. desc. */
WTX_MSG_VIO_COPY_DESC * pWtxMsgVioCopyDescOut /* Output msg. result */
);
extern STATUS wtxMsgVioWrite
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_VIO_COPY_DESC * pWtxMsgVioCopyDesc, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgContextAttach
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT * pWtxMsgContext, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgContextDetach
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_CONTEXT * pWtxMsgContext, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
/* ----------------------- registry related routines ------------------------ */
extern STATUS wtxMsgInfoGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_SVR_DESC * pWtxMsgSvrDesc /* Output msg. result */
);
extern STATUS wtxMsgInfoQGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_WTXREGD_PATTERN * pWtxMsgWtxregdPattern, /* Input msg. desc. */
WTX_MSG_SVR_DESC_Q * pWtxMsgSvrDescQ /* Output msg. result */
);
extern STATUS wtxMsgRegistryEntryGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_WTXREGD_ITEM * pWtxMsgWtxregdItem, /* Input msg. desc. */
WTX_MSG_SVR_DESC * pWtxMsgSvrDesc /* Output msg. result */
);
extern STATUS wtxMsgRegistryEntryListGet
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_WTXREGD_INFO * pMasWtxregdItem, /* Input msg. desc. */
WTX_MSG_DESC_Q * pWtxMsgDescQ /* Output msg. result */
);
extern STATUS wtxMsgRegistryEntryAdd
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_WTXREGD_INFO * pWtxMsgWtxregInfo, /* Input msg. desc. */
WTX_MSG_SVR_DESC * pWtxMsgSvrDescOut /* Output msg. result */
);
extern STATUS wtxMsgRegistryEntryUpdate
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_WTXREGD_INFO * pWtxMsgWtxregInfo, /* Input msg. desc. */
WTX_MSG_SVR_DESC * pWtxMsgSvrDesc /* Output msg. result */
);
extern STATUS wtxMsgRegistryEntryRemove
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_WTXREGD_ITEM * pWtxMsgWtxregdItem, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgRegistryLogAction /* log action request */
(
HWTX hWtx, /* session handler */
WTX_MSG_WTXREGD_LOG * pWtxMsgWtxregdLogIn, /* input parameter */
WTX_MSG_WTXREGD_LOG * pWtxMsgWtxregdLogOut /* result decription */
);
extern STATUS wtxMsgRegister
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_SVR_DESC * pWtxMsgSvrDescIn, /* Input msg. desc. */
WTX_MSG_SVR_DESC * pWtxMsgSvrDescOut /* Output msg. result */
);
extern STATUS wtxMsgTgtsvrAction
(
HWTX hWtx, /* session handler */
WTX_MSG_TGTSVR_ACTION * pWtxMsgTgtsvrAction, /* input parameter */
WTX_MSG_RESULT * pWtxMsgResult /* result secription */
);
extern STATUS wtxMsgUnregister
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_PARAM * pWtxMsgParam, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgRegistryHeartbeat
(
HWTX hWtx, /* WTX API handler */
WTX_MSG_WTXREGD_ITEM * pWtxMsgWtxregdItem, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
/* ---------------------- WTX message utility routines ---------------------- */
extern BOOL wtxMsgIsAttached
(
HWTX hWtx /* WTX session handler */
);
extern STATUS wtxMsgAttachFree
(
HWTX hWtx /* WTX session handler */
);
extern STATUS wtxMsgToolDescSet
(
HWTX hWtx, /* current WTX session handler */
WTX_TOOL_DESC * pToolDesc /* value to init WTX tool desc to */
);
extern STATUS wtxMsgToolIdSet
(
HWTX hWtx, /* current WTX session handler */
WTX_TGT_ID_T toolId /* new tool Id to set */
);
extern BOOL32 wtxMsgToolConnected
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgAsyncHandleSet
(
HWTX hWtx, /* current WTX session handler */
WTX_ASYNC_HANDLE asyncHAndle /* new async handler to set to */
);
extern STATUS wtxMsgToolIdGet
(
HWTX hWtx, /* current WTX session handler */
WTX_MSG_TOOL_ID * pMsgToolId /* returned message tool ID pointer */
);
extern STATUS wtxMsgErrSet
(
HWTX hWtx, /* current WTX session handler */
WTX_ERROR_T errCode /* error code to set to */
);
extern WTX_ERROR_T wtxMsgErrGet
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgErrHandlerGet
(
HWTX hWtx, /* current WTX session handler */
WTX_HANDLER_T * pErrHandler /* returned WTX error handler */
);
extern STATUS wtxMsgErrHandlerSet
(
HWTX hWtx, /* current WTX session handler */
WTX_HANDLER_T * pErrHandler /* WTX error handler to set to */
);
extern char * wtxMsgErrMsgGet
(
HWTX hWtx /* current WTX session handler */
);
extern void * wtxMsgClientDataGet
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgErrMsgSet
(
HWTX hWtx, /* current WTX session handler */
const char * errMsg /* error message to set to */
);
extern STATUS wtxMsgClientDataSet
(
HWTX hWtx, /* current WTX session handler */
void ** ppClientData /* client data to set to */
);
extern WTX_TGT_ID_T wtxMsgPdIdGet
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgPdNameGet
(
HWTX hWtx, /* current WTX session handler */
WTX_TGT_ID_T targetPdId, /* the PD ID that we want the name of */
char ** pdName /* The string to store the PD name result */
);
extern STATUS wtxMsgPdIdSet
(
HWTX hWtx, /* current WTX session handler */
WTX_TGT_ID_T pdId /* PD ID to set to */
);
extern WTX_DESC * wtxMsgCurrentSvrDescGet
(
HWTX hWtx /* current WTX session handler */
);
extern WTX_TS_INFO * wtxMsgCurrentTsInfoGet
(
HWTX hWtx /* current WTX session handler */
);
extern WTX_TOOL_DESC * wtxMsgCurrentToolDescGet
(
HWTX hWtx /* current WTX session handler */
);
extern HWTX * wtxMsgSelfGet
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgVioLinkDescSemTake
(
HWTX hWtx, /* current WTX session handler */
int timeout /* semTake wait timeout */
);
extern STATUS wtxMsgVioLinkDescSemGive
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgVioLinkDescListAdd
(
HWTX hWtx, /* current WTX session handler */
NODE * pNode /* node to add to list */
);
extern WTX_TOOL_DESC * wtxMsgToolDescGet
(
HWTX hWtx /* current WTX session handler */
);
extern BOOL wtxMsgAsyncNotifyIsStarted
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgAsyncHandleAlloc
(
HWTX hWtx /* current WTX session handler */
);
extern WTX_ASYNC_HANDLE wtxMsgAsyncHandleGet
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgAsyncNotifyStart
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgAsyncNotifyStop
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgRegistryTimeoutSet
(
HWTX hWtx, /* current WTX session handler */
int timeout /* timeout value to set to */
);
extern int wtxMsgRegistryTimeoutGet
(
HWTX hWtx /* current WTX session handler */
);
extern WTX_DESC * wtxMsgSelfDescGet
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgSelfDescSet
(
HWTX hWtx, /* current WTX session handler */
WTX_DESC * pSelfDesc /* seld desc to set to */
);
extern WTX_TGT_ID_T wtxMsgObjIdGet
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgUsrSvcCtrl
(
HWTX hWtx, /* WTX session handle */
WTX_MSG_USR_SVC_CTRL_INFO * pUsrSvcCtrlInfo, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgUsrSvcCall
(
HWTX hWtx, /* WTX session handle */
WTX_MSG_MEM_XFER_DESC * pWtxMsgMemXferInDesc, /* Input msg. desc. */
WTX_MSG_MEM_XFER_DESC * pWtxMsgMemXferOutDesc /* Output msg. result */
);
STATUS wtxMsgTsLogAction /* action on tsvr log */
(
HWTX hWtx, /* session handler */
WTX_MSG_WTXREGD_LOG * pWtxMsgWtxregdLogIn, /* input parameter */
WTX_MSG_WTXREGD_LOG * pWtxMsgWtxregdLogOut /* result decription */
);
extern STATUS wtxMsgRegistryHostSet
(
HWTX hWtx, /* wtx session handle */
const char * host /* remote registry host name or IP */
);
/* ------------------------ WTX target file routines ------------------------ */
extern STATUS wtxMsgTargetFileCopy
(
HWTX hWtx, /* current session handler */
WTX_MSG_TARGET_FILE_COPY_DESC * pWtxMsgTargetFileCopyInDesc,
WTX_MSG_RESULT * pWtxMsgTargetFileCopyOutDesc
);
extern STATUS wtxMsgTargetFileRemove
(
HWTX hWtx, /* current session handler */
WTX_MSG_TARGET_FILE_REMOVE_DESC * pWtxMsgTargetFileRemoveInDesc,
WTX_MSG_RESULT * pUnusedOut /* output ptr, not used yet*/
);
/* --------------------- WTX target filesystem routines --------------------- */
extern STATUS wtxMsgTgtfsInodeCtrl
(
HWTX hWtx, /* current session handler */
WTX_MSG_TGTFS_INODE_CTRL_INFO * pWtxMsgTgtfsInodeCtrlInfo,
WTX_MSG_TGTFS_INODE_CTRL_RESULT * pResult /* output ptr, not used yet */
);
extern UINT32 wtxMsgOsErrCodeGet
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgOsErrCodeSet
(
HWTX hWtx, /* current WTX session handler */
UINT32 osErrCode /* error code to set to */
);
extern UINT32 wtxMsgWtxVersionGet
(
HWTX hWtx /* current WTX session handler */
);
extern STATUS wtxMsgWtxVersionSet
(
HWTX hWtx, /* current WTX session handler */
UINT32 version /* version to set */
);
/* ---------------------- Threads handling ---------------------------------- */
extern STATUS wtxMsgPdTasksListGet
(
HWTX hWtx, /* current session handler */
WTX_MSG_CONTEXT * pWtxMsgContext, /* Input msg. desc */
WTX_MSG_TASKS_INFO_DESC * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgPdInfoSet
(
HWTX hWtx, /* current session handler */
WTX_MSG_PD_INFO_SET_DESC * pWtxMsgIn, /* Input msg. desc. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
extern STATUS wtxMsgPdInfoGet
(
HWTX hWtx, /* current session handler */
WTX_MSG_PD_INFO_GET_DESC * pWtxMsgIn, /* Input msg. */
WTX_MSG_RESULT * pWtxMsgResult /* Output msg. result */
);
#ifdef __cplusplus
}
#endif
#endif /* __INCwtxmsgh */