MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / rt_rbb_create

Function rt_rbb_create

components/drivers/ipc/ringblk_buf.c:63–93  ·  view source on GitHub ↗

* ring block buffer object create * * @param buf_size buffer size * @param blk_max_num max block number * * @return != RT_NULL: ring block buffer object * RT_NULL: create failed */

Source from the content-addressed store, hash-verified

61 * RT_NULL: create failed
62 */
63rt_rbb_t rt_rbb_create(rt_size_t buf_size, rt_size_t blk_max_num)
64{
65 rt_rbb_t rbb = RT_NULL;
66 rt_uint8_t *buf;
67 rt_rbb_blk_t blk_set;
68
69 rbb = (rt_rbb_t)rt_malloc(sizeof(struct rt_rbb));
70 if (!rbb)
71 {
72 return RT_NULL;
73 }
74
75 buf = (rt_uint8_t *)rt_malloc(buf_size);
76 if (!buf)
77 {
78 rt_free(rbb);
79 return RT_NULL;
80 }
81
82 blk_set = (rt_rbb_blk_t)rt_malloc(sizeof(struct rt_rbb_blk) * blk_max_num);
83 if (!blk_set)
84 {
85 rt_free(buf);
86 rt_free(rbb);
87 return RT_NULL;
88 }
89
90 rt_rbb_init(rbb, buf, buf_size, blk_set, blk_max_num);
91
92 return rbb;
93}
94RTM_EXPORT(rt_rbb_create);
95
96/**

Callers 2

ulog_initFunction · 0.85
rbb_testFunction · 0.85

Calls 3

rt_mallocFunction · 0.85
rt_freeFunction · 0.85
rt_rbb_initFunction · 0.85

Tested by 1

rbb_testFunction · 0.68