1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | /* |
3 | * Copyright (C) ST-Ericsson AB 2010 |
4 | * Author: Sjur Brendeland |
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_ */ |
56 | |