1 void prepare_to_wait (void *, void *, int);
2 void finish_wait (void *, void *);
3 extern signed long schedule_timeout (signed long);
4 struct sock
5 {
6   unsigned char skc_state;
7   void *sk_sleep;
8   int sk_err;
9 };
10 
11 void
sk_stream_wait_connect(struct sock * sk,long * timeo_p)12 sk_stream_wait_connect (struct sock *sk, long *timeo_p)
13 {
14   int done;
15   int wait;
16   do
17     {
18       if ((1 << sk->skc_state) & ~12)
19         return;
20       prepare_to_wait (sk->sk_sleep, &wait, 1);
21       *(timeo_p) = schedule_timeout (0);
22       done = !sk->sk_err;
23       finish_wait (sk->sk_sleep, &wait);
24     }
25   while (!done);
26 }
27