libmemif: introduce 'memif_per_thread_' namespace

APIs in 'memif_per_thread_' namespace are used to split the global
database into separate databases, to improve multi-thread use cases.

Using 'memif_per_thread_init' client can create separate libmemif
databases (libmemif_main_t). Client will reference these databases
using memif_per_thread_handle_t. Each database requires unique socket.
Created interface will be stored in the same database as the socket
passed in connection arguments.

Example code: extras/libmemif/examples/icmp_responder_3-1/main.c

Type: feature

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I261563ecc34761a76e94f20c20015394398ddfd7
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
diff --git a/extras/libmemif/src/socket.h b/extras/libmemif/src/socket.h
index e079227..ea6979d 100644
--- a/extras/libmemif/src/socket.h
+++ b/extras/libmemif/src/socket.h
@@ -39,7 +39,7 @@
 
 int memif_conn_fd_accept_ready (memif_socket_t * ms);
 
-int memif_read_ready (int fd);
+int memif_read_ready (libmemif_main_t *lm, int fd);
 
 int memif_msg_send_disconnect (int fd, uint8_t * err_string,
 			       uint32_t err_code);
@@ -53,7 +53,7 @@
 
 int memif_msg_enq_ack (memif_connection_t * c);
 
-int memif_msg_send_hello (int fd);
+int memif_msg_send_hello (libmemif_main_t *lm, int fd);
 
 int memif_msg_enq_init (memif_connection_t * c);