1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #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
|