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

VxWorks

开发平台:

C/C++

  1. /* connLib.c -  target-host connection library (WindView) */
  2. /* Copyright 1984-1995 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01g,18jul96,pr  fixed bug in connectionInit for SPR 5144
  7. 01f,01feb95,rhp library man page: add ref to User's Guide
  8. 01e,05apr94,smb and more documentation tweaks
  9. 01d,07mar94,smb more documentation tweaks
  10. 01c,20jan94,smb documentation tweaks
  11. 01b,17jan94,smb added documentation
  12. 01a,10dec93,smb created
  13. */
  14. /*
  15. DESCRIPTION
  16. This library provides routines for configuring the WindView target-host 
  17. connection.
  18. By default, the routines provide target-host communication over TCP
  19. sockets.  Users can replace these routines with their own, without modifying
  20. the kernel or the WindView architecture.  For example, the user may want
  21. to write the WindView event buffer to shared memory, diskette, or hard disks.
  22. Four routines are required: An initialization routine, a close connection
  23. routine, an error handler, and a routine that transfers the data
  24. from the event buffer to another location. 
  25. The data transfer routine must complete its job before the 
  26. next data transfer cycle.  If it fails to do so, a bandwidth
  27. exceeded condition occurs and event logging stops.
  28. INCLUDE FILES: connLib.h
  29. SEE ALSO: wvLib,
  30. .I WindView User's Guide
  31. */
  32. #include "vxWorks.h"
  33. #include "connLib.h"
  34. #include "private/connLibP.h"
  35. LOCAL FUNCPTR       connectionInitRtn = NULL;
  36. LOCAL VOIDFUNCPTR   connectionCloseRtn;
  37. LOCAL VOIDFUNCPTR   connectionErrorRtn;
  38. LOCAL VOIDFUNCPTR   dataTransferRtn;
  39. /*******************************************************************************
  40. *
  41. * connRtnSet - set up connection routines for target-host communication (WindView)
  42. *
  43. * This routine establishes four target-host communication routines; by default
  44. * they are TCP socket routines.  Users can replace these routines with
  45. * their own communication routines.  
  46. *
  47. * Four routines are required: An initialization routine, a close connection
  48. * routine, an error handler, and a routine that transfers the data
  49. * from the event buffer to another location. 
  50. *
  51. * The data transfer routine must complete its job before the 
  52. * next data transfer cycle.  If it fails to do so, a bandwidth
  53. * exceeded condition occurs and event logging stops.
  54. *
  55. * FUNCPTR and VOIDFUNCPTR are defined as follows,
  56. * .CS
  57. * typedef int                (*FUNCPTR) (...);
  58. * typedef void               (*VOIDFUNCPTR) (...);
  59. * .CE
  60. *
  61. * RETURNS: N/A.
  62. *
  63. * SEE ALSO: wvLib
  64. */
  65. void connRtnSet 
  66.     (
  67.     FUNCPTR initRtn,  /* connection initialization routine */
  68.     VOIDFUNCPTR closeRtn,  /* connection close routine */
  69.     VOIDFUNCPTR errorRtn,  /* connection error handling routine */
  70.     VOIDFUNCPTR dataXferRtn /* connection data transfer routine */
  71.     )
  72.     {
  73.     /* connect supplied connection routines */
  74.     connectionInitRtn = initRtn;
  75.     connectionCloseRtn = closeRtn;
  76.     connectionErrorRtn = errorRtn;
  77.     dataTransferRtn = dataXferRtn;
  78.     }
  79. /*******************************************************************************
  80. *
  81. * connectionInit - set up the connection to the host receiver (WindView)
  82. *
  83. * RETURN: OK, otherwise ERROR if connection cannot be initialized.
  84. *
  85. * SEE ALSO:
  86. * NOMANUAL
  87. */
  88. STATUS connectionInit (void)
  89.     {
  90.     if (connectionInitRtn == NULL)
  91.         return (ERROR);
  92.     return((* connectionInitRtn) ());
  93.     }
  94. /*******************************************************************************
  95. *
  96. * connectionClose - close the connection to the host receiver (WindView)
  97. *
  98. * SEE ALSO:
  99. * NOMANUAL
  100. */
  101. void connectionClose (void)
  102.     {
  103.     (* connectionCloseRtn) ();
  104.     }
  105. /*******************************************************************************
  106. *
  107. * connectionError - Indicate an error has occurred (WindView)
  108. *
  109. * SEE ALSO:
  110. * NOMANUAL
  111. */
  112. void connectionError (void)
  113.     {
  114.     (* connectionErrorRtn) ();
  115.     }
  116. /*******************************************************************************
  117. *
  118. * dataTransfer - transfer data from the target to the host (WindView)
  119. *
  120. * SEE ALSO:
  121. * NOMANUAL
  122. */
  123. void dataTransfer
  124.     (
  125.     char * bufAddress,                          /* address of buffer */
  126.     size_t bufSize                              /* amount of data in buffer */
  127.     )
  128.     {
  129.     (* dataTransferRtn) (bufAddress, bufSize);
  130.     }