]>
Commit | Line | Data |
---|---|---|
2721c5b9 SB |
1 | /* |
2 | * Copyright (C) ST-Ericsson AB 2010 | |
26ee65e6 | 3 | * Author: Sjur Brendeland |
2721c5b9 SB |
4 | * License terms: GNU General Public License (GPL) version 2 |
5 | */ | |
6 | ||
7 | #ifndef CAIF_DEVICE_H_ | |
8 | #define CAIF_DEVICE_H_ | |
9 | #include <linux/kernel.h> | |
10 | #include <linux/net.h> | |
11 | #include <linux/netdevice.h> | |
12 | #include <linux/caif/caif_socket.h> | |
13 | #include <net/caif/caif_device.h> | |
14 | ||
15 | /** | |
16 | * struct caif_dev_common - data shared between CAIF drivers and stack. | |
17 | * @flowctrl: Flow Control callback function. This function is | |
18 | * supplied by CAIF Core Stack and is used by CAIF | |
19 | * Link Layer to send flow-stop to CAIF Core. | |
20 | * The flow information will be distributed to all | |
21 | * clients of CAIF. | |
22 | * | |
23 | * @link_select: Profile of device, either high-bandwidth or | |
24 | * low-latency. This member is set by CAIF Link | |
25 | * Layer Device in order to indicate if this device | |
26 | * is a high bandwidth or low latency device. | |
27 | * | |
28 | * @use_frag: CAIF Frames may be fragmented. | |
29 | * Is set by CAIF Link Layer in order to indicate if the | |
30 | * interface receives fragmented frames that must be | |
31 | * assembled by CAIF Core Layer. | |
32 | * | |
33 | * @use_fcs: Indicate if Frame CheckSum (fcs) is used. | |
34 | * Is set if the physical interface is | |
35 | * using Frame Checksum on the CAIF Frames. | |
36 | * | |
37 | * @use_stx: Indicate STart of frame eXtension (stx) in use. | |
38 | * Is set if the CAIF Link Layer expects | |
39 | * CAIF Frames to start with the STX byte. | |
40 | * | |
41 | * This structure is shared between the CAIF drivers and the CAIF stack. | |
42 | * It is used by the device to register its behavior. | |
43 | * CAIF Core layer must set the member flowctrl in order to supply | |
44 | * CAIF Link Layer with the flow control function. | |
45 | * | |
46 | */ | |
47 | struct caif_dev_common { | |
48 | void (*flowctrl)(struct net_device *net, int on); | |
49 | enum caif_link_selector link_select; | |
50 | int use_frag; | |
51 | int use_fcs; | |
52 | int use_stx; | |
53 | }; | |
54 | ||
55 | #endif /* CAIF_DEVICE_H_ */ |