-/** Pool of segment managers */
-extern segment_manager_t *segment_managers;
-
-always_inline segment_manager_t *
-segment_manager_get (u32 index)
-{
- return pool_elt_at_index (segment_manager_main.segment_managers, index);
-}
-
-always_inline segment_manager_t *
-segment_manager_get_if_valid (u32 index)
-{
- if (pool_is_free_index (segment_manager_main.segment_managers, index))
- return 0;
- return pool_elt_at_index (segment_manager_main.segment_managers, index);
-}
-
-always_inline u32
-segment_manager_index (segment_manager_t * sm)
-{
- return sm - segment_manager_main.segment_managers;
-}
-
-always_inline svm_msg_q_t *
-segment_manager_event_queue (segment_manager_t * sm)
-{
- return sm->event_queue;
-}
-
-always_inline u64
-segment_manager_make_segment_handle (u32 segment_manager_index,
- u32 segment_index)
-{
- return (((u64) segment_manager_index << 32) | segment_index);
-}
+segment_manager_t *segment_manager_alloc (void);
+int segment_manager_init (segment_manager_t * sm, uword first_seg_size,
+ u32 prealloc_fifo_pairs);