码迷,mamicode.com
首页 > 其他好文 > 详细

memchunk.c

时间:2020-05-31 20:04:49      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:长度   ali   strong   不能   返回   fill   chunk   buffer   取出   

★ //memblock->data 的有效数据从index索引开始,长度为length
struct pa_memchunk {
    struct pa_memblock *memblock;
    size_t index, length;
};

★ //base 是每次取出的大小
//buffer和buffer_fill是不够base长度的部分,放入到buffer
struct pa_mcalign {
    size_t base;
    struct pa_memchunk chunk;
    uint8_t *buffer;
    size_t buffer_fill;
};

■ void pa_memchunk_make_writable(struct pa_memchunk *c)
将pa_memchunk中的index和length设置为0,将pa_memchunk中的memblock的data进行移动。
c->memblock->ref为1时,不能进行数据移动。

■ struct pa_mcalign *pa_mcalign_new(size_t base)
初始化pa_mcalign

■ void pa_mcalign_free(struct pa_mcalign *m)
释放pa_mcalign
pa_mcalign,buffer和chunk

■ void pa_mcalign_push(struct pa_mcalign *m, const struct pa_memchunk *c)
将c放入到pa_mcalign中的chunk

■ int pa_mcalign_pop(struct pa_mcalign *m, struct pa_memchunk *c)
将整数base的数据进行返回
将不足base的数据,保存到pa_mcalign中的buffer,下次进行pop,从pa_mcalign->chunk->memblock->data前部数据将buffer补足到base长度。



memchunk.c

标签:长度   ali   strong   不能   返回   fill   chunk   buffer   取出   

原文地址:https://www.cnblogs.com/renhl/p/13020773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!