Lines Matching full:pipes
127 /* pipe ID - index into goldfish_pipe_dev::pipes array */
144 /* doubly linked list of signalled pipes, protected by
177 * - pipes, pipes_capacity
178 * - [*pipes, *pipes + pipes_capacity) - array data
183 * in all allocated pipes
187 * the only operation that happens often is the signalled pipes array
195 * Array of the pipes of |pipes_capacity| elements,
198 struct goldfish_pipe **pipes; member
204 /* Head of a doubly linked list of signalled pipes */
522 pipe = dev->pipes[id]; in signalled_pipes_add_locked()
579 /* Iterate over the signalled pipes and wake them one by one */ in goldfish_interrupt_task()
609 * 2. IRQ handler reads the signalled pipes and their count from the device
611 * it only resets the IRQ if it has returned all signalled pipes,
614 * 4. IRQ handler adds all returned pipes to the device's signalled pipes list
615 * 5. IRQ handler defers processing the signalled pipes from the list in a
628 /* Request the signalled pipes from the device */ in goldfish_pipe_interrupt()
654 if (!dev->pipes[id]) in get_free_pipe_id_locked()
663 struct goldfish_pipe **pipes = in get_free_pipe_id_locked() local
664 kcalloc(new_capacity, sizeof(*pipes), GFP_ATOMIC); in get_free_pipe_id_locked()
665 if (!pipes) in get_free_pipe_id_locked()
667 memcpy(pipes, dev->pipes, sizeof(*pipes) * dev->pipes_capacity); in get_free_pipe_id_locked()
668 kfree(dev->pipes); in get_free_pipe_id_locked()
669 dev->pipes = pipes; in get_free_pipe_id_locked()
732 dev->pipes[id] = pipe; in goldfish_pipe_open()
751 dev->pipes[id] = NULL; in goldfish_pipe_open()
770 dev->pipes[pipe->id] = NULL; in goldfish_pipe_release()
830 dev->pipes = kcalloc(dev->pipes_capacity, sizeof(*dev->pipes), in goldfish_pipe_device_init()
832 if (!dev->pipes) { in goldfish_pipe_device_init()
847 kfree(dev->pipes); in goldfish_pipe_device_init()
872 kfree(dev->pipes); in goldfish_pipe_device_deinit()
949 MODULE_DESCRIPTION("Goldfish virtual device for QEMU pipes");