mirror of
https://github.com/opnsense/src.git
synced 2026-06-03 13:58:30 -04:00
LinuxKPI: skbuff: sort list header and add new (dummy) functions
While working on new and updates to drivers more skbuff changes came up. Sort out the list/prev/next header problem and add more (so far dummy) functions needed. MFC after: 1 week
This commit is contained in:
parent
195733401f
commit
89c32dafa5
2 changed files with 80 additions and 8 deletions
|
|
@ -124,11 +124,15 @@ struct skb_shared_info {
|
|||
};
|
||||
|
||||
struct sk_buff {
|
||||
/* XXX TODO */
|
||||
/* struct sk_buff_head */
|
||||
struct sk_buff *next;
|
||||
struct sk_buff *prev;
|
||||
int list; /* XXX TYPE */
|
||||
/* XXX TODO */
|
||||
union {
|
||||
/* struct sk_buff_head */
|
||||
struct {
|
||||
struct sk_buff *next;
|
||||
struct sk_buff *prev;
|
||||
};
|
||||
struct list_head list;
|
||||
};
|
||||
uint32_t _alloc_len; /* Length of alloc data-buf. XXX-BZ give up for truesize? */
|
||||
uint32_t len; /* ? */
|
||||
uint32_t data_len; /* ? If we have frags? */
|
||||
|
|
@ -266,7 +270,7 @@ skb_reserve(struct sk_buff *skb, size_t len)
|
|||
* front to copy data in (manually).
|
||||
*/
|
||||
static inline void *
|
||||
skb_push(struct sk_buff *skb, size_t len)
|
||||
__skb_push(struct sk_buff *skb, size_t len)
|
||||
{
|
||||
SKB_TRACE(skb);
|
||||
KASSERT(((skb->data - len) >= skb->head), ("%s: skb %p (data %p - "
|
||||
|
|
@ -276,6 +280,14 @@ skb_push(struct sk_buff *skb, size_t len)
|
|||
return (skb->data);
|
||||
}
|
||||
|
||||
static inline void *
|
||||
skb_push(struct sk_buff *skb, size_t len)
|
||||
{
|
||||
|
||||
SKB_TRACE(skb);
|
||||
return (__skb_push(skb, len));
|
||||
}
|
||||
|
||||
/*
|
||||
* Length of the data on the skb (without any frags)???
|
||||
*/
|
||||
|
|
@ -324,7 +336,7 @@ skb_headroom(struct sk_buff *skb)
|
|||
* the end to copy data in (manually). See also skb_put_data() below.
|
||||
*/
|
||||
static inline void *
|
||||
skb_put(struct sk_buff *skb, size_t len)
|
||||
__skb_put(struct sk_buff *skb, size_t len)
|
||||
{
|
||||
void *s;
|
||||
|
||||
|
|
@ -347,6 +359,14 @@ skb_put(struct sk_buff *skb, size_t len)
|
|||
return (s);
|
||||
}
|
||||
|
||||
static inline void *
|
||||
skb_put(struct sk_buff *skb, size_t len)
|
||||
{
|
||||
|
||||
SKB_TRACE(skb);
|
||||
return (__skb_put(skb, len));
|
||||
}
|
||||
|
||||
/* skb_put() + copying data in. */
|
||||
static inline void *
|
||||
skb_put_data(struct sk_buff *skb, const void *buf, size_t len)
|
||||
|
|
@ -749,6 +769,13 @@ skb_frag_address(const skb_frag_t *frag)
|
|||
return (NULL);
|
||||
}
|
||||
|
||||
static inline void
|
||||
skb_free_frag(void *frag)
|
||||
{
|
||||
|
||||
SKB_TODO();
|
||||
}
|
||||
|
||||
static inline struct sk_buff *
|
||||
skb_gso_segment(struct sk_buff *skb, netdev_features_t netdev_flags)
|
||||
{
|
||||
|
|
@ -938,4 +965,49 @@ skb_copy_from_linear_data(const struct sk_buff *skb, void *dst, size_t len)
|
|||
memcpy(dst, skb->data, len);
|
||||
}
|
||||
|
||||
static inline struct sk_buff *
|
||||
build_skb(void *data, unsigned int fragsz)
|
||||
{
|
||||
|
||||
SKB_TODO();
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
static inline int
|
||||
skb_pad(struct sk_buff *skb, int pad)
|
||||
{
|
||||
|
||||
SKB_TRACE(skb);
|
||||
SKB_TODO();
|
||||
return (-1);
|
||||
}
|
||||
|
||||
static inline void
|
||||
skb_list_del_init(struct sk_buff *skb)
|
||||
{
|
||||
|
||||
SKB_TRACE(skb);
|
||||
SKB_TODO();
|
||||
}
|
||||
|
||||
static inline void
|
||||
napi_consume_skb(struct sk_buff *skb, int budget)
|
||||
{
|
||||
|
||||
SKB_TRACE(skb);
|
||||
SKB_TODO();
|
||||
}
|
||||
|
||||
static inline bool
|
||||
skb_linearize(struct sk_buff *skb)
|
||||
{
|
||||
|
||||
SKB_TRACE(skb);
|
||||
SKB_TODO();
|
||||
return (false);
|
||||
}
|
||||
|
||||
#define SKB_WITH_OVERHEAD(_s) \
|
||||
(_s) - ALIGN(sizeof(struct skb_shared_info), CACHE_LINE_SIZE)
|
||||
|
||||
#endif /* _LINUXKPI_LINUX_SKBUFF_H */
|
||||
|
|
|
|||
|
|
@ -258,7 +258,7 @@ DB_SHOW_COMMAND(skb, db_show_skb)
|
|||
|
||||
db_printf("skb %p\n", skb);
|
||||
db_printf("\tnext %p prev %p\n", skb->next, skb->prev);
|
||||
db_printf("\tlist %d\n", skb->list);
|
||||
db_printf("\tlist %p\n", &skb->list);
|
||||
db_printf("\t_alloc_len %u len %u data_len %u truesize %u mac_len %u\n",
|
||||
skb->_alloc_len, skb->len, skb->data_len, skb->truesize,
|
||||
skb->mac_len);
|
||||
|
|
|
|||
Loading…
Reference in a new issue