25 #ifndef __MOTR_LIB_BUF_H__ 26 #define __MOTR_LIB_BUF_H__ 64 #define M0_BUF_INIT(size, data) \ 65 ((struct m0_buf){ .b_nob = (size), .b_addr = (data) }) 66 #define M0_BUF_INIT_CONST(size, data) \ 67 (const struct m0_buf) { .b_nob = (size), .b_addr = (void *)(data) } 69 #define M0_BUF_INIT_PTR(p) M0_BUF_INIT(sizeof *(p), (p)) 70 #define M0_BUF_INITS(str) M0_BUF_INIT(strlen(str), (str)) 71 #define M0_BUF_INIT0 M0_BUF_INIT(0, NULL) 73 #define M0_BUF_INIT_PTR_CONST(p) M0_BUF_INIT_CONST(sizeof *(p), (p)) 75 #define BUF_F "[%p,%llu]" 76 #define BUF_P(p) (p)->b_addr, (unsigned long long)(p)->b_nob 130 const void *
data, uint32_t nob,
M0_INTERNAL int m0_buf_copy_aligned(struct m0_buf *dst, const struct m0_buf *src, unsigned shift)
M0_INTERNAL int m0_buf_new_aligned(struct m0_buf *buf, const void *data, uint32_t nob, unsigned shift)
M0_INTERNAL bool m0_buf_is_set(const struct m0_buf *buf)
struct m0_buf M0_XCA_DOMAIN(conf|rpc)
M0_INTERNAL bool m0_buf_eq(const struct m0_buf *x, const struct m0_buf *y)
M0_INTERNAL bool m0_buf_streq(const struct m0_buf *buf, const char *str)
M0_INTERNAL void m0_buf_init(struct m0_buf *buf, void *data, uint32_t nob)
M0_INTERNAL int m0_buf_cmp(const struct m0_buf *x, const struct m0_buf *y)
M0_INTERNAL void m0_buf_memcpy(struct m0_buf *dst, const struct m0_buf *src)
M0_INTERNAL bool m0_bufs_streq(const struct m0_bufs *bufs, const char **strs)
M0_INTERNAL void m0_bufs_free(struct m0_bufs *bufs)
M0_INTERNAL int m0_buf_alloc(struct m0_buf *buf, size_t size)
M0_INTERNAL void m0_buf_free(struct m0_buf *buf)
M0_INTERNAL int m0_buf_copy(struct m0_buf *dest, const struct m0_buf *src)
M0_INTERNAL char * m0_buf_strdup(const struct m0_buf *buf)
M0_INTERNAL int m0_bufs_to_strings(const char ***dest, const struct m0_bufs *src)
struct m0_pdclust_src_addr src
M0_INTERNAL int m0_bufs_from_strings(struct m0_bufs *dest, const char **src)