GNU Linux-libre 4.19.281-gnu1
[releases.git] / drivers / staging / gdm724x / hci_packet.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved. */
3
4 #ifndef _HCI_PACKET_H_
5 #define _HCI_PACKET_H_
6
7 #define HCI_HEADER_SIZE 4
8
9 /*
10  * The NIC type definition:
11  * For backward compatibility, lower 16 bits used as they were.
12  * Lower 16 bit: NIC_TYPE values
13  * Uppoer 16 bit: NIC_TYPE Flags
14  */
15 #define NIC_TYPE_NIC0           0x00000010
16 #define NIC_TYPE_NIC1           0x00000011
17 #define NIC_TYPE_NIC2           0x00000012
18 #define NIC_TYPE_NIC3           0x00000013
19 #define NIC_TYPE_ARP            0x00000100
20 #define NIC_TYPE_ICMPV6         0x00000200
21 #define NIC_TYPE_MASK           0x0000FFFF
22 #define NIC_TYPE_F_IPV4         0x00010000
23 #define NIC_TYPE_F_IPV6         0x00020000
24 #define NIC_TYPE_F_DHCP         0x00040000
25 #define NIC_TYPE_F_NDP          0x00080000
26 #define NIC_TYPE_F_VLAN         0x00100000
27
28 struct hci_packet {
29         __dev16 cmd_evt;
30         __dev16 len;
31         u8 data[0];
32 } __packed;
33
34 struct tlv {
35         u8 type;
36         u8 len;
37         u8 *data[1];
38 } __packed;
39
40 struct sdu_header {
41         __dev16 cmd_evt;
42         __dev16 len;
43         __dev32 dftEpsId;
44         __dev32 bearer_ID;
45         __dev32 nic_type;
46 } __packed;
47
48 struct sdu {
49         __dev16 cmd_evt;
50         __dev16 len;
51         __dev32 dft_eps_ID;
52         __dev32 bearer_ID;
53         __dev32 nic_type;
54         u8 data[0];
55 } __packed;
56
57 struct multi_sdu {
58         __dev16 cmd_evt;
59         __dev16 len;
60         __dev16 num_packet;
61         __dev16 reserved;
62         u8 data[0];
63 } __packed;
64
65 struct hci_pdn_table_ind {
66         __dev16 cmd_evt;
67         __dev16 len;
68         u8 activate;
69         __dev32 dft_eps_id;
70         __dev32 nic_type;
71         u8 pdn_type;
72         u8 ipv4_addr[4];
73         u8 ipv6_intf_id[8];
74 } __packed;
75
76 struct hci_connect_ind {
77         __dev16 cmd_evt;
78         __dev16 len;
79         __dev32 connect;
80 } __packed;
81
82 #endif /* _HCI_PACKET_H_ */