|
@@ -25,7 +25,7 @@ struct wait_bit_key {
|
|
void *flags;
|
|
void *flags;
|
|
int bit_nr;
|
|
int bit_nr;
|
|
#define WAIT_ATOMIC_T_BIT_NR -1
|
|
#define WAIT_ATOMIC_T_BIT_NR -1
|
|
- unsigned long private;
|
|
|
|
|
|
+ unsigned long timeout;
|
|
};
|
|
};
|
|
|
|
|
|
struct wait_bit_queue {
|
|
struct wait_bit_queue {
|
|
@@ -154,6 +154,7 @@ int __wait_on_bit_lock(wait_queue_head_t *, struct wait_bit_queue *, wait_bit_ac
|
|
void wake_up_bit(void *, int);
|
|
void wake_up_bit(void *, int);
|
|
void wake_up_atomic_t(atomic_t *);
|
|
void wake_up_atomic_t(atomic_t *);
|
|
int out_of_line_wait_on_bit(void *, int, wait_bit_action_f *, unsigned);
|
|
int out_of_line_wait_on_bit(void *, int, wait_bit_action_f *, unsigned);
|
|
|
|
+int out_of_line_wait_on_bit_timeout(void *, int, wait_bit_action_f *, unsigned, unsigned long);
|
|
int out_of_line_wait_on_bit_lock(void *, int, wait_bit_action_f *, unsigned);
|
|
int out_of_line_wait_on_bit_lock(void *, int, wait_bit_action_f *, unsigned);
|
|
int out_of_line_wait_on_atomic_t(atomic_t *, int (*)(atomic_t *), unsigned);
|
|
int out_of_line_wait_on_atomic_t(atomic_t *, int (*)(atomic_t *), unsigned);
|
|
wait_queue_head_t *bit_waitqueue(void *, int);
|
|
wait_queue_head_t *bit_waitqueue(void *, int);
|
|
@@ -859,6 +860,8 @@ int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
|
|
|
|
|
|
extern int bit_wait(struct wait_bit_key *);
|
|
extern int bit_wait(struct wait_bit_key *);
|
|
extern int bit_wait_io(struct wait_bit_key *);
|
|
extern int bit_wait_io(struct wait_bit_key *);
|
|
|
|
+extern int bit_wait_timeout(struct wait_bit_key *);
|
|
|
|
+extern int bit_wait_io_timeout(struct wait_bit_key *);
|
|
|
|
|
|
/**
|
|
/**
|
|
* wait_on_bit - wait for a bit to be cleared
|
|
* wait_on_bit - wait for a bit to be cleared
|