From 9889b47b5216bdcd301e2b63baf71683bcbb22af Mon Sep 17 00:00:00 2001 From: dzwdz Date: Sat, 3 Sep 2022 14:56:05 +0200 Subject: driver/ps2,serial: handle all pending reads at the same time --- src/kernel/arch/amd64/driver/util.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/kernel/arch/amd64/driver/util.h') diff --git a/src/kernel/arch/amd64/driver/util.h b/src/kernel/arch/amd64/driver/util.h index d89992a..06ca672 100644 --- a/src/kernel/arch/amd64/driver/util.h +++ b/src/kernel/arch/amd64/driver/util.h @@ -1,4 +1,5 @@ #pragma once +#include #include #include @@ -14,3 +15,7 @@ int req_readcopy(struct vfs_request *req, const void *buf, size_t len); void postqueue_join(struct vfs_request **queue, struct vfs_request *req); bool postqueue_pop(struct vfs_request **queue, void (*accept)(struct vfs_request *)); + +/** If there are any pending read requests, and the ring buffer isn't empty, fulfill them + * all with a single read. */ +void postqueue_ringreadall(struct vfs_request **queue, ring_t *r); -- cgit v1.2.3