zoukankan      html  css  js  c++  java
  • memchunk.c

    ★ //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长度。



  • 相关阅读:
    数据库之事务与常见故障
    数学的魅力 之 正多边形
    html5 的基础理解1
    android 引入开源项目
    android 图片查看器
    java 线程安全
    python3 自动生成requirement.txt
    centos 7 安装 python3.7
    python3 创建,激活虚拟环境
    Mac 配置poetry
  • 原文地址:https://www.cnblogs.com/renhl/p/13020773.html
Copyright © 2011-2022 走看看