com0shm.h
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /******************************************************
  2. The communication through shared memory
  3. (c) 1995 Innobase Oy
  4. Created 9/23/1995 Heikki Tuuri
  5. *******************************************************/
  6. #ifndef com0shm_h
  7. #define com0shm_h
  8. #include "univ.i"
  9. typedef struct com_shm_endpoint_struct com_shm_endpoint_t;
  10. /* The performance of communication in NT depends on how
  11. many times a system call is made (excluding os_thread_yield,
  12. as that is the fastest way to switch thread).
  13. The following variable counts such events. */
  14. extern ulint com_shm_system_call_count;
  15. /*************************************************************************
  16. Creates a communications endpoint. */
  17. com_shm_endpoint_t*
  18. com_shm_endpoint_create(void);
  19. /*=========================*/
  20. /* out, own: communications endpoint, NULL if
  21. did not succeed */
  22. /*************************************************************************
  23. Frees a communications endpoint. */
  24. ulint
  25. com_shm_endpoint_free(
  26. /*==================*/
  27. /* out: O if succeed, else error number */
  28. com_shm_endpoint_t* ep);/* in, own: communications endpoint */
  29. /*************************************************************************
  30. Sets an option, like the maximum datagram size for an endpoint.
  31. The options may vary depending on the endpoint type. */
  32. ulint
  33. com_shm_endpoint_set_option(
  34. /*========================*/
  35. /* out: 0 if succeed, else error number */
  36. com_shm_endpoint_t*  ep, /* in: endpoint */
  37. ulint optno, /* in: option number, only
  38. COM_OPT_MAX_DGRAM_SIZE currently supported */
  39. byte* optval, /* in: pointer to a buffer containing the
  40. option value to set */
  41. ulint optlen);/* in: option value buffer length */
  42. /*************************************************************************
  43. Bind a communications endpoint to a specified address. */
  44. ulint
  45. com_shm_bind(
  46. /*=========*/
  47. /* out: 0 if succeed, else error number */
  48. com_shm_endpoint_t* ep, /* in: communications endpoint */
  49. char* name, /* in: address name */
  50. ulint len); /* in: address name length */
  51. /*************************************************************************
  52. Waits for a datagram to arrive at an endpoint. */
  53. ulint
  54. com_shm_recvfrom(
  55. /*=============*/
  56. /* out: 0 if succeed, else error number */
  57. com_shm_endpoint_t* ep, /* in: communications endpoint */
  58. byte* buf, /* out: datagram buffer; the buffer is
  59. supplied by the caller */
  60. ulint buf_len,/* in: datagram buffer length */
  61. ulint* len, /* out: datagram length */
  62. char* from, /* out: address name buffer; the buffer is
  63. supplied by the caller */
  64. ulint from_len,/* in: address name buffer length */
  65. ulint* addr_len);/* out: address name length */
  66. /*************************************************************************
  67. Sends a datagram to the specified destination. */
  68. ulint
  69. com_shm_sendto(
  70. /*===========*/
  71. /* out: 0 if succeed, else error number */
  72. com_shm_endpoint_t* ep, /* in: communications endpoint */
  73. byte* buf, /* in: datagram buffer */
  74. ulint len, /* in: datagram length */
  75. char* to, /* in: address name buffer */
  76. ulint tolen); /* in: address name length */
  77. ulint
  78. com_shm_endpoint_get_size(
  79. /*======================*/
  80. com_shm_endpoint_t* ep);
  81. #ifndef UNIV_NONINL
  82. #include "com0shm.ic"
  83. #endif
  84. #endif