|
| struct | ALIGNED (64) irp |
| |
| irp_pool_t * | irp_pool_new (size_t size, process_t *process, void *ctx) |
| | Allocate a new IRP pool.
|
| |
| void | irp_pool_free (irp_pool_t *pool) |
| | Free a IRP pool.
|
| |
| void | irp_timeout_add (irp_t *irp, clock_t timeout) |
| | Add an IRP to a per-CPU timeout queue.
|
| |
| void | irp_timeout_remove (irp_t *irp) |
| | Remove an IRP from its per-CPU timeout queue.
|
| |
| void | irp_timeouts_check (void) |
| | Check and handle expired IRP timeouts on the current CPU.
|
| |
| irp_t * | irp_new (irp_pool_t *pool) |
| | Allocate a new IRP from a pool.
|
| |
| mdl_t * | irp_get_mdl (irp_t *irp, const void *addr, size_t size) |
| | Retrieve a memory descriptor list and associate it with an IRP.
|
| |
| static irp_pool_t * | irp_get_pool (irp_t *irp) |
| | Retrieve the IRP pool that an IRP was allocated from.
|
| |
| static void * | irp_get_ctx (irp_t *irp) |
| | Retrieve the context of the IRP pool that an IRP was allocated from.
|
| |
| static process_t * | irp_get_process (irp_t *irp) |
| | Retrieve the process that owns an IRP.
|
| |
| static irp_t * | irp_chain_next (irp_t *irp) |
| | Retrieve the next IRP in a chain and advance the chain.
|
| |
| uint64_t | irp_cancel (irp_t *irp) |
| | Attempt to cancel an IRP.
|
| |
| static irp_cancel_t | irp_set_cancel (irp_t *irp, irp_cancel_t cancel) |
| | Set the cancellation callback for an IRP.
|
| |
| static irp_frame_t * | irp_current (irp_t *irp) |
| | Retrieve the current frame in the IRP stack.
|
| |
| static irp_frame_t * | irp_next (irp_t *irp) |
| | Retrieve the next frame in the IRP stack.
|
| |
| static void | irp_copy_to_next (irp_t *irp) |
| | Copy the current frame in the IRP stack to the next.
|
| |
| static void | irp_skip (irp_t *irp) |
| | Skip the current stack frame, meaning the next call will run in the same stack frame.
|
| |
| void | irp_call (irp_t *irp, vnode_t *vnode) |
| | Send an IRP to a specified vnode.
|
| |
| void | irp_call_direct (irp_t *irp, irp_func_t func) |
| | Send an IRP to a specified function directly.
|
| |
| void | irp_complete (irp_t *irp) |
| | Complete the current frame in the IRP stack.
|
| |
| static void | irp_set_complete (irp_t *irp, irp_complete_t complete, void *ctx) |
| | Set the completion callback and context for the next frame in the IRP stack.
|
| |
| static void | irp_error (irp_t *irp, uint8_t err) |
| | Helper to set an error code and complete the IRP.
|
| |
| static void | irp_prepare_generic (irp_t *irp, irp_major_t major, uint64_t arg0, uint64_t arg1, uint64_t arg2, uint64_t arg3) |
| | Prepares the next IRP stack frame for a generic operation.
|
| |
| static void | irp_prepare_read (irp_t *irp, mdl_t *buffer, void *data, uint64_t off, uint32_t len, mode_t mode) |
| | Prepares the next IRP stack frame for a read operation.
|
| |
| static void | irp_prepare_write (irp_t *irp, mdl_t *buffer, void *data, uint64_t off, uint32_t len, mode_t mode) |
| | Prepares the next IRP stack frame for a write operation.
|
| |