~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux-2.6.17/drivers/bluetooth/hci_uart.h

Version: ~ [ 2.6.16 ] ~ [ 2.6.17 ] ~
Architecture: ~ [ ia64 ] ~ [ i386 ] ~ [ arm ] ~ [ ppc ] ~ [ sparc64 ] ~

  1 /*
  2  *
  3  *  Bluetooth HCI UART driver
  4  *
  5  *  Copyright (C) 2000-2001  Qualcomm Incorporated
  6  *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com>
  7  *  Copyright (C) 2004-2005  Marcel Holtmann <marcel@holtmann.org>
  8  *
  9  *
 10  *  This program is free software; you can redistribute it and/or modify
 11  *  it under the terms of the GNU General Public License as published by
 12  *  the Free Software Foundation; either version 2 of the License, or
 13  *  (at your option) any later version.
 14  *
 15  *  This program is distributed in the hope that it will be useful,
 16  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 17  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 18  *  GNU General Public License for more details.
 19  *
 20  *  You should have received a copy of the GNU General Public License
 21  *  along with this program; if not, write to the Free Software
 22  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 23  *
 24  */
 25 
 26 #ifndef N_HCI
 27 #define N_HCI   15
 28 #endif
 29 
 30 /* Ioctls */
 31 #define HCIUARTSETPROTO _IOW('U', 200, int)
 32 #define HCIUARTGETPROTO _IOR('U', 201, int)
 33 
 34 /* UART protocols */
 35 #define HCI_UART_MAX_PROTO      4
 36 
 37 #define HCI_UART_H4     0
 38 #define HCI_UART_BCSP   1
 39 #define HCI_UART_3WIRE  2
 40 #define HCI_UART_H4DS   3
 41 
 42 struct hci_uart;
 43 
 44 struct hci_uart_proto {
 45         unsigned int id;
 46         int (*open)(struct hci_uart *hu);
 47         int (*close)(struct hci_uart *hu);
 48         int (*flush)(struct hci_uart *hu);
 49         int (*recv)(struct hci_uart *hu, void *data, int len);
 50         int (*enqueue)(struct hci_uart *hu, struct sk_buff *skb);
 51         struct sk_buff *(*dequeue)(struct hci_uart *hu);
 52 };
 53 
 54 struct hci_uart {
 55         struct tty_struct       *tty;
 56         struct hci_dev          *hdev;
 57         unsigned long           flags;
 58 
 59         struct hci_uart_proto   *proto;
 60         void                    *priv;
 61 
 62         struct sk_buff          *tx_skb;
 63         unsigned long           tx_state;
 64         spinlock_t              rx_lock;
 65 };
 66 
 67 /* HCI_UART flag bits */
 68 #define HCI_UART_PROTO_SET      0
 69 
 70 /* TX states  */
 71 #define HCI_UART_SENDING        1
 72 #define HCI_UART_TX_WAKEUP      2
 73 
 74 int hci_uart_register_proto(struct hci_uart_proto *p);
 75 int hci_uart_unregister_proto(struct hci_uart_proto *p);
 76 int hci_uart_tx_wakeup(struct hci_uart *hu);
 77 
 78 #ifdef CONFIG_BT_HCIUART_H4
 79 int h4_init(void);
 80 int h4_deinit(void);
 81 #endif
 82 
 83 #ifdef CONFIG_BT_HCIUART_BCSP
 84 int bcsp_init(void);
 85 int bcsp_deinit(void);
 86 #endif
 87 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.