Lines Matching defs:list

62 	struct list_head *list;
79 list = report_enum->report_list.next;
80 report = list_entry(list, struct hid_report, list);
89 list = report->list.next;
90 if (list == &report_enum->report_list)
93 report = list_entry(list, struct hid_report, list);
123 list_for_each_entry(report, &report_enum->report_list, list) {
144 struct hiddev_list *list;
148 list_for_each_entry(list, &hiddev->list, node) {
150 (list->flags & HIDDEV_FLAG_REPORT) != 0) {
151 list->buffer[list->head] = *uref;
152 list->head = (list->head + 1) &
154 kill_fasync(&list->fasync, SIGIO, POLL_IN);
207 struct hiddev_list *list = file->private_data;
209 return fasync_helper(fd, file, on, &list->fasync);
218 struct hiddev_list *list = file->private_data;
221 spin_lock_irqsave(&list->hiddev->list_lock, flags);
222 list_del(&list->node);
223 spin_unlock_irqrestore(&list->hiddev->list_lock, flags);
225 mutex_lock(&list->hiddev->existancelock);
226 if (!--list->hiddev->open) {
227 if (list->hiddev->exist) {
228 hid_hw_close(list->hiddev->hid);
229 hid_hw_power(list->hiddev->hid, PM_HINT_NORMAL);
231 mutex_unlock(&list->hiddev->existancelock);
232 kfree(list->hiddev);
233 vfree(list);
238 mutex_unlock(&list->hiddev->existancelock);
239 vfree(list);
246 struct hiddev_list *list;
251 list = vzalloc(sizeof(*list));
252 if (!list)
255 mutex_init(&list->thread_lock);
256 list->hiddev = hiddev;
269 list_add_tail(&list->node, &hiddev->list);
272 file->private_data = list;
280 vfree(list);
322 struct hiddev_list *list = file->private_data;
326 event_size = ((list->flags & HIDDEV_FLAG_UREF) != 0) ?
333 retval = mutex_lock_interruptible(&list->thread_lock);
338 if (list->head == list->tail) {
339 prepare_to_wait(&list->hiddev->wait, &wait, TASK_INTERRUPTIBLE);
341 while (list->head == list->tail) {
346 if (!list->hiddev->exist) {
356 mutex_unlock(&list->thread_lock);
358 if (mutex_lock_interruptible(&list->thread_lock)) {
359 finish_wait(&list->hiddev->wait, &wait);
364 finish_wait(&list->hiddev->wait, &wait);
369 mutex_unlock(&list->thread_lock);
374 while (list->head != list->tail &&
376 if ((list->flags & HIDDEV_FLAG_UREF) == 0) {
377 if (list->buffer[list->tail].field_index != HID_FIELD_INDEX_NONE) {
380 event.hid = list->buffer[list->tail].usage_code;
381 event.value = list->buffer[list->tail].value;
383 mutex_unlock(&list->thread_lock);
389 if (list->buffer[list->tail].field_index != HID_FIELD_INDEX_NONE ||
390 (list->flags & HIDDEV_FLAG_REPORT) != 0) {
392 if (copy_to_user(buffer + retval, list->buffer + list->tail, sizeof(struct hiddev_usage_ref))) {
393 mutex_unlock(&list->thread_lock);
399 list->tail = (list->tail + 1) & (HIDDEV_BUFFER_SIZE - 1);
403 mutex_unlock(&list->thread_lock);
414 struct hiddev_list *list = file->private_data;
416 poll_wait(file, &list->hiddev->wait, wait);
417 if (list->head != list->tail)
419 if (!list->hiddev->exist)
596 struct hiddev_list *list = file->private_data;
597 struct hiddev *hiddev = list->hiddev;
660 r = put_user(list->flags, (int __user *)arg) ?
678 list->flags = newflags;
897 INIT_LIST_HEAD(&hiddev->list);