diff options
author | Remi Denis-Courmont <remi.denis-courmont@nokia.com> | 2008-09-22 23:05:19 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-09-22 23:05:19 -0400 |
commit | ba113a94b7503ee23ffe819e7045134b0c1d31de (patch) | |
tree | b6236bbb36ffa311d7bc952066d2adc2b00c8d0c /include | |
parent | 8fb397406f6470f79040c41eec49af20900a9e3b (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.h | 3 | ||||
-rw-r--r-- | include/net/phonet/phonet.h | 23 |
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 */ |
36 | struct phonethdr { | 39 | struct 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 | */ | ||
36 | struct pn_sock { | ||
37 | struct sock sk; | ||
38 | u16 sobject; | ||
39 | u8 resource; | ||
40 | }; | ||
41 | |||
42 | static inline struct pn_sock *pn_sk(struct sock *sk) | ||
43 | { | ||
44 | return (struct pn_sock *)sk; | ||
45 | } | ||
46 | |||
47 | extern const struct proto_ops phonet_dgram_ops; | ||
48 | |||
49 | struct sock *pn_find_sock_by_sa(const struct sockaddr_pn *sa); | ||
50 | void pn_sock_hash(struct sock *sk); | ||
51 | void pn_sock_unhash(struct sock *sk); | ||
52 | int pn_sock_get_port(struct sock *sk, unsigned short sport); | ||
53 | |||
32 | static inline struct phonethdr *pn_hdr(struct sk_buff *skb) | 54 | static 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. */ |
66 | struct phonet_protocol { | 88 | struct 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 | }; |