af_bluetooth.c (62910554656cdcd6b6f84a5154c4155aae4ca231) af_bluetooth.c (aa395145165cb06a0d0885221bbe0ce4a564391d)
1/*
2 BlueZ - Bluetooth protocol stack for Linux
3 Copyright (C) 2000-2001 Qualcomm Incorporated
4
5 Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License version 2 as

--- 274 unchanged lines hidden (view full) ---

283
284unsigned int bt_sock_poll(struct file * file, struct socket *sock, poll_table *wait)
285{
286 struct sock *sk = sock->sk;
287 unsigned int mask = 0;
288
289 BT_DBG("sock %p, sk %p", sock, sk);
290
1/*
2 BlueZ - Bluetooth protocol stack for Linux
3 Copyright (C) 2000-2001 Qualcomm Incorporated
4
5 Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License version 2 as

--- 274 unchanged lines hidden (view full) ---

283
284unsigned int bt_sock_poll(struct file * file, struct socket *sock, poll_table *wait)
285{
286 struct sock *sk = sock->sk;
287 unsigned int mask = 0;
288
289 BT_DBG("sock %p, sk %p", sock, sk);
290
291 poll_wait(file, sk->sk_sleep, wait);
291 poll_wait(file, sk_sleep(sk), wait);
292
293 if (sk->sk_state == BT_LISTEN)
294 return bt_accept_poll(sk);
295
296 if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue))
297 mask |= POLLERR;
298
299 if (sk->sk_shutdown & RCV_SHUTDOWN)

--- 73 unchanged lines hidden (view full) ---

373
374int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo)
375{
376 DECLARE_WAITQUEUE(wait, current);
377 int err = 0;
378
379 BT_DBG("sk %p", sk);
380
292
293 if (sk->sk_state == BT_LISTEN)
294 return bt_accept_poll(sk);
295
296 if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue))
297 mask |= POLLERR;
298
299 if (sk->sk_shutdown & RCV_SHUTDOWN)

--- 73 unchanged lines hidden (view full) ---

373
374int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo)
375{
376 DECLARE_WAITQUEUE(wait, current);
377 int err = 0;
378
379 BT_DBG("sk %p", sk);
380
381 add_wait_queue(sk->sk_sleep, &wait);
381 add_wait_queue(sk_sleep(sk), &wait);
382 while (sk->sk_state != state) {
383 set_current_state(TASK_INTERRUPTIBLE);
384
385 if (!timeo) {
386 err = -EINPROGRESS;
387 break;
388 }
389

--- 6 unchanged lines hidden (view full) ---

396 timeo = schedule_timeout(timeo);
397 lock_sock(sk);
398
399 err = sock_error(sk);
400 if (err)
401 break;
402 }
403 set_current_state(TASK_RUNNING);
382 while (sk->sk_state != state) {
383 set_current_state(TASK_INTERRUPTIBLE);
384
385 if (!timeo) {
386 err = -EINPROGRESS;
387 break;
388 }
389

--- 6 unchanged lines hidden (view full) ---

396 timeo = schedule_timeout(timeo);
397 lock_sock(sk);
398
399 err = sock_error(sk);
400 if (err)
401 break;
402 }
403 set_current_state(TASK_RUNNING);
404 remove_wait_queue(sk->sk_sleep, &wait);
404 remove_wait_queue(sk_sleep(sk), &wait);
405 return err;
406}
407EXPORT_SYMBOL(bt_sock_wait_state);
408
409static struct net_proto_family bt_sock_family_ops = {
410 .owner = THIS_MODULE,
411 .family = PF_BLUETOOTH,
412 .create = bt_sock_create,

--- 42 unchanged lines hidden ---
405 return err;
406}
407EXPORT_SYMBOL(bt_sock_wait_state);
408
409static struct net_proto_family bt_sock_family_ops = {
410 .owner = THIS_MODULE,
411 .family = PF_BLUETOOTH,
412 .create = bt_sock_create,

--- 42 unchanged lines hidden ---