Home | History | Annotate | Download | only in qemu

Lines Matching refs:ioh

56     IOHandlerRecord *ioh;
59 QLIST_FOREACH(ioh, &io_handlers, next) {
60 if (ioh->fd == fd) {
61 ioh->deleted = 1;
66 QLIST_FOREACH(ioh, &io_handlers, next) {
67 if (ioh->fd == fd)
70 ioh = qemu_mallocz(sizeof(IOHandlerRecord));
71 QLIST_INSERT_HEAD(&io_handlers, ioh, next);
73 ioh->fd = fd;
74 ioh->fd_read_poll = fd_read_poll;
75 ioh->fd_read = fd_read;
76 ioh->fd_write = fd_write;
77 ioh->opaque = opaque;
78 ioh->deleted = 0;
93 IOHandlerRecord *ioh;
95 QLIST_FOREACH(ioh, &io_handlers, next) {
96 if (ioh->deleted)
98 if (ioh->fd_read &&
99 (!ioh->fd_read_poll ||
100 ioh->fd_read_poll(ioh->opaque) != 0)) {
101 FD_SET(ioh->fd, readfds);
102 if (ioh->fd > *pnfds)
103 *pnfds = ioh->fd;
105 if (ioh->fd_write) {
106 FD_SET(ioh->fd, writefds);
107 if (ioh->fd > *pnfds)
108 *pnfds = ioh->fd;
116 IOHandlerRecord *pioh, *ioh;
118 QLIST_FOREACH_SAFE(ioh, &io_handlers, next, pioh) {
119 if (!ioh->deleted && ioh->fd_read && FD_ISSET(ioh->fd, readfds)) {
120 ioh->fd_read(ioh->opaque);
122 if (!ioh->deleted && ioh->fd_write && FD_ISSET(ioh->fd, writefds)) {
123 ioh->fd_write(ioh->opaque);
127 if (ioh->deleted) {
128 QLIST_REMOVE(ioh, next);
129 qemu_free(ioh);