15#ifndef FREERTOS_DEFINE
16#include <linux/spinlock.h>
18#include "osal_adapt.h"
22#ifdef _PRE_LWIP_ZERO_COPY_MEM_ALLOC_PKT_BUF
36#define CHECKSUM_NONE 0
37#define CHECKSUM_UNNECESSARY 1
38#define CHECKSUM_COMPLETE 2
39#define CHECKSUM_PARTIAL 3
41#define L1_CACHE_BYTES (1 << 5)
42#define SMP_CACHE_BYTES L1_CACHE_BYTES
43#define skb_data_align(x) (((x) + (SMP_CACHE_BYTES - 1)) & ~(SMP_CACHE_BYTES - 1))
46#define skb_truesize(x) ((x) + skb_data_align(sizeof(struct sk_buff)))
52#define NUMA_NO_NODE (-1)
54#define USB_CACHE_ALIGN_SIZE 32
56#define SKB_ALLOC_FCLONE 0x01
57#define SKB_ALLOC_RX 0x02
60#ifdef HAVE_PCLINT_CHECK
61#define oal_offsetof(type, member) 0
63#define oal_offsetof(type, member) ((long) &((type *) 0)->member)
86#ifdef _PRE_LWIP_ZERO_COPY_MEM_ALLOC_PKT_BUF
113#ifdef TIMESTAMP_RECORD_DEBUG
133#define dev_kfree_skb_any(a) dev_kfree_skb(a)
146#ifndef FREERTOS_DEFINE
148 spin_lock_init(&list->
lock);
153 _skb_queue_head_init(list);
161static inline td_u8 *skb_tail_pointer(
const struct sk_buff *skb)
164 return (phead + skb->
tail);
237 struct sk_buff *skb = skb_peek(list);
239 skb_unlink(skb, list);
246 struct sk_buff *skb = skb_peek_tail(list);
248 skb_unlink(skb, list);
292 if (skb_queue_empty(list) == 0) {
300 if (skb_queue_empty(list) == 0) {
303 _skb_queue_head_init(list);
309 if (skb_queue_empty(list) == 0) {
312 _skb_queue_head_init(list);
327static inline bool skb_is_nonlinear(
const struct sk_buff *skb)
334 skb_reset_tail_pointer(skb);
340 if (skb_is_nonlinear(skb)) {
344 skb_set_tail_pointer(skb,
len);
360 return skb_is_nonlinear(
skb) ? 0 :
skb->end -
skb->tail;
370 return skb->head +
skb->end;
395 return skb->queue_mapping;
400 to->queue_mapping =
from->queue_mapping;
void osal_adapt_atomic_inc(osal_atomic *atomic)
Definition osal_adapt_atomic.c:39
#define NULL
Definition common_def.h:21
int osal_spin_lock_init(osal_spinlock *lock)
Initialize a spin lock.
Definition osal_spinlock.c:15
td_u8 * skb_put(struct sk_buff *skb, td_u32 len)
td_u32 sk_buff_data_t
Definition oal_skbuff.h:68
struct sk_buff * alloc_skb(td_u32 size)
struct sk_buff * dev_alloc_skb(td_u32 length)
struct sk_buff * skb_unshare(struct sk_buff *skb, td_u32 pri)
struct sk_buff * skb_dequeue(struct sk_buff_head *list)
td_void dev_kfree_skb(struct sk_buff *skb)
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)
#define NET_SKB_PAD
Definition oal_skbuff.h:49
td_u32 gfp_t
Definition oal_skbuff.h:67
Definition oal_net_pkt_rom.h:83
Definition osal_atomic.h:18
Definition osal_spinlock.h:18
Definition oal_skbuff.h:73
struct sk_buff * next
Definition oal_skbuff.h:75
td_u32 qlen
Definition oal_skbuff.h:78
osal_spinlock lock
Definition oal_skbuff.h:79
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_u8 resv
Definition oal_skbuff.h:112
td_u8 * head
Definition oal_skbuff.h:99
td_s8 cb[48]
Definition oal_skbuff.h:98
td_u8 resv2
Definition oal_skbuff.h:111
td_u8 * mem_head
Definition oal_skbuff.h:107
sk_buff_data_t tail
Definition oal_skbuff.h:95
td_void * dev
Definition oal_skbuff.h:89
sk_buff_data_t end
Definition oal_skbuff.h:96
td_u32 truesize
Definition oal_skbuff.h:102
td_u8 * data
Definition oal_skbuff.h:100
td_u16 queue_mapping
Definition oal_skbuff.h:92
td_u32 data_len
Definition oal_skbuff.h:91
td_u32 priority
Definition oal_skbuff.h:103
osal_atomic users
Definition oal_skbuff.h:104
td_u16 mac_header
Definition oal_skbuff.h:110
td_u32 protocol
Definition oal_skbuff.h:108
unsigned short td_u16
Definition td_type.h:37
unsigned int uintptr_t
Definition td_type.h:65
unsigned char td_u8
Definition td_type.h:36
void td_void
Definition td_type.h:49
signed char td_s8
Definition td_type.h:42
unsigned int td_u32
Definition td_type.h:38
int td_s32
Definition td_type.h:44