]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - include/net/bluetooth/hci_core.h
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / include / net / bluetooth / hci_core.h
index ebec8c9a929dce74d022f16dcf02aa56a17ac640..d2cf88407690e432f80938985d7cbcf4fb16d0ed 100644 (file)
@@ -44,15 +44,15 @@ struct inquiry_data {
 };
 
 struct inquiry_entry {
-       struct inquiry_entry    *next;
+       struct inquiry_entry    *next;
        __u32                   timestamp;
        struct inquiry_data     data;
 };
 
 struct inquiry_cache {
-       spinlock_t              lock;
+       spinlock_t              lock;
        __u32                   timestamp;
-       struct inquiry_entry    *list;
+       struct inquiry_entry    *list;
 };
 
 struct hci_conn_hash {
@@ -129,6 +129,7 @@ struct hci_dev {
        wait_queue_head_t       req_wait_q;
        __u32                   req_status;
        __u32                   req_result;
+       __u16                   req_last_cmd;
 
        struct inquiry_cache    inq_cache;
        struct hci_conn_hash    conn_hash;
@@ -141,7 +142,7 @@ struct hci_dev {
        void                    *driver_data;
        void                    *core_data;
 
-       atomic_t                promisc;
+       atomic_t                promisc;
 
        struct dentry           *debugfs;
 
@@ -150,7 +151,7 @@ struct hci_dev {
 
        struct rfkill           *rfkill;
 
-       struct module           *owner;
+       struct module           *owner;
 
        int (*open)(struct hci_dev *hdev);
        int (*close)(struct hci_dev *hdev);
@@ -183,6 +184,7 @@ struct hci_conn {
        __u32            link_mode;
        __u8             auth_type;
        __u8             sec_level;
+       __u8             pending_sec_level;
        __u8             power_save;
        __u16            disc_timeout;
        unsigned long    pend;
@@ -215,8 +217,8 @@ extern rwlock_t hci_dev_list_lock;
 extern rwlock_t hci_cb_list_lock;
 
 /* ----- Inquiry cache ----- */
-#define INQUIRY_CACHE_AGE_MAX   (HZ*30)   // 30 seconds
-#define INQUIRY_ENTRY_AGE_MAX   (HZ*60)   // 60 seconds
+#define INQUIRY_CACHE_AGE_MAX   (HZ*30)   /* 30 seconds */
+#define INQUIRY_ENTRY_AGE_MAX   (HZ*60)   /* 60 seconds */
 
 #define inquiry_cache_lock(c)          spin_lock(&c->lock)
 #define inquiry_cache_unlock(c)                spin_unlock(&c->lock)
@@ -660,6 +662,11 @@ void hci_si_event(struct hci_dev *hdev, int type, int dlen, void *data);
 /* ----- HCI Sockets ----- */
 void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb);
 
+/* Management interface */
+int mgmt_control(struct sock *sk, struct msghdr *msg, size_t len);
+int mgmt_index_added(u16 index);
+int mgmt_index_removed(u16 index);
+
 /* HCI info for socket */
 #define hci_pi(sk) ((struct hci_pinfo *) sk)
 
@@ -668,6 +675,7 @@ struct hci_pinfo {
        struct hci_dev    *hdev;
        struct hci_filter filter;
        __u32             cmsg_mask;
+       unsigned short   channel;
 };
 
 /* HCI security filter */
@@ -687,6 +695,6 @@ struct hci_sec_filter {
 #define hci_req_lock(d)                mutex_lock(&d->req_lock)
 #define hci_req_unlock(d)      mutex_unlock(&d->req_lock)
 
-void hci_req_complete(struct hci_dev *hdev, int result);
+void hci_req_complete(struct hci_dev *hdev, __u16 cmd, int result);
 
 #endif /* __HCI_CORE_H */