wrapper.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* wrapper.c - wrapper xdr filters for the WDB RPC-backend */
  2. /* Copyright 1984-1996 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01d,03may96,elp took care of WDB_TO_BE_CONTINUED in xdr_WDB_REPLY_WRAPPER()
  7. (SPR #6277).
  8. 01c,14jun95,tpr added checkun capability.
  9. 01b,10jun95,pad included rpc/rpc.h
  10. 01a,18apr94,ms  written.
  11. */
  12. /*
  13. DESCPRIPTION
  14. */
  15. /* includes */
  16. #include <rpc/rpc.h>
  17. #include "wdbP.h"
  18. /*******************************************************************************
  19. *
  20. * xdr_WDB_PARAM_WRAPPER -
  21. */ 
  22. BOOL xdr_WDB_PARAM_WRAPPER
  23.     (
  24.     XDR *           xdrs,
  25.     WDB_PARAM_WRAPPER *  objp
  26.     )
  27.     {
  28.     UINT32 xdrStreamSize = 0x00;
  29.     UINT32 cksumVal = 0x00;
  30.     UINT32 cksumPos;
  31.     UINT32 sizePos;
  32.     cksumPos = XDR_GETPOS (xdrs);
  33.     if (!xdr_UINT32 (xdrs, &cksumVal))
  34. return (FALSE);
  35.     sizePos = XDR_GETPOS (xdrs);
  36.     if (!xdr_UINT32 (xdrs, &xdrStreamSize))
  37. return (FALSE);
  38. #ifndef HOST
  39.     if (!xdr_CHECKSUM (xdrs, cksumVal, xdrStreamSize, cksumPos, sizePos))
  40.     return (FALSE);
  41. #endif  /* !HOST */
  42.     if (! xdr_UINT32 (xdrs, &objp->seqNum))
  43. return (FALSE);
  44.     if (! (*objp->xdr) (xdrs, objp->pParams))
  45. return (FALSE);
  46. #ifdef HOST
  47.     if (!xdr_CHECKSUM (xdrs, cksumVal, xdrStreamSize, cksumPos, sizePos))
  48. return (FALSE);
  49. #endif /* HOST */
  50.     return (TRUE);
  51.     }
  52. /******************************************************************************
  53. *
  54. * xdr_WDB_REPLY_WRAPPER -
  55. */ 
  56. BOOL xdr_WDB_REPLY_WRAPPER
  57.     (
  58.     XDR *            xdrs,
  59.     WDB_REPLY_WRAPPER *  objp
  60.     )
  61.     {
  62.     UINT32 xdrStreamSize = 0x00;
  63.     UINT32 cksumVal = 0x00;
  64.     UINT32 cksumPos;
  65.     UINT32 sizePos;
  66.     cksumPos = XDR_GETPOS (xdrs);
  67.     if (!xdr_UINT32 (xdrs, &cksumVal))
  68. return (FALSE);
  69.     sizePos = XDR_GETPOS (xdrs);
  70.     if (!xdr_UINT32 (xdrs, &xdrStreamSize))
  71. return (FALSE);
  72. #ifdef HOST
  73.     if (!xdr_CHECKSUM (xdrs, cksumVal, xdrStreamSize, cksumPos, sizePos))
  74. return (FALSE);
  75. #endif /* HOST */
  76.     if (! xdr_UINT32 (xdrs, &objp->errCode))
  77. return (FALSE);
  78.     /* encode/decode the rest of the reply if there is no error */
  79.     if ((objp->errCode & (~(WDB_EVENT_NOTIFY | WDB_TO_BE_CONTINUED))) == OK)
  80. if (! (*objp->xdr) (xdrs, objp->pReply))
  81.     return (FALSE);
  82. #ifndef HOST
  83.     if (!xdr_CHECKSUM (xdrs, cksumVal, xdrStreamSize, cksumPos, sizePos))
  84.     return (FALSE);
  85. #endif  /* !HOST */
  86.     return (TRUE);
  87.     }