#ifndef _INET_SOCK_H
#define _INET_SOCK_H
#include <linux/bitops.h>
#include <linux/string.h>
#include <linux/types.h>
#include <linux/jhash.h>
#include <linux/netdevice.h>
#include <net/flow.h>
#include <net/sock.h>
#include <net/request_sock.h>
#include <net/netns/hash.h>
#include <net/tcp_states.h>
#include <net/l3mdev.h>
struct ip_options { … };
struct ip_options_rcu { … };
struct ip_options_data { … };
struct inet_request_sock { … };
static inline struct inet_request_sock *inet_rsk(const struct request_sock *sk)
{ … }
static inline u32 inet_request_mark(const struct sock *sk, struct sk_buff *skb)
{ … }
static inline int inet_request_bound_dev_if(const struct sock *sk,
struct sk_buff *skb)
{ … }
static inline int inet_sk_bound_l3mdev(const struct sock *sk)
{ … }
static inline bool inet_bound_dev_eq(bool l3mdev_accept, int bound_dev_if,
int dif, int sdif)
{ … }
static inline bool inet_sk_bound_dev_eq(struct net *net, int bound_dev_if,
int dif, int sdif)
{ … }
struct inet_cork { … };
struct inet_cork_full { … };
struct ip_mc_socklist;
struct ipv6_pinfo;
struct rtable;
struct inet_sock { … };
#define IPCORK_OPT …
enum { … };
#define IP_CMSG_PKTINFO …
#define IP_CMSG_TTL …
#define IP_CMSG_TOS …
#define IP_CMSG_RECVOPTS …
#define IP_CMSG_RETOPTS …
#define IP_CMSG_PASSSEC …
#define IP_CMSG_ORIGDSTADDR …
#define IP_CMSG_CHECKSUM …
#define IP_CMSG_RECVFRAGSIZE …
#define IP_CMSG_ALL …
static inline unsigned long inet_cmsg_flags(const struct inet_sock *inet)
{ … }
#define inet_test_bit(nr, sk) …
#define inet_set_bit(nr, sk) …
#define inet_clear_bit(nr, sk) …
#define inet_assign_bit(nr, sk, val) …
static inline struct sock *sk_to_full_sk(struct sock *sk)
{ … }
static inline const struct sock *sk_const_to_full_sk(const struct sock *sk)
{ … }
static inline struct sock *skb_to_full_sk(const struct sk_buff *skb)
{ … }
#define inet_sk(ptr) …
static inline void __inet_sk_copy_descendant(struct sock *sk_to,
const struct sock *sk_from,
const int ancestor_size)
{ … }
int inet_sk_rebuild_header(struct sock *sk);
static inline int inet_sk_state_load(const struct sock *sk)
{ … }
void inet_sk_state_store(struct sock *sk, int newstate);
void inet_sk_set_state(struct sock *sk, int state);
static inline unsigned int __inet_ehashfn(const __be32 laddr,
const __u16 lport,
const __be32 faddr,
const __be16 fport,
u32 initval)
{ … }
struct request_sock *inet_reqsk_alloc(const struct request_sock_ops *ops,
struct sock *sk_listener,
bool attach_listener);
static inline __u8 inet_sk_flowi_flags(const struct sock *sk)
{ … }
static inline void inet_inc_convert_csum(struct sock *sk)
{ … }
static inline void inet_dec_convert_csum(struct sock *sk)
{ … }
static inline bool inet_get_convert_csum(struct sock *sk)
{ … }
static inline bool inet_can_nonlocal_bind(struct net *net,
struct inet_sock *inet)
{ … }
static inline bool inet_addr_valid_or_nonlocal(struct net *net,
struct inet_sock *inet,
__be32 addr,
int addr_type)
{ … }
#endif