forked from luck/tmp_suning_uos_patched
7f4e4868f3
This patchset makes the different protocols to return an error code, so the af_inet6 module can check the initialization was correct or not. The raw6 was taken into account to be consistent with the rest of the protocols, but the registration is at the same place. Because the raw6 has its own init function, the proto and the ops structure can be moved inside the raw6.c file. Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
60 lines
1.3 KiB
C
60 lines
1.3 KiB
C
#ifndef _TRANSP_V6_H
|
|
#define _TRANSP_V6_H
|
|
|
|
#include <net/checksum.h>
|
|
|
|
/*
|
|
* IPv6 transport protocols
|
|
*/
|
|
|
|
#ifdef __KERNEL__
|
|
|
|
extern struct proto rawv6_prot;
|
|
extern struct proto udpv6_prot;
|
|
extern struct proto udplitev6_prot;
|
|
extern struct proto tcpv6_prot;
|
|
|
|
struct flowi;
|
|
|
|
/* extention headers */
|
|
extern int ipv6_exthdrs_init(void);
|
|
extern void ipv6_exthdrs_exit(void);
|
|
extern int ipv6_frag_init(void);
|
|
extern void ipv6_frag_exit(void);
|
|
|
|
/* transport protocols */
|
|
extern int rawv6_init(void);
|
|
extern void rawv6_exit(void);
|
|
extern int udpv6_init(void);
|
|
extern void udpv6_exit(void);
|
|
extern int udplitev6_init(void);
|
|
extern void udplitev6_exit(void);
|
|
extern int tcpv6_init(void);
|
|
extern void tcpv6_exit(void);
|
|
|
|
extern int udpv6_connect(struct sock *sk,
|
|
struct sockaddr *uaddr,
|
|
int addr_len);
|
|
|
|
extern int datagram_recv_ctl(struct sock *sk,
|
|
struct msghdr *msg,
|
|
struct sk_buff *skb);
|
|
|
|
extern int datagram_send_ctl(struct msghdr *msg,
|
|
struct flowi *fl,
|
|
struct ipv6_txoptions *opt,
|
|
int *hlimit, int *tclass);
|
|
|
|
#define LOOPBACK4_IPV6 __constant_htonl(0x7f000006)
|
|
|
|
/*
|
|
* address family specific functions
|
|
*/
|
|
extern struct inet_connection_sock_af_ops ipv4_specific;
|
|
|
|
extern int inet6_destroy_sock(struct sock *sk);
|
|
|
|
#endif
|
|
|
|
#endif
|