mirror of
https://github.com/szehl/ath9k-hmac.git
synced 2025-03-14 16:27:04 +00:00
77 lines
2.0 KiB
C
Executable File
77 lines
2.0 KiB
C
Executable File
#ifndef __BACKPORT_NET_SOCK_H
|
|
#define __BACKPORT_NET_SOCK_H
|
|
#include_next <net/sock.h>
|
|
#include <linux/version.h>
|
|
|
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0)
|
|
#include <backport/magic.h>
|
|
|
|
#define sk_for_each3(__sk, node, list) \
|
|
hlist_for_each_entry(__sk, node, list, sk_node)
|
|
|
|
#define sk_for_each_safe4(__sk, node, tmp, list) \
|
|
hlist_for_each_entry_safe(__sk, node, tmp, list, sk_node)
|
|
|
|
#define sk_for_each2(__sk, list) \
|
|
hlist_for_each_entry(__sk, list, sk_node)
|
|
|
|
#define sk_for_each_safe3(__sk, tmp, list) \
|
|
hlist_for_each_entry_safe(__sk, tmp, list, sk_node)
|
|
|
|
#undef sk_for_each
|
|
#define sk_for_each(...) \
|
|
macro_dispatcher(sk_for_each, __VA_ARGS__)(__VA_ARGS__)
|
|
#undef sk_for_each_safe
|
|
#define sk_for_each_safe(...) \
|
|
macro_dispatcher(sk_for_each_safe, __VA_ARGS__)(__VA_ARGS__)
|
|
|
|
#endif
|
|
|
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
|
|
/*
|
|
* backport SOCK_SELECT_ERR_QUEUE -- see commit
|
|
* "net: add option to enable error queue packets waking select"
|
|
*
|
|
* Adding 14 to SOCK_QUEUE_SHRUNK will reach a bet that can't be
|
|
* set on older kernels, so sock_flag() will always return false.
|
|
*/
|
|
#define SOCK_SELECT_ERR_QUEUE (SOCK_QUEUE_SHRUNK + 14)
|
|
#endif
|
|
|
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
|
|
static inline wait_queue_head_t *sk_sleep(struct sock *sk)
|
|
{
|
|
return sk->sk_sleep;
|
|
}
|
|
#endif
|
|
|
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34)
|
|
static inline struct sock *sk_entry(const struct hlist_node *node)
|
|
{
|
|
return hlist_entry(node, struct sock, sk_node);
|
|
}
|
|
#endif
|
|
|
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
|
#define sock_recv_ts_and_drops(msg, sk, skb) sock_recv_timestamp(msg, sk, skb)
|
|
#endif
|
|
|
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
|
|
static inline int sk_rmem_alloc_get(const struct sock *sk)
|
|
{
|
|
return atomic_read(&sk->sk_rmem_alloc);
|
|
}
|
|
|
|
static inline int sk_wmem_alloc_get(const struct sock *sk)
|
|
{
|
|
return atomic_read(&sk->sk_wmem_alloc) - 1;
|
|
}
|
|
|
|
static inline bool sk_has_allocations(const struct sock *sk)
|
|
{
|
|
return sk_wmem_alloc_get(sk) || sk_rmem_alloc_get(sk);
|
|
}
|
|
#endif
|
|
|
|
#endif /* __BACKPORT_NET_SOCK_H */
|