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

VxWorks

开发平台:

C/C++

  1. /* zbufSockLib.h - zeroCopy buffer socket interface library header */
  2. /* Copyright 1984-1994 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,08nov94,dzb  written.
  7. */
  8. #ifndef __INCzbufSockLibh
  9. #define __INCzbufSockLibh
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. /* includes */
  14. #include "zbufLib.h"
  15. #include "sys/socket.h"
  16. /* typedefs */
  17. #if ((CPU_FAMILY==I960) && (defined __GNUC__))
  18. #pragma align 1                 /* tell gcc960 not to optimize alignments */
  19. #endif  /* CPU_FAMILY==I960 */
  20. typedef struct /* ZBUF_SOCK_FUNC */
  21.     {
  22.     FUNCPTR libInitRtn; /* zbufLibInit() */
  23.     FUNCPTR sendRtn; /* zbufSockSend() */
  24.     FUNCPTR sendtoRtn; /* zbufSockSendto() */
  25.     FUNCPTR bufSendRtn; /* zbufSockBufSend() */
  26.     FUNCPTR bufSendtoRtn; /* zbufSockBufSend() */
  27.     FUNCPTR recvRtn; /* zbufSockRecv() */
  28.     FUNCPTR recvfromRtn; /* zbufSockRecvfrom() */
  29.     } ZBUF_SOCK_FUNC;
  30. #if ((CPU_FAMILY==I960) && (defined __GNUC__))
  31. #pragma align 0                 /* turn off alignment requirement */
  32. #endif  /* CPU_FAMILY==I960 */
  33. /* function declarations */
  34. #if defined(__STDC__) || defined(__cplusplus)
  35. extern STATUS zbufSockLibInit (void);
  36. extern int zbufSockSend (int s, ZBUF_ID zbufId, int zbufLen, int flags);
  37. extern int zbufSockSendto (int s, ZBUF_ID zbufId, int zbufLen, int flags,
  38.                     struct sockaddr *to, int tolen);
  39. extern int zbufSockBufSend (int s, char *buf, int bufLen,
  40.                     VOIDFUNCPTR freeRtn, int freeArg, int flags);
  41. extern int zbufSockBufSendto (int s, char *buf, int bufLen,
  42.                     VOIDFUNCPTR freeRtn, int freeArg, int flags,
  43.                     struct sockaddr *to, int tolen);
  44. extern ZBUF_ID zbufSockRecv (int s, int flags, int *pLen);
  45. extern ZBUF_ID zbufSockRecvfrom (int s, int flags, int *pLen,
  46.                     struct sockaddr *from, int *pFromLen);
  47. #else /* __STDC__ */
  48. extern STATUS zbufSockLibInit ();
  49. extern int zbufSockSend ();
  50. extern int zbufSockSendto ();
  51. extern int zbufSockBufSend ();
  52. extern int zbufSockBufSendto ();
  53. extern ZBUF_ID zbufSockRecv ();
  54. extern ZBUF_ID zbufSockRecvfrom ();
  55. #endif /* __STDC__ */
  56. #ifdef __cplusplus
  57. }
  58. #endif
  59. #endif /* __INCzbufSockLibh */