fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / net / bluetooth / bluetooth.h
index 99301bd..771d177 100644 (file)
    SOFTWARE IS DISCLAIMED.
 */
 
-/*
- *  $Id: bluetooth.h,v 1.8 2002/04/17 17:37:20 maxk Exp $
- */
-
 #ifndef __BLUETOOTH_H
 #define __BLUETOOTH_H
 
 #endif
 
 /* Reserv for core and drivers use */
-#define BT_SKB_RESERVE       8
+#define BT_SKB_RESERVE 8
 
-#define BTPROTO_L2CAP   0
-#define BTPROTO_HCI     1
-#define BTPROTO_SCO    2
+#define BTPROTO_L2CAP  0
+#define BTPROTO_HCI    1
+#define BTPROTO_SCO    2
 #define BTPROTO_RFCOMM 3
 #define BTPROTO_BNEP   4
 #define BTPROTO_CMTP   5
+#define BTPROTO_HIDP   6
+#define BTPROTO_AVDTP  7
 
-#define SOL_HCI     0
-#define SOL_L2CAP   6
-#define SOL_SCO     17
-#define SOL_RFCOMM  18
+#define SOL_HCI                0
+#define SOL_L2CAP      6
+#define SOL_SCO                17
+#define SOL_RFCOMM     18
 
 #define BT_INFO(fmt, arg...) printk(KERN_INFO "Bluetooth: " fmt "\n" , ## arg)
 #define BT_DBG(fmt, arg...)  printk(KERN_INFO "%s: " fmt "\n" , __FUNCTION__ , ## arg)
 #define BT_ERR(fmt, arg...)  printk(KERN_ERR  "%s: " fmt "\n" , __FUNCTION__ , ## arg)
 
-#ifdef HCI_DATA_DUMP
-#define BT_DMP(buf, len)    bt_dump(__FUNCTION__, buf, len)
-#else
-#define BT_DMP(D...)
-#endif
-
-extern struct proc_dir_entry *proc_bt;
-
 /* Connection and socket states */
 enum {
        BT_CONNECTED = 1, /* Equal to TCP_ESTABLISHED to make net code happy */
@@ -122,12 +112,11 @@ struct bt_sock {
 
 struct bt_sock_list {
        struct hlist_head head;
-       rwlock_t          lock;
+       rwlock_t          lock;
 };
 
 int  bt_sock_register(int proto, struct net_proto_family *ops);
 int  bt_sock_unregister(int proto);
-struct sock *bt_sock_alloc(struct socket *sock, int proto, int pi_size, int prio);
 void bt_sock_link(struct bt_sock_list *l, struct sock *s);
 void bt_sock_unlink(struct bt_sock_list *l, struct sock *s);
 int  bt_sock_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg, size_t len, int flags);
@@ -135,15 +124,17 @@ uint bt_sock_poll(struct file * file, struct socket *sock, poll_table *wait);
 int  bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo);
 
 void bt_accept_enqueue(struct sock *parent, struct sock *sk);
+void bt_accept_unlink(struct sock *sk);
 struct sock *bt_accept_dequeue(struct sock *parent, struct socket *newsock);
 
 /* Skb helpers */
 struct bt_skb_cb {
-       int    incoming;
+       __u8 pkt_type;
+       __u8 incoming;
 };
 #define bt_cb(skb) ((struct bt_skb_cb *)(skb->cb)) 
 
-static inline struct sk_buff *bt_skb_alloc(unsigned int len, int how)
+static inline struct sk_buff *bt_skb_alloc(unsigned int len, gfp_t how)
 {
        struct sk_buff *skb;
 
@@ -155,7 +146,7 @@ static inline struct sk_buff *bt_skb_alloc(unsigned int len, int how)
 }
 
 static inline struct sk_buff *bt_skb_send_alloc(struct sock *sk, unsigned long len, 
-                                                      int nb, int *err)
+                                                       int nb, int *err)
 {
        struct sk_buff *skb;
 
@@ -176,8 +167,14 @@ static inline int skb_frags_no(struct sk_buff *skb)
        return n;
 }
 
-void bt_dump(char *pref, __u8 *buf, int count);
+int bt_err(__u16 code);
+
+extern int hci_sock_init(void);
+extern int hci_sock_cleanup(void);
+
+extern int bt_sysfs_init(void);
+extern void bt_sysfs_cleanup(void);
 
-int  bt_err(__u16 code);
+extern struct class *bt_class;
 
 #endif /* __BLUETOOTH_H */