Lines Matching refs:ftick

85 #define FUSE_ASSERT_AW_DONE(ftick)                                      \
86 KASSERT((ftick)->tk_aw_link.tqe_next == NULL && \
87 (ftick)->tk_aw_link.tqe_prev == NULL, \
88 ("FUSE: ticket still on answer delivery list %p", (ftick))) \
90 #define FUSE_ASSERT_MS_DONE(ftick) \
91 KASSERT((ftick)->tk_ms_link.stqe_next == NULL, \
92 ("FUSE: ticket still on message list %p", (ftick)))
97 typedef int fuse_handler_t(struct fuse_ticket *ftick, struct uio *uio);
131 fticket_resp(struct fuse_ticket *ftick)
133 return (&ftick->tk_aw_fiov);
138 fticket_answered(struct fuse_ticket *ftick)
140 DEBUGX(FUSE_DEBUG_IPC, "-> ftick=%p\n", ftick);
141 mtx_assert(&ftick->tk_aw_mtx, MA_OWNED);
142 return (ftick->tk_flag & FT_ANSW);
147 fticket_set_answered(struct fuse_ticket *ftick)
149 DEBUGX(FUSE_DEBUG_IPC, "-> ftick=%p\n", ftick);
150 mtx_assert(&ftick->tk_aw_mtx, MA_OWNED);
151 ftick->tk_flag |= FT_ANSW;
156 fticket_opcode(struct fuse_ticket *ftick)
158 DEBUGX(FUSE_DEBUG_IPC, "-> ftick=%p\n", ftick);
159 return (((struct fuse_in_header *)(ftick->tk_ms_fiov.base))->opcode);
162 int fticket_pull(struct fuse_ticket *ftick, struct uio *uio);
273 fuse_ms_push(struct fuse_ticket *ftick)
275 DEBUGX(FUSE_DEBUG_IPC, "ftick=%p refcount=%d\n",
276 ftick, ftick->tk_refcount + 1);
277 mtx_assert(&ftick->tk_data->ms_mtx, MA_OWNED);
278 refcount_acquire(&ftick->tk_refcount);
279 STAILQ_INSERT_TAIL(&ftick->tk_data->ms_head, ftick, tk_ms_link);
286 struct fuse_ticket *ftick = NULL;
290 if ((ftick = STAILQ_FIRST(&data->ms_head))) {
293 ftick->tk_ms_link.stqe_next = NULL;
296 DEBUGX(FUSE_DEBUG_IPC, "ftick=%p refcount=%d\n",
297 ftick, ftick ? ftick->tk_refcount : -1);
299 return ftick;
304 fuse_aw_push(struct fuse_ticket *ftick)
306 DEBUGX(FUSE_DEBUG_IPC, "ftick=%p refcount=%d\n",
307 ftick, ftick->tk_refcount + 1);
308 mtx_assert(&ftick->tk_data->aw_mtx, MA_OWNED);
309 refcount_acquire(&ftick->tk_refcount);
310 TAILQ_INSERT_TAIL(&ftick->tk_data->aw_head, ftick, tk_aw_link);
315 fuse_aw_remove(struct fuse_ticket *ftick)
317 DEBUGX(FUSE_DEBUG_IPC, "ftick=%p refcount=%d\n",
318 ftick, ftick->tk_refcount);
319 mtx_assert(&ftick->tk_data->aw_mtx, MA_OWNED);
320 TAILQ_REMOVE(&ftick->tk_data->aw_head, ftick, tk_aw_link);
322 ftick->tk_aw_link.tqe_next = NULL;
323 ftick->tk_aw_link.tqe_prev = NULL;
331 struct fuse_ticket *ftick = NULL;
335 if ((ftick = TAILQ_FIRST(&data->aw_head))) {
336 fuse_aw_remove(ftick);
338 DEBUGX(FUSE_DEBUG_IPC, "ftick=%p refcount=%d\n",
339 ftick, ftick ? ftick->tk_refcount : -1);
341 return ftick;
345 int fuse_ticket_drop(struct fuse_ticket *ftick);
346 void fuse_insert_callback(struct fuse_ticket *ftick, fuse_handler_t *handler);
347 void fuse_insert_message(struct fuse_ticket *ftick);
393 DEBUGX(FUSE_DEBUG_IPC, "-> fdisp=%p, ftick=%p\n", fdisp, fdisp->tick);