vppapigen: support per-file (major,minor,patch) version stamps
[vpp.git] / src / plugins / memif / private.h
index 104706f..912ec59 100644 (file)
 
 #include <vppinfra/lock.h>
 
-#define MEMIF_DEFAULT_SOCKET_DIR "/run/vpp"
 #define MEMIF_DEFAULT_SOCKET_FILENAME  "memif.sock"
 #define MEMIF_DEFAULT_RING_SIZE 1024
 #define MEMIF_DEFAULT_RX_QUEUES 1
 #define MEMIF_DEFAULT_TX_QUEUES 1
 #define MEMIF_DEFAULT_BUFFER_SIZE 2048
 
-#define MEMIF_VERSION_MAJOR            0
-#define MEMIF_VERSION_MINOR            1
-#define MEMIF_VERSION                  ((MEMIF_VERSION_MAJOR << 8) | MEMIF_VERSION_MINOR)
-#define MEMIF_COOKIE                   0xdeadbeef
 #define MEMIF_MAX_M2S_RING             (vec_len (vlib_mains) - 1)
 #define MEMIF_MAX_S2M_RING             (vec_len (vlib_mains) - 1)
 #define MEMIF_MAX_REGION               255
 #if MEMIF_DEBUG == 1
 #define memif_file_add(a, b) do {                                      \
   ASSERT (*a == ~0);                                                   \
-  *a = unix_file_add (&unix_main, b);                                  \
-  clib_warning ("unix_file_add fd %d private_data %u idx %u",          \
+  *a = clib_file_add (&file_main, b);                                  \
+  clib_warning ("clib_file_add fd %d private_data %u idx %u",          \
                (b)->file_descriptor, (b)->private_data, *a);           \
 } while (0)
 
 #define memif_file_del(a) do {                                         \
-  clib_warning ("unix_file_del idx %u",a - unix_main.file_pool);       \
-  unix_file_del (&unix_main, a);                                       \
+  clib_warning ("clib_file_del idx %u",a - file_main.file_pool);       \
+  clib_file_del (&file_main, a);                                       \
 } while (0)
 
 #define memif_file_del_by_index(a) do {                                        \
-  clib_warning ("unix_file_del idx %u", a);                            \
-  unix_file_del_by_index (&unix_main, a);                              \
+  clib_warning ("clib_file_del idx %u", a);                            \
+  clib_file_del_by_index (&file_main, a);                              \
 } while (0)
 #else
 #define memif_file_add(a, b) do {                                      \
   ASSERT (*a == ~0);                                                   \
-  *a = unix_file_add (&unix_main, b);                                  \
+  *a = clib_file_add (&file_main, b);                                  \
 } while (0)
-#define memif_file_del(a) unix_file_del(&unix_main, a)
-#define memif_file_del_by_index(a) unix_file_del_by_index(&unix_main, a)
+#define memif_file_del(a) clib_file_del(&file_main, a)
+#define memif_file_del_by_index(a) clib_file_del_by_index(&file_main, a)
 #endif
 
 typedef struct
 {
   u8 *filename;
   int fd;
-  uword unix_file_index;
+  uword clib_file_index;
   uword *pending_file_indices;
   int ref_cnt;
   int is_listener;
@@ -88,7 +83,7 @@ typedef struct
 typedef struct
 {
   void *shm;
-  u32 region_size;
+  memif_region_size_t region_size;
   int fd;
 } memif_region_t;
 
@@ -102,16 +97,16 @@ typedef struct
 {
   /* ring data */
   memif_ring_t *ring;
-  u8 log2_ring_size;
-  u8 region;
-  u32 offset;
+  memif_log2_ring_size_t log2_ring_size;
+  memif_region_index_t region;
+  memif_region_offset_t offset;
 
   u16 last_head;
   u16 last_tail;
 
   /* interrupts */
   int int_fd;
-  uword int_unix_file_index;
+  uword int_clib_file_index;
   u64 int_count;
 } memif_queue_t;
 
@@ -145,7 +140,7 @@ typedef struct
   /* socket connection */
   uword socket_file_index;
   int conn_fd;
-  uword conn_unix_file_index;
+  uword conn_clib_file_index;
   memif_msg_fifo_elt_t *msg_queue;
   u8 *secret;
 
@@ -163,7 +158,7 @@ typedef struct
 
   struct
   {
-    u8 log2_ring_size;
+    memif_log2_ring_size_t log2_ring_size;
     u8 num_s2m_rings;
     u8 num_m2s_rings;
     u16 buffer_size;
@@ -171,7 +166,7 @@ typedef struct
 
   struct
   {
-    u8 log2_ring_size;
+    memif_log2_ring_size_t log2_ring_size;
     u8 num_s2m_rings;
     u8 num_m2s_rings;
     u16 buffer_size;
@@ -218,7 +213,7 @@ typedef struct
   u8 *secret;
   u8 is_master;
   memif_interface_mode_t mode:8;
-  u8 log2_ring_size;
+  memif_log2_ring_size_t log2_ring_size;
   u16 buffer_size;
   u8 hw_addr_set;
   u8 hw_addr[6];
@@ -233,24 +228,6 @@ int memif_create_if (vlib_main_t * vm, memif_create_if_args_t * args);
 int memif_delete_if (vlib_main_t * vm, memif_if_t * mif);
 clib_error_t *memif_plugin_api_hookup (vlib_main_t * vm);
 
-#ifndef __NR_memfd_create
-#if defined __x86_64__
-#define __NR_memfd_create 319
-#elif defined __arm__
-#define __NR_memfd_create 385
-#elif defined __aarch64__
-#define __NR_memfd_create 279
-#else
-#error "__NR_memfd_create unknown for this architecture"
-#endif
-#endif
-
-static inline int
-memfd_create (const char *name, unsigned int flags)
-{
-  return syscall (__NR_memfd_create, name, flags);
-}
-
 static_always_inline void *
 memif_get_buffer (memif_if_t * mif, memif_ring_t * ring, u16 slot)
 {
@@ -258,31 +235,19 @@ memif_get_buffer (memif_if_t * mif, memif_ring_t * ring, u16 slot)
   return mif->regions[region].shm + ring->desc[slot].offset;
 }
 
-#ifndef F_LINUX_SPECIFIC_BASE
-#define F_LINUX_SPECIFIC_BASE 1024
-#endif
-#define MFD_ALLOW_SEALING       0x0002U
-#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
-#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
-
-#define F_SEAL_SEAL     0x0001 /* prevent further seals from being set */
-#define F_SEAL_SHRINK   0x0002 /* prevent file from shrinking */
-#define F_SEAL_GROW     0x0004 /* prevent file from growing */
-#define F_SEAL_WRITE    0x0008 /* prevent writes */
-
 /* memif.c */
 clib_error_t *memif_init_regions_and_queues (memif_if_t * mif);
 clib_error_t *memif_connect (memif_if_t * mif);
 void memif_disconnect (memif_if_t * mif, clib_error_t * err);
 
 /* socket.c */
-clib_error_t *memif_conn_fd_accept_ready (unix_file_t * uf);
-clib_error_t *memif_master_conn_fd_read_ready (unix_file_t * uf);
-clib_error_t *memif_slave_conn_fd_read_ready (unix_file_t * uf);
-clib_error_t *memif_master_conn_fd_write_ready (unix_file_t * uf);
-clib_error_t *memif_slave_conn_fd_write_ready (unix_file_t * uf);
-clib_error_t *memif_master_conn_fd_error (unix_file_t * uf);
-clib_error_t *memif_slave_conn_fd_error (unix_file_t * uf);
+clib_error_t *memif_conn_fd_accept_ready (clib_file_t * uf);
+clib_error_t *memif_master_conn_fd_read_ready (clib_file_t * uf);
+clib_error_t *memif_slave_conn_fd_read_ready (clib_file_t * uf);
+clib_error_t *memif_master_conn_fd_write_ready (clib_file_t * uf);
+clib_error_t *memif_slave_conn_fd_write_ready (clib_file_t * uf);
+clib_error_t *memif_master_conn_fd_error (clib_file_t * uf);
+clib_error_t *memif_slave_conn_fd_error (clib_file_t * uf);
 clib_error_t *memif_msg_send_disconnect (memif_if_t * mif,
                                         clib_error_t * err);
 u8 *format_memif_device_name (u8 * s, va_list * args);