From 4f7cf6b416ccede492ace64533ab35a9a289f463 Mon Sep 17 00:00:00 2001 From: "Luke T. Shumaker" Date: Fri, 4 Oct 2024 19:38:42 -0600 Subject: wip --- lib9p/include/lib9p/srv.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib9p/include') diff --git a/lib9p/include/lib9p/srv.h b/lib9p/include/lib9p/srv.h index 0211260..d2ada62 100644 --- a/lib9p/include/lib9p/srv.h +++ b/lib9p/include/lib9p/srv.h @@ -10,8 +10,23 @@ struct lib9p_srv_reqctx { struct lib9p_ctx *base; uint32_t uid; char *uname; + + cr_chan_t(bool) _flushch; }; +static inline bool flush_requested(struct lib9p_srv_reqctx *ctx) { + assert(ctx); + return cr_chan_can_write(&ctx->_flushch); +} + +static inline int acknowledge_flush(struct lib9p_srv_reqctx *ctx) { + assert(ctx); + assert(cr_chan_can_send(&ctx->_flushch)); + lib9p_error(ctx->base, LINUX_ECANCELED, "request canceled by flush"); + cr_chan_send(&ctx->_flushch, true); + return -1; +} + /* vtables you must implement *************************************************/ struct lib9p_srv_file_vtable { -- cgit v1.2.3-2-g168b