* The lower layers may not require more space, ever. Make sure it's
* enough.
*/
-#define MAX_PHONET_HEADER 8
+#define MAX_PHONET_HEADER (8 + MAX_HEADER)
/*
* Every Phonet* socket has this structure first in its
extern const struct proto_ops phonet_dgram_ops;
-struct sock *pn_find_sock_by_sa(const struct sockaddr_pn *sa);
+struct sock *pn_find_sock_by_sa(struct net *net, const struct sockaddr_pn *sa);
+void phonet_get_local_port_range(int *min, int *max);
void pn_sock_hash(struct sock *sk);
void pn_sock_unhash(struct sock *sk);
int pn_sock_get_port(struct sock *sk, unsigned short sport);
return (struct phonethdr *)skb_network_header(skb);
}
+static inline struct phonetmsg *pn_msg(struct sk_buff *skb)
+{
+ return (struct phonetmsg *)skb_transport_header(skb);
+}
+
/*
* Get the other party's sockaddr from received skb. The skb begins
* with a Phonet header.
int phonet_proto_register(int protocol, struct phonet_protocol *pp);
void phonet_proto_unregister(int protocol, struct phonet_protocol *pp);
+int phonet_sysctl_init(void);
+void phonet_sysctl_exit(void);
void phonet_netlink_register(void);
int isi_register(void);
void isi_unregister(void);