first
This commit is contained in:
50
include_lib/system/generic/lbuf_lite.h
Normal file
50
include_lib/system/generic/lbuf_lite.h
Normal file
@ -0,0 +1,50 @@
|
||||
#ifndef LBUF_LITE_H
|
||||
#define LBUF_LITE_H
|
||||
|
||||
|
||||
#include "typedef.h"
|
||||
#include "list.h"
|
||||
#include "system/spinlock.h"
|
||||
|
||||
|
||||
struct lbuff_lite_head {
|
||||
int magic_a;
|
||||
struct list_head head;
|
||||
struct list_head free;
|
||||
spinlock_t lock;
|
||||
u8 align;
|
||||
u16 priv_len;
|
||||
u32 total_size;
|
||||
u32 last_addr;
|
||||
void *priv;
|
||||
int magic_b;
|
||||
};
|
||||
|
||||
struct lbuff_lite_state {
|
||||
u32 avaliable;
|
||||
u32 fragment;
|
||||
u32 max_continue_len;
|
||||
int num;
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct lbuff_lite_head *lbuf_lite_init(void *buf, u32 len, int align, int priv_head_len);
|
||||
|
||||
void *lbuf_lite_alloc(struct lbuff_lite_head *head, u32 len);
|
||||
|
||||
void *lbuf_lite_realloc(void *lbuf, int size);
|
||||
|
||||
void lbuf_lite_free(void *lbuf);
|
||||
|
||||
u32 lbuf_lite_free_space(struct lbuff_lite_head *head);
|
||||
|
||||
void lbuf_lite_state(struct lbuff_lite_head *head, struct lbuff_lite_state *state);
|
||||
|
||||
void lbuf_lite_dump(struct lbuff_lite_head *head);
|
||||
|
||||
int lbuf_lite_avaliable(struct lbuff_lite_head *head, int size);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user