summaryrefslogtreecommitdiff
path: root/innobase/include/com0shm.h
diff options
context:
space:
mode:
Diffstat (limited to 'innobase/include/com0shm.h')
-rw-r--r--innobase/include/com0shm.h103
1 files changed, 103 insertions, 0 deletions
diff --git a/innobase/include/com0shm.h b/innobase/include/com0shm.h
new file mode 100644
index 00000000000..7de9c4ac2de
--- /dev/null
+++ b/innobase/include/com0shm.h
@@ -0,0 +1,103 @@
+/******************************************************
+The communication through shared memory
+
+(c) 1995 Innobase Oy
+
+Created 9/23/1995 Heikki Tuuri
+*******************************************************/
+
+#ifndef com0shm_h
+#define com0shm_h
+
+#include "univ.i"
+
+typedef struct com_shm_endpoint_struct com_shm_endpoint_t;
+
+/* The performance of communication in NT depends on how
+many times a system call is made (excluding os_thread_yield,
+as that is the fastest way to switch thread).
+The following variable counts such events. */
+
+extern ulint com_shm_system_call_count;
+
+
+/*************************************************************************
+Creates a communications endpoint. */
+
+com_shm_endpoint_t*
+com_shm_endpoint_create(void);
+/*=========================*/
+ /* out, own: communications endpoint, NULL if
+ did not succeed */
+/*************************************************************************
+Frees a communications endpoint. */
+
+ulint
+com_shm_endpoint_free(
+/*==================*/
+ /* out: O if succeed, else error number */
+ com_shm_endpoint_t* ep);/* in, own: communications endpoint */
+/*************************************************************************
+Sets an option, like the maximum datagram size for an endpoint.
+The options may vary depending on the endpoint type. */
+
+ulint
+com_shm_endpoint_set_option(
+/*========================*/
+ /* out: 0 if succeed, else error number */
+ com_shm_endpoint_t* ep, /* in: endpoint */
+ ulint optno, /* in: option number, only
+ COM_OPT_MAX_DGRAM_SIZE currently supported */
+ byte* optval, /* in: pointer to a buffer containing the
+ option value to set */
+ ulint optlen);/* in: option value buffer length */
+/*************************************************************************
+Bind a communications endpoint to a specified address. */
+
+ulint
+com_shm_bind(
+/*=========*/
+ /* out: 0 if succeed, else error number */
+ com_shm_endpoint_t* ep, /* in: communications endpoint */
+ char* name, /* in: address name */
+ ulint len); /* in: address name length */
+/*************************************************************************
+Waits for a datagram to arrive at an endpoint. */
+
+ulint
+com_shm_recvfrom(
+/*=============*/
+ /* out: 0 if succeed, else error number */
+ com_shm_endpoint_t* ep, /* in: communications endpoint */
+ byte* buf, /* out: datagram buffer; the buffer is
+ supplied by the caller */
+ ulint buf_len,/* in: datagram buffer length */
+ ulint* len, /* out: datagram length */
+ char* from, /* out: address name buffer; the buffer is
+ supplied by the caller */
+ ulint from_len,/* in: address name buffer length */
+ ulint* addr_len);/* out: address name length */
+/*************************************************************************
+Sends a datagram to the specified destination. */
+
+ulint
+com_shm_sendto(
+/*===========*/
+ /* out: 0 if succeed, else error number */
+ com_shm_endpoint_t* ep, /* in: communications endpoint */
+ byte* buf, /* in: datagram buffer */
+ ulint len, /* in: datagram length */
+ char* to, /* in: address name buffer */
+ ulint tolen); /* in: address name length */
+
+ulint
+com_shm_endpoint_get_size(
+/*======================*/
+ com_shm_endpoint_t* ep);
+
+
+#ifndef UNIV_NONINL
+#include "com0shm.ic"
+#endif
+
+#endif