| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | 
							- #include "uip_pbuf.h"
 
- #include "rtdef.h"
 
- typedef rt_uint32_t	mem_ptr_t;
 
- #define LWIP_MEM_ALIGN(addr) ((void *)(((mem_ptr_t)(addr) + RT_ALIGN_SIZE - 1) & ~(mem_ptr_t)(RT_ALIGN_SIZE-1)))
 
- #define LWIP_MEM_ALIGN_SIZE(size) (((size) + RT_ALIGN_SIZE - 1) & ~(RT_ALIGN_SIZE-1))
 
- #define SIZEOF_STRUCT_PBUF        LWIP_MEM_ALIGN_SIZE(sizeof(struct pbuf))
 
- u8_t
 
- pbuf_free(struct pbuf *p)
 
- {
 
-   //struct pbuf *q;
 
-   
 
-   if (p == RT_NULL) return 0;
 
-   rt_free(p);
 
-   //rt_free(&p->len);
 
-   
 
-   return 1;
 
- }
 
- struct pbuf *
 
- pbuf_alloc(pbuf_layer layer, u16_t length, pbuf_type type)
 
- {
 
-   struct pbuf *p;
 
-   u16_t offset = 0;
 
-   offset += 16;
 
-   
 
-     /* If pbuf is to be allocated in RAM, allocate memory for it. */
 
-   p = (struct pbuf*)rt_malloc(LWIP_MEM_ALIGN_SIZE(SIZEOF_STRUCT_PBUF + offset) + LWIP_MEM_ALIGN_SIZE(length));
 
-   if (p == RT_NULL)  return RT_NULL; 
 
-     /* Set up internal structure of the pbuf. */
 
-   p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + SIZEOF_STRUCT_PBUF + offset));
 
-   p->len = length;   
 
-   return p;
 
- }
 
- u8_t
 
- pbuf_header(struct pbuf *p, s16_t header_size_increment) //
 
- {
 
-  //extrat link header
 
-     uint8_t *ptr;
 
-     
 
-     ptr = p->payload;
 
-     ptr -= header_size_increment;
 
-     p->payload = ptr;
 
-     p->len += header_size_increment;
 
-  
 
-     return 0;
 
- }
 
 
  |