Lines Matching full:pipes

126 	/* pipe ID - index into goldfish_pipe_dev::pipes array */
143 /* doubly linked list of signalled pipes, protected by
176 * - pipes, pipes_capacity
177 * - [*pipes, *pipes + pipes_capacity) - array data
182 * in all allocated pipes
186 * the only operation that happens often is the signalled pipes array
194 * Array of the pipes of |pipes_capacity| elements,
197 struct goldfish_pipe **pipes; member
203 /* Head of a doubly linked list of signalled pipes */
521 pipe = dev->pipes[id]; in signalled_pipes_add_locked()
578 /* Iterate over the signalled pipes and wake them one by one */ in goldfish_interrupt_task()
608 * 2. IRQ handler reads the signalled pipes and their count from the device
610 * it only resets the IRQ if it has returned all signalled pipes,
613 * 4. IRQ handler adds all returned pipes to the device's signalled pipes list
614 * 5. IRQ handler defers processing the signalled pipes from the list in a
627 /* Request the signalled pipes from the device */ in goldfish_pipe_interrupt()
653 if (!dev->pipes[id]) in get_free_pipe_id_locked()
662 struct goldfish_pipe **pipes = in get_free_pipe_id_locked() local
663 kcalloc(new_capacity, sizeof(*pipes), GFP_ATOMIC); in get_free_pipe_id_locked()
664 if (!pipes) in get_free_pipe_id_locked()
666 memcpy(pipes, dev->pipes, sizeof(*pipes) * dev->pipes_capacity); in get_free_pipe_id_locked()
667 kfree(dev->pipes); in get_free_pipe_id_locked()
668 dev->pipes = pipes; in get_free_pipe_id_locked()
731 dev->pipes[id] = pipe; in goldfish_pipe_open()
750 dev->pipes[id] = NULL; in goldfish_pipe_open()
769 dev->pipes[pipe->id] = NULL; in goldfish_pipe_release()
829 dev->pipes = kcalloc(dev->pipes_capacity, sizeof(*dev->pipes), in goldfish_pipe_device_init()
831 if (!dev->pipes) { in goldfish_pipe_device_init()
846 kfree(dev->pipes); in goldfish_pipe_device_init()
871 kfree(dev->pipes); in goldfish_pipe_device_deinit()
948 MODULE_DESCRIPTION("Goldfish virtual device for QEMU pipes");