patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / net / bluetooth / hci_conn.c
index 962ce3a..51976db 100644 (file)
    SOFTWARE IS DISCLAIMED.
 */
 
-/*
- * HCI Connection handling.
- *
- * $Id: hci_conn.c,v 1.2 2002/04/17 17:37:16 maxk Exp $
- */
+/* Bluetooth HCI connection handling. */
 
 #include <linux/config.h>
 #include <linux/module.h>
@@ -54,7 +50,7 @@
 
 #ifndef CONFIG_BT_HCI_CORE_DEBUG
 #undef  BT_DBG
-#define BT_DBG( A... )
+#define BT_DBG(D...)
 #endif
 
 void hci_acl_connect(struct hci_conn *conn)
@@ -178,10 +174,10 @@ struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst)
 
 int hci_conn_del(struct hci_conn *conn)
 {
-       struct hci_dev  *hdev = conn->hdev;
+       struct hci_dev *hdev = conn->hdev;
 
        BT_DBG("%s conn %p handle %d", hdev->name, conn, conn->handle);
-       
+
        hci_conn_del_timer(conn);
 
        if (conn->type == SCO_LINK) {
@@ -226,14 +222,14 @@ struct hci_dev *hci_get_route(bdaddr_t *dst, bdaddr_t *src)
 
        list_for_each(p, &hci_dev_list) {
                struct hci_dev *d = list_entry(p, struct hci_dev, list);
-               
+
                if (!test_bit(HCI_UP, &d->flags))
                        continue;
 
                /* Simple routing: 
-                *      No source address - find interface with bdaddr != dst 
-                *      Source address    - find interface with bdaddr == src 
-                */
+                *   No source address - find interface with bdaddr != dst
+                *   Source address    - find interface with bdaddr == src
+                */
 
                if (use_src) {
                        if (!bacmp(&d->bdaddr, src)) {
@@ -252,6 +248,7 @@ struct hci_dev *hci_get_route(bdaddr_t *dst, bdaddr_t *src)
        read_unlock_bh(&hci_dev_list_lock);
        return hdev;
 }
+EXPORT_SYMBOL(hci_get_route);
 
 /* Create SCO or ACL connection.
  * Device _must_ be locked */
@@ -294,15 +291,16 @@ struct hci_conn * hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst)
                return acl;
        }
 }
+EXPORT_SYMBOL(hci_connect);
 
 /* Authenticate remote device */
 int hci_conn_auth(struct hci_conn *conn)
 {
        BT_DBG("conn %p", conn);
-       
+
        if (conn->link_mode & HCI_LM_AUTH)
                return 1;
-       
+
        if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->pend)) {
                struct hci_cp_auth_requested cp;
                cp.handle = __cpu_to_le16(conn->handle);
@@ -310,15 +308,16 @@ int hci_conn_auth(struct hci_conn *conn)
        }
        return 0;
 }
+EXPORT_SYMBOL(hci_conn_auth);
 
 /* Enable encryption */
 int hci_conn_encrypt(struct hci_conn *conn)
 {
        BT_DBG("conn %p", conn);
-       
+
        if (conn->link_mode & HCI_LM_ENCRYPT)
                return 1;
-       
+
        if (test_and_set_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend))
                return 0;
 
@@ -330,12 +329,13 @@ int hci_conn_encrypt(struct hci_conn *conn)
        }
        return 0;
 }
+EXPORT_SYMBOL(hci_conn_encrypt);
 
 /* Drop all connection on the device */
 void hci_conn_hash_flush(struct hci_dev *hdev)
 {
        struct hci_conn_hash *h = &hdev->conn_hash;
-        struct list_head *p;
+       struct list_head *p;
 
        BT_DBG("hdev %s", hdev->name);
 
@@ -353,7 +353,7 @@ void hci_conn_hash_flush(struct hci_dev *hdev)
        }
 }
 
-int hci_get_conn_list(unsigned long arg)
+int hci_get_conn_list(void __user *arg)
 {
        struct hci_conn_list_req req, *cl;
        struct hci_conn_info *ci;
@@ -361,7 +361,7 @@ int hci_get_conn_list(unsigned long arg)
        struct list_head *p;
        int n = 0, size, err;
 
-       if (copy_from_user(&req, (void *) arg, sizeof(req)))
+       if (copy_from_user(&req, arg, sizeof(req)))
                return -EFAULT;
 
        if (!req.conn_num || req.conn_num > (PAGE_SIZE * 2) / sizeof(*ci))
@@ -401,20 +401,20 @@ int hci_get_conn_list(unsigned long arg)
 
        hci_dev_put(hdev);
 
-       err = copy_to_user((void *) arg, cl, size);
+       err = copy_to_user(arg, cl, size);
        kfree(cl);
 
        return err ? -EFAULT : 0;
 }
 
-int hci_get_conn_info(struct hci_dev *hdev, unsigned long arg)
+int hci_get_conn_info(struct hci_dev *hdev, void __user *arg)
 {
        struct hci_conn_info_req req;
        struct hci_conn_info ci;
        struct hci_conn *conn;
-       char *ptr = (void *) arg + sizeof(req);
+       char __user *ptr = arg + sizeof(req);
 
-       if (copy_from_user(&req, (void *) arg, sizeof(req)))
+       if (copy_from_user(&req, arg, sizeof(req)))
                return -EFAULT;
 
        hci_dev_lock_bh(hdev);