VPP PAPI: Error in unserializer for non-array compound types.
[vpp.git] / extras / libmemif / src / libmemif.h
index 3732be6..da48edd 100644 (file)
@@ -72,6 +72,7 @@ typedef enum
   MEMIF_ERR_DISCONNECT,                /*!< disconenct received */
   MEMIF_ERR_DISCONNECTED,      /*!< peer interface disconnected */
   MEMIF_ERR_UNKNOWN_MSG,       /*!< unknown message type */
+  MEMIF_ERR_POLL_CANCEL,       /*!< memif_poll_event() was cancelled */
 } memif_err_t;
 
 /**
@@ -383,12 +384,13 @@ int memif_delete (memif_conn_handle_t * conn);
     @param bufs - memif buffers
     @param count - number of memif buffers to allocate
     @param count_out - returns number of allocated buffers
+    @param size - minimal buffer size, 0 = standard buffer size
 
     \return memif_err_t
 */
 int memif_buffer_alloc (memif_conn_handle_t conn, uint16_t qid,
                        memif_buffer_t * bufs, uint16_t count,
-                       uint16_t * count_out);
+                       uint16_t * count_out, uint16_t size);
 
 /** \brief Memif buffer free
     @param conn - memif conenction handle
@@ -437,6 +439,21 @@ int memif_rx_burst (memif_conn_handle_t conn, uint16_t qid,
     \return memif_err_t
 */
 int memif_poll_event (int timeout);
+
+/** \brief Send signal to stop concurrently running memif_poll_event().
+
+    The function, however, does not wait for memif_poll_event() to stop.
+    memif_poll_event() may still return simply because an event has occured
+    or the timeout has elapsed, but if called repeatedly in an infinite loop,
+    a canceled memif_poll_event() is guaranted to return MEMIF_ERR_POLL_CANCEL
+    in the shortest possible time.
+    This feature was not available in the first release.
+    Use macro MEMIF_HAVE_CANCEL_POLL_EVENT to check if the feature is present.
+
+    \return memif_err_t
+*/
+#define MEMIF_HAVE_CANCEL_POLL_EVENT 1
+int memif_cancel_poll_event ();
 /** @} */
 
 #endif /* _LIBMEMIF_H_ */