Lines Matching refs:winch
736 struct winch {
746 struct winch *winch = data;
752 if(winch->fd != -1){
753 err = generic_read(winch->fd, &c, NULL);
759 winch->tty_fd);
765 tty = winch->tty;
773 if(winch->fd != -1)
774 reactivate_fd(winch->fd, WINCH_IRQ);
780 struct winch *winch;
782 winch = kmalloc(sizeof(*winch), GFP_KERNEL);
783 if (winch == NULL) {
788 *winch = ((struct winch) { .list = LIST_HEAD_INIT(winch->list),
795 list_add(&winch->list, &winch_handlers);
800 "winch", winch) < 0)
804 static void free_winch(struct winch *winch)
806 list_del(&winch->list);
808 if(winch->pid != -1)
809 os_kill_process(winch->pid, 1);
810 if(winch->fd != -1)
811 os_close_file(winch->fd);
813 free_irq(WINCH_IRQ, winch);
814 kfree(winch);
820 struct winch *winch;
825 winch = list_entry(ele, struct winch, list);
826 if(winch->tty == tty){
827 free_winch(winch);
837 struct winch *winch;
842 winch = list_entry(ele, struct winch, list);
843 free_winch(winch);