aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/caif
diff options
context:
space:
mode:
authorsjur.brandeland@stericsson.com <sjur.brandeland@stericsson.com>2011-11-30 04:22:47 -0500
committerDavid S. Miller <davem@davemloft.net>2011-11-30 23:30:48 -0500
commit7c18d2205ea76eef9674e59e1ecae4f332a53e9e (patch)
tree2d6ed4be50e52408b8806ca67f0bd6fb15362efa /include/net/caif
parent200c5a3b387c415e49639ee0f6de37804522b745 (diff)
caif: Restructure how link caif link layer enroll
Enrolling CAIF link layers are refactored. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/caif')
-rw-r--r--include/net/caif/caif_dev.h21
-rw-r--r--include/net/caif/cfcnfg.h9
2 files changed, 26 insertions, 4 deletions
diff --git a/include/net/caif/caif_dev.h b/include/net/caif/caif_dev.h
index c011281d92c0..ef2dd9438bb1 100644
--- a/include/net/caif/caif_dev.h
+++ b/include/net/caif/caif_dev.h
@@ -9,6 +9,7 @@
9 9
10#include <net/caif/caif_layer.h> 10#include <net/caif/caif_layer.h>
11#include <net/caif/cfcnfg.h> 11#include <net/caif/cfcnfg.h>
12#include <net/caif/caif_device.h>
12#include <linux/caif/caif_socket.h> 13#include <linux/caif/caif_socket.h>
13#include <linux/if.h> 14#include <linux/if.h>
14#include <linux/net.h> 15#include <linux/net.h>
@@ -104,4 +105,24 @@ void caif_client_register_refcnt(struct cflayer *adapt_layer,
104 */ 105 */
105void caif_free_client(struct cflayer *adap_layer); 106void caif_free_client(struct cflayer *adap_layer);
106 107
108/**
109 * struct caif_enroll_dev - Enroll a net-device as a CAIF Link layer
110 * @dev: Network device to enroll.
111 * @caifdev: Configuration information from CAIF Link Layer
112 * @link_support: Link layer support layer
113 * @head_room: Head room needed by link support layer
114 * @layer: Lowest layer in CAIF stack
115 * @rcv_fun: Receive function for CAIF stack.
116 *
117 * This function enroll a CAIF link layer into CAIF Stack and
118 * expects the interface to be able to handle CAIF payload.
119 * The link_support layer is used to add any Link Layer specific
120 * framing.
121 */
122void caif_enroll_dev(struct net_device *dev, struct caif_dev_common *caifdev,
123 struct cflayer *link_support, int head_room,
124 struct cflayer **layer, int (**rcv_func)(
125 struct sk_buff *, struct net_device *,
126 struct packet_type *, struct net_device *));
127
107#endif /* CAIF_DEV_H_ */ 128#endif /* CAIF_DEV_H_ */
diff --git a/include/net/caif/cfcnfg.h b/include/net/caif/cfcnfg.h
index 3e93a4a4b677..a421723e986f 100644
--- a/include/net/caif/cfcnfg.h
+++ b/include/net/caif/cfcnfg.h
@@ -72,15 +72,16 @@ void cfcnfg_remove(struct cfcnfg *cfg);
72 * @phy_layer: Specify the physical layer. The transmit function 72 * @phy_layer: Specify the physical layer. The transmit function
73 * MUST be set in the structure. 73 * MUST be set in the structure.
74 * @pref: The phy (link layer) preference. 74 * @pref: The phy (link layer) preference.
75 * @link_support: Protocol implementation for link layer specific protocol.
75 * @fcs: Specify if checksum is used in CAIF Framing Layer. 76 * @fcs: Specify if checksum is used in CAIF Framing Layer.
76 * @stx: Specify if Start Of Frame eXtention is used. 77 * @head_room: Head space needed by link specific protocol.
77 */ 78 */
78
79void 79void
80cfcnfg_add_phy_layer(struct cfcnfg *cnfg, enum cfcnfg_phy_type phy_type, 80cfcnfg_add_phy_layer(struct cfcnfg *cnfg,
81 struct net_device *dev, struct cflayer *phy_layer, 81 struct net_device *dev, struct cflayer *phy_layer,
82 enum cfcnfg_phy_preference pref, 82 enum cfcnfg_phy_preference pref,
83 bool fcs, bool stx); 83 struct cflayer *link_support,
84 bool fcs, int head_room);
84 85
85/** 86/**
86 * cfcnfg_del_phy_layer - Deletes an phy layer from the CAIF stack. 87 * cfcnfg_del_phy_layer - Deletes an phy layer from the CAIF stack.