wtxtypes.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:13k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* wtxtypes.h - WTX fundamental type definition */
  2. /* Copyright 1984-1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 02o,04oct01,c_c  Added wtxToolNameGet API.
  7. 02n,09may01,dtr  Adding enums for Coprocessors bit shifts and masks.
  8. 02m,19mar01,tpw  Resolve SH/altivec conflict; add WTX_REG_SET_LAST so a stable
  9.  name for the count of WTX_REG_SET's is available.
  10. 02l,15jan01,dtr  Adding support for altivec register set.
  11. 02l,07mar00,zl   merged SH support from T1
  12. 02k,23feb99,c_c  Implemented an API to get the target IP address (SPR #25044).
  13. 02j,29jan99,dbt  doc: indicate which elements of WTX_CONTEXT_TYPE are
  14.  implemented.
  15. 02i,12jan99,dbt  indicated that WTX_ACTION_STOP_ALL is not implemented (SPR
  16.                  #22081).
  17. 02h,18sep98,pcn  Implement wtxObjModuleInfoAndPathGet.
  18. 02g,04sep98,pcn  Added WTX_EVENT_EVTPT_ADDED, WTX_EVENT_EVTPT_DELETED.
  19. 02f,18aug98,pcn  Add WTX_SVC_TYPE description.
  20. 02e,19jun98,pcn  Added new flags for the asynchronous load.
  21. 02d,16jun98,pcn  Changed separator character from "_" to " ".
  22. 02c,24apr98,pcn  Changed WTX_ASYNC_HEADER_SIZE.
  23. 02b,03apr98,pcn  WTX 2: added WTX_EVENT_TS_KILLED used by the asynchronous
  24.                  notification.
  25. 02a,24mar98,dbt  added WTX context status type.
  26. 01z,17mar98,pcn  WTX 2: changed WTX_ALL_MODULE_CHECK, MTU. Removed new event
  27.                  types.
  28. 01y,12mar98,pcn  WTX 2: added new wtx_event_type.
  29. 01x,02mar98,pcn  WTX 2: defined strings for WTX_COMMAND_SEND,
  30.                  WTX_OBJ_MODULE_CHECKSUM, OBJ_MODULE_LOAD_2, WTX_ASYNC_NOTIFY.
  31.                  Changed WTX_EVENT_BREAKPOINT in WTX_EVENT_HW_BP.
  32. 01w,29aug97,fle  Adding WTX_MAX_DASM_INST_CNT constant.
  33. 01v,31dec96,dgp  doc: more spelling corrections
  34. 01u,06dec96,dgp  doc: correct spelling
  35. 01t,30sep96,elp  put in share/ (SPR# 6775).
  36. 01s,04sep96,dgp  doc: removed WTX_O_RDWR from WTX_OPEN_FLAG since no longer
  37.  supported per SPR #5959
  38. 01r,17jun96,p_m  added flags for WTX_OPEN (SPR# 4941).
  39. 01q,26may95,p_m  added WTX_MAX_PATTERN_LEN.
  40. 01p,23may95,p_m  changed WTX_CTX... and WTX_REG_SET... values.  Took care
  41.  of wtx_event_type comments length for manual generation.
  42. 01o,19may95,tpr  moved TGT_ADDR_T and TGT_ARG_T in host.h.
  43.           + p_m  removed DETECTION related stuff.
  44. 01m,17may95,s_w  extended WTX_EVENT_TYPE to have all target server generated
  45.                  events. Because WTX_EVENT_TYPE is mapped to WDB_EVENT_TYPE
  46.  in the target server event numbering was made to match
  47.  for event types 0 through 8.
  48. 01l,16may95,p_m  added object kill operations defines.
  49. 01k,09may95,p_m  removed WTX_CORE from WTX_DESC and WTX_DESC_Q.
  50. 01j,05may95,p_m  changed WTX_STATUS and WTX_REQUEST type to unsigned long.
  51.                  added protocol version number in WTX_CORE.
  52. 01i,04may95,s_w  removed include of <rpc/rpc.h> and typedef of WTX_ID. Added
  53.  WTX_MAX_xxx limit defines that were in wtx.h. Remove HWTX
  54.  definition that belongs in wtx.h
  55. 01h,20apr95,p_m  integrated more WIN32 changes.
  56. 01g,08apr95,p_m  added HWTX and _WTX.
  57. 01f,04apr95,p_m  added WTX agent mode type.
  58. 01e,03apr95,p_m  get rid 0f 0x0 in wtx_action_type.
  59. 01d,30mar95,p_m  added new types to completely separate WTX from the 
  60.  agent protocols. removed #include "comtypes.h".
  61. 01c,15mar95,p_m  changed #include "vxWorks.h" to #include "host.h".
  62. 01b,10jan95,p_m  added basic types.  added #include "comtypes.h" and 
  63.  #include "wtxerr.h".  cleanup.
  64. 01a,20jan95,p_m  written.
  65. */
  66. #ifndef __INCwtxtypesh
  67. #define __INCwtxtypesh
  68. #ifdef __cplusplus
  69. extern "C" {
  70. #endif
  71. #ifdef HOST
  72. #include "host.h"
  73. #else
  74. #include "vxWorks.h"
  75. #include "wdb/wdb.h"
  76. #define WTX_OK 0
  77. #define WTX_ERROR (-1)
  78. typedef unsigned long   TGT_ARG_T;      /* target function argument */
  79. #endif /* HOST */
  80. #include "wtxerr.h"
  81. /* limits */
  82. #define WTX_MAX_SYM_CNT 256     /* maximum symbols in list */
  83. #define WTX_MAX_DASM_INST_CNT 256     /* maximum instructions in list */
  84. #define WTX_MAX_EVTPT_CNT 256     /* maximum eventpoints in list */
  85. #define WTX_MAX_MODULE_CNT 1000    /* maximum modules in list */
  86. #define WTX_MAX_SERVICE_CNT 500     /* valid service numbers: 0 to 500 */
  87. #define WTX_MAX_ARG_CNT 10      /* maximum arguments for func calls */
  88. #define WTX_MAX_SYM_TBL_CNT 256     /* maximum symbol tables */
  89. #define WTX_MAX_VIO_DATA 512 /* maximum bytes per VIO transaction */
  90. /* this number should be the same */
  91. /* as the buffer size used on WDB */
  92. /* virtual I/O devices */
  93. #define WTX_MAX_PATTERN_LEN 512 /* maximum length of pattern for */
  94. /* WTX_MEM_SCAN service */
  95. #define WTX_MAX_FILENAME_LEN 80 /* max length of a filename */
  96. #define WTX_MAX_OBJ_SEG_CNT 40 /* maximum num of segment in a module */
  97. #define WTX_MAX_SECTION_CNT 40 /* maximum num of section in an */
  98. /* object file */
  99. #define WTX_MAX_WDB_SVC_CNT 10 /* maximum num of WDB services in an */
  100. /* WDB service object module */
  101. /* virtual i/o control operations */
  102. #define WTX_CTL_VIO_REDIRECT 1
  103. /* object kill operations */
  104. #define WTX_OBJ_KILL_DESTROY 1 /* terminate */
  105. #define WTX_OBJ_KILL_RESTART 2 /* start again */
  106. /* Strings passed in WTX_COMMAND_SEND */
  107. #define SEPARATOR                    " "
  108. #define WDB_LOGGING_ON_CMD           "wdbLoggingOn"
  109. #define WDB_LOGGING_OFF_CMD          "wdbLoggingOff"
  110. #define WTX_LOGGING_ON_CMD           "wtxLoggingOn"
  111. #define WTX_LOGGING_OFF_CMD          "wtxLoggingOff"
  112. #define ALL_LOGGING_OFF_CMD          "allLoggingOff"
  113. #define WTX_ASYNC_NOTIFY_ENABLE_CMD  "wtxAsyncNotifyEnable"
  114. #define WTX_ASYNC_NOTIFY_DISABLE_CMD "wtxAsyncNotifyDisable"
  115. #define WTX_OBJ_KILL_CMD             "wtxObjKill"
  116. #define WTX_OBJ_KILL_DESTROY_CMD     "wtxObjKillDestroy"
  117. #define WTX_OBJ_KILL_RESTART_CMD     "wtxObjKillRestart"
  118. #define WTX_TS_LOCK_CMD              "wtxTsLock"
  119. #define WTX_TS_UNLOCK_CMD            "wtxTsUnlock"
  120. #define WTX_TARGET_RESET_CMD         "wtxTargetReset"
  121. #define WTX_LOAD_CANCEL_CMD      "wtxObjModuleLoadCancel"
  122. #define WTX_TARGET_IP_ADDRESS_CMD    "wtxTargetIpAddressGet"
  123. #define WTX_TARGET_TOOLNAME_GET_CMD  "wtxTargetToolNameGet"
  124. #define LOG_WDB     0
  125. #define LOG_WTX     1
  126. #define LOG_ALL     2
  127. #define LOG_OFF     0
  128. #define LOG_ON      1
  129. #define WTX_ALL_MODULE_CHECK    "WTX_ALL_MODULE_CHECK"
  130. #define WTX_ALL_MODULE_ID       1       /* For WTX_OBJ_MODULE_CHECKSUM */
  131. #define WTX_FILE_SLICE_SIZE     8192    /* For WTX_OBJ_MODULE_LOAD_2   */
  132. #define WTX_MTU     1460    /* For WTX_OBJ_MODULE_LOAD_2   */
  133. #define WTX_ASYNC_HEADER_SIZE   36      /* For WTX_ASYNC_NOTIFY        */
  134. /* load behavior flags */
  135. #define WTX_LOAD_FROM_CLIENT     0x0 /* Open files on the client        */
  136. #define WTX_LOAD_FROM_TARGET_SERVER 0x1 /* Open files on the target server */
  137. #define WTX_LOAD_ASYNCHRONOUSLY     0x2 /* Send load command and return    */
  138. #define WTX_LOAD_PROGRESS_REPORT    0x4 /* Get load progress status    */
  139. /* load progress flags */
  140. #define WTX_LOAD_INIT 0x1 /* Initializations are done */
  141. #define WTX_LOAD_RELOC 0x2 /* Relocation phase         */
  142. #define WTX_LOAD_DOWNLOAD 0x4 /* Download to the target   */
  143. #define WTX_LOAD_DONE 0x8 /* Load done                */
  144. #define WTX_LOAD_ERROR 0x10 /* Error during the load    */
  145. /* WTX_OBJ_MODULE_INFO_GET constant */
  146. #define WTX_OBJ_MODULE_PATHNAME_GET "WTX_OBJ_MODULE_PATHNAME_GET"
  147. /* typedefs */
  148. typedef long BOOL32; /* boolean */
  149. typedef unsigned long WTX_STATUS; /* wtx status value */
  150. typedef unsigned long  WTX_REQUEST; /* WTX request number */
  151. #define WTX_FPP_MASK  0x0001
  152. #define WTX_ALTIVEC_MASK 0x0002
  153. #define WTX_DSP_MASK 0x0004
  154. typedef enum wtx_coprocessor_bitshift
  155.     {
  156.     WTX_FPP_BITSHIFT = 0,
  157.     WTX_ALTIVEC_BITSHIFT= 1,
  158.     WTX_DSP_BITSHIFT = 2,
  159.     WTX_LAST_BITSHIFT   = 16
  160.     }WTX_COPROCESSOR_BITSHIFT;
  161. /*
  162.  * WTX_EVENT_TYPE - The class of events that can be generated by the
  163.  * target server. User defined event types start at 0x100, event types
  164.  * numbered 22 through 255 are reserved for future use.
  165.  */
  166. typedef enum wtx_event_type
  167.     {
  168.     WTX_EVENT_NONE         = 0,     /* No event                           */
  169.     WTX_EVENT_CTX_START    = 1,     /* A target context was created       */
  170.     WTX_EVENT_CTX_EXIT     = 2,     /* A target context was deleted       */
  171.     WTX_EVENT_TEXT_ACCESS  = 3,     /* A target text access (breakpoint)  */
  172.     WTX_EVENT_DATA_ACCESS  = 4,     /* A target data access (watchpoint)  */
  173.     WTX_EVENT_EXCEPTION    = 5,     /* A target exception occurred        */
  174.     WTX_EVENT_VIO_WRITE    = 6,     /* A target VIO write occurred        */
  175.     WTX_EVENT_HW_BP        = 7,     /* A target breakpoint: obsolete, use */
  176.                                     /* WTX_EVENT_TEXT_ACCESS instead      */
  177.     WTX_EVENT_CALL_RETURN  = 8,     /* A target function call returned    */
  178.     WTX_EVENT_USER         = 9,     /* A target agent user defined event  */ 
  179.     WTX_EVENT_UNKNOWN      = 10,    /* An unknown target event            */
  180.     WTX_EVENT_TGT_RESET    = 11,    /* The target was reset               */
  181.     WTX_EVENT_SYM_ADDED    = 12,    /* A symbol added to the sym. table   */
  182.     WTX_EVENT_SYM_REMOVED  = 13,    /* A symbol removed from the sym tabl */
  183.     WTX_EVENT_OBJ_LOADED   = 14,    /* An object file was loaded          */
  184.     WTX_EVENT_OBJ_UNLOADED = 15,    /* An object file was unloaded        */
  185.     WTX_EVENT_TOOL_ATTACH  = 16,    /* A tool attached to Target Server   */
  186.     WTX_EVENT_TOOL_DETACH  = 17,    /* A tool detached from Target Server */ 
  187.     WTX_EVENT_TOOL_MSG     = 18,    /* A tool to tool message             */
  188.     WTX_EVENT_TS_KILLED    = 19,    /* The target server was reset        */
  189.     WTX_EVENT_EVTPT_ADDED  = 20,    /* A new event point is added    */
  190.     WTX_EVENT_EVTPT_DELETED= 21,    /* An event point had been deleted   */
  191.     WTX_EVENT_OTHER        = 0x100, /* User defined or unrecognized event */
  192.     WTX_EVENT_INVALID = WTX_ERROR   /* Invalid/unidentifiable event       */
  193.     } WTX_EVENT_TYPE;
  194. typedef enum wtx_context_type /* types of context */
  195.     {
  196.     WTX_CONTEXT_SYSTEM = 0, /* system mode */
  197.     WTX_CONTEXT_GROUP = 1, /* process group (not implemented) */
  198.     WTX_CONTEXT_ANY = 2, /* any context (not implemented) */
  199.     WTX_CONTEXT_TASK = 3, /* specific task or processes */
  200.     WTX_CONTEXT_ANY_TASK = 4, /* any task */
  201.     WTX_CONTEXT_ISR = 5, /* specific ISR (not implemented) */
  202.     WTX_CONTEXT_ISR_ANY = 6 /* any ISR (not implemented) */
  203.     } WTX_CONTEXT_TYPE;
  204. typedef TGT_ADDR_T WTX_CONTEXT_ID_T; /* context id type */
  205. /*
  206.  * WTX_ACTION_TYPE - Type of actions to perform when an event occurs. 
  207.  * These action types can be bit-wise or-ed together. If the function called 
  208.  * in an WTX_ACTION_CALL returns TRUE, then any other actions specified are 
  209.  * cancelled. User defined actions use the high order 16 bits of the 
  210.  * WTX_ACTION_TYPE.
  211.  */
  212. typedef enum wtx_action_type /* type of actions */
  213.     {
  214.     WTX_ACTION_CALL  = 1, /* Call a function */
  215.     WTX_ACTION_NOTIFY = 2, /* Post the event to the host */
  216.     WTX_ACTION_STOP = 4, /* Stop the context */
  217.     WTX_ACTION_STOP_ALL = 8 /* not implemented */
  218.     } WTX_ACTION_TYPE;
  219. typedef enum wtx_return_type /* return value type */
  220.     {
  221.     WTX_RETURN_TYPE_INT     = 0, /* integer return format */
  222.     WTX_RETURN_TYPE_DOUBLE  = 1 /* double return format */
  223.     } WTX_RETURN_TYPE;
  224. typedef enum wtx_svc_type               /* Id for service type & action */
  225.     {
  226.     WDB_LOGGING_ON          = 0,        /* Turn on wdb logging request  */
  227.     WDB_LOGGING_OFF         = 1,        /* Turn off wdb logging request */
  228.     WTX_LOGGING_ON          = 2,        /* Turn on wtx logging request  */
  229.     WTX_LOGGING_OFF         = 3,        /* Turn off wtx logging request */
  230.     ALL_LOGGING_OFF         = 4         /* Turn off wdb & wtx log req.  */
  231.     } WTX_SVC_TYPE;
  232. typedef enum wtx_reg_set_type /* types of registers */
  233.     {
  234.     WTX_REG_SET_IU = 0, /* integer unit reg. set */
  235.     WTX_REG_SET_FPU = 1, /* float. point unit reg. set */
  236.     WTX_REG_SET_MMU = 2, /* memory managmt unit reg set */
  237.     WTX_REG_SET_CU = 3, /* cache unit reg. set */
  238.     WTX_REG_SET_TPU = 4, /* time process. unit reg. set */
  239.     WTX_REG_SET_SYS = 5, /* system registers */
  240.     WTX_REG_SET_DSP = 6, /* DSP registers */
  241.     WTX_REG_SET_AV  = 7, /* altivec registers */
  242.     WTX_REG_SET_LAST  = 8 /* 1 + last used REG_SET number */
  243.     } WTX_REG_SET_TYPE;
  244. typedef enum wtx_agent_mode_type /* debug agent running mode */
  245.     {
  246.     WTX_AGENT_MODE_TASK  = 1, /* run in task mode */
  247.     WTX_AGENT_MODE_EXTERN = 2, /* run in system mode */
  248.     WTX_AGENT_MODE_BI = 3 /* bimodal agent */
  249.     } WTX_AGENT_MODE_TYPE;
  250. typedef enum wtx_context_status /* context status */
  251.     {
  252.     WTX_CONTEXT_RUNNING = 0, /* context is running */
  253.     WTX_CONTEXT_SUSPENDED  = 1 /* context is suspended */
  254.     } WTX_CONTEXT_STATUS;
  255. typedef enum wtx_open_flag /* flag for WTX_OPEN */
  256.     {
  257.     WTX_O_RDONLY  = 0x1000, /* Open for reading only */
  258.     WTX_O_WRONLY = 0x1001, /* Open for writing only */
  259.     WTX_O_CREAT = 0x1400 /* Open with file create */
  260.     } WTX_OPEN_FLAG;
  261. typedef struct wtx_core /* WTX message core */
  262.     {
  263.     UINT32       objId; /* identifier */
  264.     WTX_ERROR_T  errCode; /* service error code */
  265.     UINT32       protVersion; /* WTX protocol version */
  266.     } WTX_CORE;
  267. typedef struct wtx_desc /* server descriptor */
  268.     {
  269.     char * wpwrName; /* name of wpwr service */
  270.     char * wpwrType; /* type of service */
  271.     char * wpwrKey; /* unique service key */
  272.     } WTX_DESC;
  273. typedef struct wtx_desc_q /* server descriptor queue */
  274.     {
  275.     char * wpwrName; /* name of wpwr service */
  276.     char * wpwrType; /* type of service */
  277.     char * wpwrKey; /* unique service key */
  278.     struct wtx_desc_q * pNext; /* next descriptor */
  279.     } WTX_DESC_Q;
  280. #ifdef __cplusplus
  281. }
  282. #endif
  283. #endif /* __INCwtxtypesh */