Chinaunix首页 | 论坛 | 博客
  • 博客访问: 39839
  • 博文数量: 13
  • 博客积分: 501
  • 博客等级: 下士
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-20 10:04
文章分类

全部博文(13)

文章存档

2011年(1)

2010年(4)

2009年(8)

我的朋友
最近访客

分类: 嵌入式

2010-05-12 14:21:50

#ifdef WLAN_ROUTE_EF
/**
 * wbuf 头结构定义.
 */
struct wbuf_buff {
    /*
     * Firstly cache line.
     * (assume cache line size 32 Bytes).
     */
    struct ef_pkt_buf_st
           *nextPkt;                /* 0: 用于组成buffer链表或者packet链表. */
    u8      poolId;                 /* 4: 所属的buffer池.
                                          创建时分配, 生存周期内不能修改. */
    u8      pktType;                /* 5: 报文类型. */
 u8     bufDataType;         /* 6: 最后一个使用buf的模块号(DEBUG). */
 u8     pkt_sequence;           /* 7: 最后一个完成报文处理的模块号. */
 u16     dataOffset;             /* 8: buffer数据区偏移. */
 u8     encrypto_flag : 4;      /* 10:for ipsec. */
 u8     chksumErr:1;         /*    IpV4的IP头checksum错误标志. */
 u8     prio:3;           /*    报文的优先级. */
 u8     ipsecFlag;          /* 11:ipSec对报文处理的中间结果标记. */
 u16     pktlen;               /* 12:报文长度. */
 u16     ipOffset;          /* 9: ip头偏移. */
    /* XXX */
 u8     vrf_idx;          /* 14:源逻辑接口. */
 void   *src_intf;             /* 16:源接口struct ef_intfcb *src_intf. */
 u32     dest_ip;          /* 20:IP地址. */
 void   *dest_intf;             /* 24:出接口struct ef_intfcb *dest_intf. */
 u32     adj;           /* 28:邻接表. */
 /*
     * Second cache line.
     */
 u32     fpm_ctlw;          /* 32:For 流平台. */
 u32     fpm_hash;          /* 36:For 流平台. */
 u32     qosQueMark;             /* 40:QOS 队列标记 */
    u8      reserve_reason;         /* 44:报文上送进程处理的原因. */
    u8      pad_char[3];            /* 45-47: 保留未用. */
 uint pad_uint[3];            /* 48-63: */
    /* 48bytes */
    struct wbuf_buff *next;         /* Next buffer in list */
    struct wbuf_buff *prev;         /* Previous buffer in list */
    struct wbuf_buff_head *list;    /* List we are on */
    uchar   cb[WLAN_CB_LEN];        /* 直接映射skb->cb */
    uchar   *content;               /* content/bf指针 */
    uchar   *head;                  /* Head of buffer */
    uchar   *data;                  /* Data head pointer */
    uchar   *tail;                  /* Tail pointer */
    uchar   *end;                   /* End pointer */
    uint    len;                    /* Length of actual data,from data to tail */
   
    uchar   wbuf_reserver[2];       /* wbuf_reserver */
}____cacheline_aligned;
typedef struct wbuf_buff * wbuf_t;
#else
typedef struct sk_buff * wbuf_t;
#endif
================================================================================
/*************************注意 typedef问题啊,悲剧浪费了不少时间*********************************/
struct wbuf_buff *
    ieee80211_beacon_alloc(struct ieee80211_node *ni,
        struct ieee80211_beacon_offsets *bo)
wbuf_t
    ieee80211_beacon_alloc(struct ieee80211_node *ni,
        struct ieee80211_beacon_offsets *bo)
{
 
阅读(1028) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~