zoukankan      html  css  js  c++  java
  • 通用循环队列

    /*********************************************************************************************************
      queue
    *********************************************************************************************************/
    struct queue {
        uint32_t max_size;
        uint8_t  **pbase;
        uint32_t front;
        uint32_t rear;
    };
    
    static int queue_init(struct queue *queue, int size)
    {
        queue->pbase = bios_malloc(sizeof(uint8_t *)*size);
        if(NULL == queue->pbase) {
            bios_err(": malloc error
    ");
            return -1;
        }
        queue->max_size = size;
        queue->front = 0;
        queue->rear = 0;
    
        return 0;
    }
    
    static int queue_is_empty(struct queue *queue)
    {
        if(queue->front == queue->rear) {
            return 1;
        } else {
            return 0;
        }
    }
    
    static int queue_is_full(struct queue *queue)
    {
        if((queue->rear +1)%queue->max_size == queue->front) {
            return 1;
        } else {
            return 0;
        }
    }
    
    
    static int queue_in(struct queue *queue, uint8_t *val)
    {
        if(queue_is_full(queue)) {
            bios_log("fe rx queue full
    ");
            return 0;
        } else {
            //bios_log("queue in %0x
    ", val);
            queue->pbase[queue->rear]= val;
            queue->rear=(queue->rear+1)%queue->max_size;
            return 1;
        }
    }
    
    static int queue_out(struct queue *queue, uint8_t **val)
    {
        if(queue_is_empty(queue)){
            return 0;
        } else {
            *val = queue->pbase[queue->front];
            //bios_log("queue out %0x
    ", *val);
            queue->front=(queue->front+1)%queue->max_size;
            return 1;
        }
    }
  • 相关阅读:
    Docker管理应用数据
    Docker Swarm mode
    Docker Compose file
    Docker Compose 多容器应用
    MySQL中ORDER BY与LIMIT一起使用(有坑)
    Docker for Java Developers
    Nifi 模板
    Nifi InvokeHttp processor
    Mac上连接nifi
    前端开发环境webstorm搭建
  • 原文地址:https://www.cnblogs.com/mic-chen/p/14420014.html
Copyright © 2011-2022 走看看