Wait for a bit to be cleared
int wait_on_bit(void * word, int bit, int (*action) (void *), unsigned mode);
word
the word being waited on, a kernel virtual address
bit
the bit of the word being waited on
action
the function used to sleep, which may take special actions
mode
the task state to sleep in
There is a standard hashed waitqueue table for generic use. This is the part of the hashtable's accessor API that waits on a bit. For instance, if one were to have waiters on a bitflag, one would call wait_on_bit in threads waiting for the bit to clear. One uses wait_on_bit where one is waiting for the bit to clear, but has no intention of setting it.