Lines Matching refs:mb
61 void mb_init(struct mem_buf* mb, void* buf, size_t sz, size_t align) { in mb_init() argument
64 mb->buf = buf; in mb_init()
65 mb->capacity = sz; in mb_init()
66 mb->align = align; in mb_init()
67 mb->curr_size = 0; in mb_init()
68 mb->pos = 0; in mb_init()
71 void mb_destroy(struct mem_buf* mb) { in mb_destroy() argument
72 mb->buf = NULL; in mb_destroy()
73 mb->capacity = 0; in mb_destroy()
74 mb->align = 0; in mb_destroy()
75 mb->curr_size = 0; in mb_destroy()
76 mb->pos = 0; in mb_destroy()
79 static inline bool mb_is_destroyed(struct mem_buf* mb) { in mb_is_destroyed() argument
80 return !mb->buf; in mb_is_destroyed()
83 bool mb_resize(struct mem_buf* mb, size_t sz) { in mb_resize() argument
84 if (mb_is_destroyed(mb)) { in mb_resize()
87 if (sz <= mb->capacity) { in mb_resize()
88 mb->curr_size = sz; in mb_resize()
89 mb->pos = 0; in mb_resize()
95 void* mb_advance_pos(struct mem_buf* mb, size_t sz) { in mb_advance_pos() argument
98 if (mb_is_destroyed(mb)) { in mb_advance_pos()
102 assert(IS_ALIGNED(mb->pos, mb->align)); in mb_advance_pos()
103 assert(mb->curr_size >= mb->pos); in mb_advance_pos()
105 sz = round_up(sz, mb->align); in mb_advance_pos()
107 if (sz > (mb->curr_size - mb->pos)) { in mb_advance_pos()
111 p = (void*)(mb->buf + mb->pos); in mb_advance_pos()
112 mb->pos += sz; in mb_advance_pos()
113 assert(IS_ALIGNED(mb->pos, mb->align)); in mb_advance_pos()