|
PatchworkOS
19e446b
A non-POSIX operating system.
|
#include <kernel/cpu/cpu.h>#include <kernel/fs/namespace.h>#include <kernel/io/irp.h>#include <kernel/log/log.h>#include <kernel/log/panic.h>#include <kernel/mem/mdl.h>#include <kernel/mem/pool.h>#include <kernel/proc/process.h>#include <kernel/sched/clock.h>#include <kernel/sched/timer.h>#include <kernel/sched/wait.h>#include <kernel/sync/lock.h>#include <stdatomic.h>#include <string.h>#include <kernel/cpu/percpu.h>Go to the source code of this file.
Data Structures | |
| struct | irp_ctx_t |
Functions | |
| PERCPU_DEFINE_CTOR (irp_ctx_t, pcpu_irps) | |
| 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. | |
| static void | irp_perform_completion (irp_t *irp) |
| 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. | |
| 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. | |
| uint64_t | irp_cancel (irp_t *irp) |
| Attempt to cancel an IRP. | |
| void | irp_complete (irp_t *irp) |
| Complete the current frame in the IRP stack. | |
| PERCPU_DEFINE_CTOR | ( | irp_ctx_t | , |
| pcpu_irps | |||
| ) |