void qp_interrupt(int cpl, void *dev_id, struct pt_regs * regs) { int head; int maxhead; // TRACER __u32 seed; head = queue->head; maxhead = (queue->tail-1) & (2048 -1); add_mouse_randomness(seed /* queue->buf[head] = inb(qp_data) */); if (head != maxhead) { head++; head = head & 2048 -1; } queue->head = head; if (queue->fasync) kill_fasync(queue->fasync, 29 , 1 ); __wake_up(( &queue->proc_list ),1 ) ; }
void __wake_up_bit(wait_queue_head_t *wq, void *word, int bit) { struct wait_bit_key key = __WAIT_BIT_KEY_INITIALIZER(word, bit); if (waitqueue_active(wq)) __wake_up(wq, TASK_NORMAL, 1, &key); }
void fastcall __wake_up_bit(wait_queue_head_t *wq, void *word, int bit) { struct wait_bit_key key = __WAIT_BIT_KEY_INITIALIZER(word, bit); if (waitqueue_active(wq)) __wake_up(wq, TASK_INTERRUPTIBLE|TASK_UNINTERRUPTIBLE, 1, &key); }
void extract_entropy(void) { xfer_secondary_pool(); __wake_up(); }