From 2f529f9b558ca1c1bd74be7437a84e4711743404 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 01 Nov 2024 02:11:33 +0000 Subject: [PATCH] add xenomai --- kernel/include/linux/skbuff.h | 69 ++++++++++++++++++++++++++++++++++ 1 files changed, 69 insertions(+), 0 deletions(-) diff --git a/kernel/include/linux/skbuff.h b/kernel/include/linux/skbuff.h index f73efb3..3556cf6 100644 --- a/kernel/include/linux/skbuff.h +++ b/kernel/include/linux/skbuff.h @@ -793,6 +793,12 @@ #ifdef CONFIG_SKB_EXTENSIONS __u8 active_extensions; #endif +#ifdef CONFIG_NET_OOB + __u8 oob:1; + __u8 oob_clone:1; + __u8 oob_cloned:1; +#endif + /* fields enclosed in headers_start/headers_end are copied * using a single memcpy() in __copy_skb_header() */ @@ -1102,6 +1108,69 @@ struct sk_buff *build_skb(void *data, unsigned int frag_size); struct sk_buff *build_skb_around(struct sk_buff *skb, void *data, unsigned int frag_size); +#ifdef CONFIG_NET_OOB + +static inline void __skb_oob_copy(struct sk_buff *new, + const struct sk_buff *old) +{ + new->oob = old->oob; + new->oob_clone = old->oob_clone; + new->oob_cloned = old->oob_cloned; +} + +static inline bool skb_is_oob(const struct sk_buff *skb) +{ + return skb->oob; +} + +static inline bool skb_is_oob_clone(const struct sk_buff *skb) +{ + return skb->oob_clone; +} + +static inline bool skb_has_oob_clone(const struct sk_buff *skb) +{ + return skb->oob_cloned; +} + +struct sk_buff *__netdev_alloc_oob_skb(struct net_device *dev, + size_t len, size_t headroom, + gfp_t gfp_mask); +void __netdev_free_oob_skb(struct net_device *dev, struct sk_buff *skb); +void netdev_reset_oob_skb(struct net_device *dev, struct sk_buff *skb, + size_t headroom); +struct sk_buff *skb_alloc_oob_head(gfp_t gfp_mask); +void skb_morph_oob_skb(struct sk_buff *n, struct sk_buff *skb); +bool skb_release_oob_skb(struct sk_buff *skb, int *dref); + +static inline bool recycle_oob_skb(struct sk_buff *skb) +{ + bool skb_oob_recycle(struct sk_buff *skb); + + if (!skb->oob) + return false; + + return skb_oob_recycle(skb); +} + +#else /* !CONFIG_NET_OOB */ + +static inline void __skb_oob_copy(struct sk_buff *new, + const struct sk_buff *old) +{ +} + +static inline bool skb_is_oob(const struct sk_buff *skb) +{ + return false; +} + +static inline bool recycle_oob_skb(struct sk_buff *skb) +{ + return false; +} + +#endif /* !CONFIG_NET_OOB */ /** * alloc_skb - allocate a network buffer -- Gitblit v1.6.2