+always_inline void *
+fs_ptr (fifo_segment_header_t *fsh, fs_sptr_t sp)
+{
+ return sp ? (void *) ((u8 *) fsh + sp) : 0;
+}
+
+always_inline fs_sptr_t
+fs_sptr (fifo_segment_header_t *fsh, void *p)
+{
+ return p ? (fs_sptr_t) ((u8 *) p - (u8 *) fsh) : 0;
+}
+
+always_inline svm_fifo_chunk_t *
+fs_chunk_ptr (fifo_segment_header_t *fsh, fs_sptr_t cp)
+{
+ return cp ? (svm_fifo_chunk_t *) ((u8 *) fsh + cp) : 0;
+}
+
+always_inline fs_sptr_t
+fs_chunk_sptr (fifo_segment_header_t *fsh, svm_fifo_chunk_t *c)
+{
+ return c ? (fs_sptr_t) ((u8 *) c - (u8 *) fsh) : 0;
+}
+