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

VxWorks

开发平台:

C/C++

  1. /* wtxp.h - wtx protocol private header file */
  2. /*
  3. modification history
  4. --------------------
  5. 01s,02oct01,c_c  Added license check.
  6. 01r,07jun01,pch  moved host-only part to end of _WTX struct
  7. 01q,22jun99,fle  made wtx compile on target side
  8. 01p,27may99,fle  added async notification on wtx handle basis  SPR 67367
  9. 01o,07jul98,pcn  Added wtxObjModuleUndefSymAdd prototype.
  10. 01n,17may95,s_w  update for use of exchange api.
  11. 01m,15may95,c_s  added endian field to handle.
  12. 01l,04may95,s_w  put in private parts of wtx.h and remove message/rpc code
  13.  which is now in wtxmsg.h and wtxrpc.h
  14. 01k,24mar95,p_m  added WTX_MEM_ALIGN, WTX_MEM_REALLOC and WTX_MEM_ADD_TO_POOL.
  15. 01j,16mar95,p_m  added WTX_VIO_FILE_LIST.
  16. 01i,10mar95,p_m  added WTX_AGENT_MODE_SET. changed WTX_MEM_INFO_GET to 38.
  17. 01h,02mar95,p_m  changed WTX_TS_MEM_MOVE rpc number to 35.
  18. 01g,27feb95,p_m  added WTX_TS_MEM_MOVE.
  19. 01f,26feb95,jcf  added WTX_TS_[UN]LOCK.  removed WTX_OBJ_[UN]LOCK.
  20. 01e,23feb95,pad  changed WTX_FIRST_ADDL_PROC_NUM to 301.
  21. 01d,21feb95,pad  instated WTX_FIRST_ADDL_PROC_NUM.
  22. 01c,07feb95,p_m  get rid of WTX_MEM_ZERO.
  23. 01b,26jan95,p_m  added WTX_OBJ_LOCK, WTX_OBJ_UNLOCK and WTX_MEM_SET, 
  24.    changed WTX_TS_KILL to WTX_OBJ_KILL.
  25. 01a,15jan95,p_m  written.
  26. */
  27. #ifndef __INCwtxph
  28. #define __INCwtxph 1
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif
  32. #include "wtx.h"
  33. #include "wtxexch.h"
  34. #ifdef HOST
  35.     #include "wtxAsync.h"
  36. #endif
  37. #include "sllLib.h" /* singly linked lists library */
  38. /* defines */
  39. /* This macro registers an error and does a return with the supplied value */
  40. #define WTX_ERROR_RETURN(handle, errCode, retVal) 
  41. do 
  42.     { 
  43.     wtxErrDispatch (handle, errCode); 
  44.     return retVal; 
  45.     } while (0)
  46. /*
  47.  * This macro checks that a WTX API handle is valid and registers a
  48.  * WTX_ERR_API_INVALID_HANDLE error if it is not.
  49.  */
  50. #define WTX_CHECK_HANDLE(handle, retVal) 
  51. do 
  52.     { 
  53.     if (handle == 0 || (handle)->self != handle) 
  54. WTX_ERROR_RETURN (handle, WTX_ERR_API_INVALID_HANDLE, retVal); 
  55.     } while (0)
  56. /*
  57.  * This macro checks that a WTX API handle is both valid and 
  58.  * connected to a server. WTX_ERR_API_INVALID_HANDLE and
  59.  * WTX_ERR_API_NOT_CONNECTED errors can be raised
  60.  */
  61. #define WTX_CHECK_CONNECTED(handle, retVal) 
  62. do 
  63.     { 
  64.     WTX_CHECK_HANDLE (handle, retVal); 
  65.     if ((handle)->server == NULL) 
  66. WTX_ERROR_RETURN (handle, WTX_ERR_API_NOT_CONNECTED, retVal); 
  67.     } while (0)
  68. /* typedefs */
  69. typedef struct _wtx
  70.     {
  71.     HWTX self; /* pointer to self for validation */
  72.     WTX_XID server; /* exchange for WTX server calls  */
  73.     WTX_XID registry; /* exchange for WTX registry calls */
  74.     WTX_ERROR_T errCode; /* last error code */
  75.     const char * errMsg; /* last error message (if available) */
  76.     WTX_HANDLER_T errHandler; /* handler for errors */
  77.     WTX_MSG_TOOL_ID msgToolId; /* tool id message for convenience */
  78.     WTX_TOOL_DESC * pToolDesc; /* tool descriptor for this tool */
  79.     WTX_TS_INFO * pTsInfo; /* most recent target server info */
  80.     WTX_DESC * pServerDesc; /* message descriptor for server */
  81.     WTX_DESC * pSelfDesc; /* message descriptor for us */
  82.     void * pClientData; /* pointer to client data */
  83.     SL_LIST * pWtxFreeList; /* list of WTX pointers allocated */
  84. #ifdef HOST
  85.     WTX_ASYNC_HANDLE  asyncHandle; /* async. context handle */
  86.     BOOL isLicensed; /* did this tool got a license ? */
  87. #endif
  88.     char * targetToolName; /* tool used to build target runtime */
  89.     } _WTX;
  90. typedef struct _wtx_handler_t
  91.     {
  92.     WTX_HANDLER_FUNC pFunc;
  93.     void *      pClientData;
  94.     WTX_HANDLER_T    prev;
  95.     } _WTX_HANDLER_T;
  96. /* Functions declarations */
  97. extern STATUS wtxObjModuleUndefSymAdd /* add undef sym to undef sym list */
  98.     (
  99.     HWTX hWtx, /* WTX API handle */
  100.     char * symName, /* undefined symbol name */
  101.     UINT32 symGroup /* undefined symbol group */
  102.     );
  103. #ifdef __cplusplus
  104. }
  105. #endif
  106. #endif /* __INCwtxph */