| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
#ifndef __UIP_PBUF_H__#define __UIP_PBUF_H__//#include "lwip/opt.h"//#include "lwip/err.h"#include "uip-conf.h"#include "uip_etharp.h"typedef rt_int16_t	s16_t;typedef rt_int8_t	err_t;#ifdef __cplusplusextern "C" {#endif#define PBUF_TRANSPORT_HLEN 20#define PBUF_IP_HLEN        20typedef enum {  PBUF_TRANSPORT,  PBUF_IP,  PBUF_LINK,  PBUF_RAW} pbuf_layer;typedef enum {  PBUF_RAM, /* pbuf data is stored in RAM */  PBUF_ROM, /* pbuf data is stored in ROM */  PBUF_REF, /* pbuf comes from the pbuf pool */  PBUF_POOL /* pbuf payload refers to RAM */} pbuf_type;/** indicates this packet's data should be immediately passed to the application */#define PBUF_FLAG_PUSH 0x01U#ifdef RT_USING_LWIPstruct pbuf {  /** next pbuf in singly linked pbuf chain */  struct pbuf *next;  /** pointer to the actual data in the buffer */  void *payload;    /**   * total length of this buffer and all next buffers in chain   * belonging to the same packet.   *   * For non-queue packet chains this is the invariant:   * p->tot_len == p->len + (p->next? p->next->tot_len: 0)   */  u16_t tot_len;    /** length of this buffer */  u16_t len;    /** pbuf_type as u8_t instead of enum to save space */  u8_t /*pbuf_type*/ type;  /** misc flags */  u8_t flags;  /**   * the reference count always equals the number of pointers   * that refer to this pbuf. This can be pointers from an application,   * the stack itself, or pbuf->next pointers from a chain.   */  u16_t ref;  };#else    /* RT_USING_UIP */struct pbuf{   /** pointer to the actual data in the buffer */    void *payload;    rt_uint16_t len;};#endif/* Initializes the pbuf module. This call is empty for now, but may not be in future. */struct pbuf *pbuf_alloc(pbuf_layer l, u16_t size, pbuf_type type); u8_t pbuf_header(struct pbuf *p, s16_t header_size);u8_t pbuf_free(struct pbuf *p);#endif /* __UIP_PBUF_H__ */
 |