7#ifndef OAL_NETBUFF_EXT_H
8#define OAL_NETBUFF_EXT_H
10#include "oal_skbuff.h"
17#define ETH_P_CONTROL 0x0016
18#define OAL_NETBUF_SUCC 0
19#define OAL_NETBUF_FAIL (-1)
22#define OAL_NETBUF_NEXT(_pst_buf) ((_pst_buf)->next)
23#define OAL_NETBUF_PREV(_pst_buf) ((_pst_buf)->prev)
24#define OAL_NETBUF_HEAD_NEXT(_pst_buf_head) ((_pst_buf_head)->next)
25#define OAL_NETBUF_HEAD_PREV(_pst_buf_head) ((_pst_buf_head)->prev)
27#define OAL_NETBUF_PROTOCOL(_pst_buf) ((_pst_buf)->protocol)
28#define OAL_NETBUF_DATA(_pst_buf) ((_pst_buf)->data)
29#define OAL_NETBUF_HEADER(_pst_buf) ((_pst_buf)->data)
30#define OAL_NETBUF_PAYLOAD(_pst_buf) ((_pst_buf)->data)
32#define OAL_NETBUF_CB(_pst_buf) ((_pst_buf)->cb)
33#define OAL_NETBUF_CB_SIZE() (sizeof(((oal_netbuf_stru*)0)->cb))
34#define OAL_NETBUF_LEN(_pst_buf) ((_pst_buf)->len)
35#define OAL_NETBUF_PRIORITY(_pst_buf) ((_pst_buf)->priority)
36#define OAL_NETBUF_TAIL skb_tail_pointer
37#define OAL_NETBUF_QUEUE_TAIL skb_queue_tail
38#define OAL_NETBUF_QUEUE_HEAD_INIT skb_queue_head_init
39#define OAL_NETBUF_DEQUEUE skb_dequeue
41#define WLAN_MEM_NETBUF_ALIGN 4
47#define OAL_MEM_NETBUF_ALLOC(subpool_id, len, netbuf_priority) \
48 oal_netbuf_alloc(len, 0, WLAN_MEM_NETBUF_ALIGN)
87 return netbuf->
data + offset;
111 skb_copy_queue_mapping(netbuf_to, netbuf_from);
128 return skb_push(netbuf, len);
133 if (len > netbuf->
len) {
136 return skb_pull(netbuf, len);
180 skb_reserve(netbuf, l_len);
196 return (
td_u32)skb_headroom(netbuf);
204 return (
td_u32)skb_tailroom(netbuf);
258 __skb_queue_tail(list, newsk);
266 skb_queue_splice_init(list, head);
274 skb_queue_splice_tail_init(list, head);
282 skb_queue_head_init(list);
290#if defined(_PRE_OS_VERSION_LINUX) && defined(_PRE_OS_VERSION) && (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
291#if defined(LINUX_VERSION_CODE) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
292 return skb_peek(head);
300#if defined(_PRE_OS_VERSION_LITEOS) && defined(_PRE_OS_VERSION) && (_PRE_OS_VERSION_LITEOS == _PRE_OS_VERSION)
301 return skb_peek(head);
310#if defined(_PRE_OS_VERSION_LINUX) && defined(_PRE_OS_VERSION) && (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
311#if defined(LINUX_VERSION_CODE) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
312 return skb_peek_next(netbuf, head);
320#if defined(_PRE_OS_VERSION_LITEOS) && defined(_PRE_OS_VERSION) && (_PRE_OS_VERSION_LITEOS == _PRE_OS_VERSION)
321 return skb_peek_next(netbuf, head);
330#if defined(_PRE_OS_VERSION_LINUX) && defined(_PRE_OS_VERSION) && (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
331#if defined(LINUX_VERSION_CODE) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
332 return skb_peek_tail(head);
340#if defined(_PRE_OS_VERSION_LITEOS) && defined(_PRE_OS_VERSION) && (_PRE_OS_VERSION_LITEOS == _PRE_OS_VERSION)
341 return skb_peek_tail(head);
350 return netbuf_head->
qlen;
359 const td_void *scr = oal_netbuf_payload_const(netbuf) + offset;
381 if (netbuf->
len > len) {
393 oal_netbuf_set_len(netbuf, len);
402 return skb_queue_len(head);
431 for (buf_num = 0; buf_num < num; buf_num++) {
432 *expect_netbuf = oal_get_netbuf_next(netbuf);
434 if (*expect_netbuf ==
TD_NULL) {
438 netbuf = *expect_netbuf;
449 if (skb_is_nonlinear(netbuf_head)) {
454 if (skb_tailroom(netbuf_head) < netbuf->
len) {
475 skb_queue_head(head, netbuf);
487 return skb_get_queue_mapping(netbuf);
492 skb_set_queue_mapping(netbuf, queue_mapping);
497 td_u32 header_len = oal_netbuf_headroom(netbuf);
#define NULL
Definition common_def.h:21
td_u8 * skb_put(struct sk_buff *skb, td_u32 len)
struct sk_buff * skb_unshare(struct sk_buff *skb, td_u32 pri)
struct sk_buff * skb_dequeue(struct sk_buff_head *list)
td_s32 pskb_expand_head(struct sk_buff *skb, td_u32 nhead, td_u32 ntail, td_s32 gfp_mask)
td_void skb_queue_tail(struct sk_buff_head *list, struct sk_buff *newsk)
td_void skb_trim(struct sk_buff *skb, td_u32 len)
oal_netbuf_stru * oal_netbuf_alloc_ext(td_u32 size)
#define OAL_HDR_TOTAL_LEN
Definition oal_netbuf_common_rom.h:25
#define OAL_MAX_MAC_HDR_LEN
Definition oal_netbuf_common_rom.h:24
#define WLAN_MEM_NETBUF_ALIGN
Definition oal_netbuf_ext.h:41
#define ETH_P_CONTROL
Definition oal_netbuf_ext.h:17
#define OAL_NETBUF_SUCC
Definition oal_netbuf_ext.h:18
#define OAL_NETBUF_FAIL
Definition oal_netbuf_ext.h:19
td_void oal_netbuf_free_any(oal_netbuf_stru *netbuf)
oal_netbuf_stru * oal_netbuf_alloc(td_u32 size, td_u32 l_reserve, td_u32 align)
td_u32 oal_netbuf_free(oal_netbuf_stru *netbuf)
int osal_s32
Definition osal_types.h:19
unsigned int osal_u32
Definition osal_types.h:13
errno_t memcpy_s(void *dest, size_t destMax, const void *src, size_t count)
#define EOK
Definition securec.h:57
Definition oal_skbuff.h:73
struct sk_buff * next
Definition oal_skbuff.h:75
td_u32 qlen
Definition oal_skbuff.h:78
struct sk_buff * prev
Definition oal_skbuff.h:76
Definition oal_skbuff.h:82
struct sk_buff * prev
Definition oal_skbuff.h:85
td_u32 len
Definition oal_skbuff.h:90
struct sk_buff * next
Definition oal_skbuff.h:84
td_s8 cb[48]
Definition oal_skbuff.h:98
td_u8 * data
Definition oal_skbuff.h:100
td_u32 protocol
Definition oal_skbuff.h:108
unsigned short td_u16
Definition td_type.h:37
unsigned char td_u8
Definition td_type.h:36
void td_void
Definition td_type.h:49
unsigned int td_u32
Definition td_type.h:38
#define TD_NULL
Definition td_type.h:30
int td_s32
Definition td_type.h:44