linux/drivers/staging/gdm724x/hci_packet.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved.
   3 *
   4 * This software is licensed under the terms of the GNU General Public
   5 * License version 2, as published by the Free Software Foundation, and
   6 * may be copied, distributed, and modified under those terms.
   7 *
   8 * This program is distributed in the hope that it will be useful,
   9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11 * GNU General Public License for more details.
  12 */
  13
  14#ifndef _HCI_PACKET_H_
  15#define _HCI_PACKET_H_
  16
  17#define HCI_HEADER_SIZE 4
  18
  19/*
  20 * The NIC type definition:
  21 * For backward compatibility, lower 16 bits used as they were.
  22 * Lower 16 bit: NIC_TYPE values
  23 * Uppoer 16 bit: NIC_TYPE Flags
  24 */
  25#define NIC_TYPE_NIC0           0x00000010
  26#define NIC_TYPE_NIC1           0x00000011
  27#define NIC_TYPE_NIC2           0x00000012
  28#define NIC_TYPE_NIC3           0x00000013
  29#define NIC_TYPE_ARP            0x00000100
  30#define NIC_TYPE_ICMPV6         0x00000200
  31#define NIC_TYPE_MASK           0x0000FFFF
  32#define NIC_TYPE_F_IPV4         0x00010000
  33#define NIC_TYPE_F_IPV6         0x00020000
  34#define NIC_TYPE_F_DHCP         0x00040000
  35#define NIC_TYPE_F_NDP          0x00080000
  36#define NIC_TYPE_F_VLAN         0x00100000
  37
  38struct hci_packet {
  39        __dev16 cmd_evt;
  40        __dev16 len;
  41        u8 data[0];
  42} __packed;
  43
  44struct tlv {
  45        u8 type;
  46        u8 len;
  47        u8 *data[1];
  48} __packed;
  49
  50struct sdu_header {
  51        __dev16 cmd_evt;
  52        __dev16 len;
  53        __dev32 dftEpsId;
  54        __dev32 bearer_ID;
  55        __dev32 nic_type;
  56} __packed;
  57
  58struct sdu {
  59        __dev16 cmd_evt;
  60        __dev16 len;
  61        __dev32 dft_eps_ID;
  62        __dev32 bearer_ID;
  63        __dev32 nic_type;
  64        u8 data[0];
  65} __packed;
  66
  67struct multi_sdu {
  68        __dev16 cmd_evt;
  69        __dev16 len;
  70        __dev16 num_packet;
  71        __dev16 reserved;
  72        u8 data[0];
  73} __packed;
  74
  75struct hci_pdn_table_ind {
  76        __dev16 cmd_evt;
  77        __dev16 len;
  78        u8 activate;
  79        __dev32 dft_eps_id;
  80        __dev32 nic_type;
  81        u8 pdn_type;
  82        u8 ipv4_addr[4];
  83        u8 ipv6_intf_id[8];
  84} __packed;
  85
  86struct hci_connect_ind {
  87        __dev16 cmd_evt;
  88        __dev16 len;
  89        __dev32 connect;
  90} __packed;
  91
  92#endif /* _HCI_PACKET_H_ */
  93