|
|
auto | zxfoundation::smp::csd::call_function_many (const ::lib::cpumask &mask, csd_fn func, void *data, u64 info, call_single_data *csd_pool, u32 pool_capacity) noexcept -> std::expected< u32, lib::kernel_error > |
| | Fan-out a synchronous callback to many CPUs at once.
|
|
auto | zxfoundation::smp::csd::call_function_single_async (u16 cpu, call_single_data *csd) noexcept -> std::expected< void, lib::kernel_error > |
| | Enqueue a pre-initialised csd onto a target CPU.
|
|
auto | zxfoundation::smp::csd::call_function_single_sync (u16 cpu, csd_fn func, void *data, u64 info) noexcept -> std::expected< void, lib::kernel_error > |
| | Synchronous single-CPU function-call IPI.
|
|
auto | zxfoundation::smp::csd::disable_cpu (u16 cpu) noexcept -> void |
| | Prevent new remote CSD enqueues to cpu and wait until all already accepted callbacks have completed on the target.
|
|
auto | zxfoundation::smp::csd::drain_cpu () noexcept -> void |
| | Drain all pending CSD nodes for the running CPU.
|
|
auto | zxfoundation::smp::csd::enable_cpu (u16 cpu) noexcept -> void |
| | Allow remote CSD enqueues to cpu after it has been initialized.
|
|
auto | zxfoundation::smp::csd::init (call_single_data &csd, csd_fn func, void *data, u64 info, u32 flags) noexcept -> void |
| | Initialise a csd before enqueue.
|
|
auto | zxfoundation::smp::csd::is_done (const call_single_data &csd) noexcept -> bool |
| | Test whether csd has completed dispatch.
|
|
auto | zxfoundation::smp::csd::lock_wait (const call_single_data &csd) noexcept -> void |
| | Wait until the target CPU has completed dispatch of csd.
|
|
auto | zxfoundation::smp::csd::pending () noexcept -> bool |
| | Test whether the running CPU has any pending csd nodes.
|
|
auto | zxfoundation::smp::csd::set_rcu_free (call_single_data &csd, void(*fn)(sync::rcu::rcu_head *) noexcept) noexcept -> void |
| | Register an RCU-freeing callback on a csd flagged with CSD_F_RCU_FREE.
|
|
auto | zxfoundation::smp::csd::stats_of (u16 cpu) noexcept -> csd_stats |
| | Read the per-CPU CSD statistics block for diagnostics.
|