aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRemi Denis-Courmont <remi.denis-courmont@nokia.com>2008-09-22 23:05:19 -0400
committerDavid S. Miller <davem@davemloft.net>2008-09-22 23:05:19 -0400
commitba113a94b7503ee23ffe819e7045134b0c1d31de (patch)
treeb6236bbb36ffa311d7bc952066d2adc2b00c8d0c /include
parent8fb397406f6470f79040c41eec49af20900a9e3b (diff)
Phonet: common socket glue
This provides the socket API for the Phonet protocols family. Signed-off-by: Remi Denis-Courmont <remi.denis-courmont@nokia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/phonet.h3
-rw-r--r--include/net/phonet/phonet.h23
2 files changed, 26 insertions, 0 deletions
diff --git a/include/linux/phonet.h b/include/linux/phonet.h
index 6a764f8584a4..001c0e679099 100644
--- a/include/linux/phonet.h
+++ b/include/linux/phonet.h
@@ -32,6 +32,9 @@
32#define PNADDR_ANY 0 32#define PNADDR_ANY 0
33#define PNPORT_RESOURCE_ROUTING 0 33#define PNPORT_RESOURCE_ROUTING 0
34 34
35/* ioctls */
36#define SIOCPNGETOBJECT (SIOCPROTOPRIVATE + 0)
37
35/* Phonet protocol header */ 38/* Phonet protocol header */
36struct phonethdr { 39struct phonethdr {
37 __u8 pn_rdev; 40 __u8 pn_rdev;
diff --git a/include/net/phonet/phonet.h b/include/net/phonet/phonet.h
index 8b777943d201..2ae5cbb59b60 100644
--- a/include/net/phonet/phonet.h
+++ b/include/net/phonet/phonet.h
@@ -29,6 +29,28 @@
29 */ 29 */
30#define MAX_PHONET_HEADER 8 30#define MAX_PHONET_HEADER 8
31 31
32/*
33 * Every Phonet* socket has this structure first in its
34 * protocol-specific structure under name c.
35 */
36struct pn_sock {
37 struct sock sk;
38 u16 sobject;
39 u8 resource;
40};
41
42static inline struct pn_sock *pn_sk(struct sock *sk)
43{
44 return (struct pn_sock *)sk;
45}
46
47extern const struct proto_ops phonet_dgram_ops;
48
49struct sock *pn_find_sock_by_sa(const struct sockaddr_pn *sa);
50void pn_sock_hash(struct sock *sk);
51void pn_sock_unhash(struct sock *sk);
52int pn_sock_get_port(struct sock *sk, unsigned short sport);
53
32static inline struct phonethdr *pn_hdr(struct sk_buff *skb) 54static inline struct phonethdr *pn_hdr(struct sk_buff *skb)
33{ 55{
34 return (struct phonethdr *)skb_network_header(skb); 56 return (struct phonethdr *)skb_network_header(skb);
@@ -64,6 +86,7 @@ void pn_skb_get_dst_sockaddr(struct sk_buff *skb, struct sockaddr_pn *sa)
64 86
65/* Protocols in Phonet protocol family. */ 87/* Protocols in Phonet protocol family. */
66struct phonet_protocol { 88struct phonet_protocol {
89 const struct proto_ops *ops;
67 struct proto *prot; 90 struct proto *prot;
68 int sock_type; 91 int sock_type;
69}; 92};