From 4d6b1f03da9dace5f967919509deb106e37113ed Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 30 Apr 2010 18:33:25 +0000 Subject: [PATCH] Documented smp_cpu_rendezvous(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36556 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/smp.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/smp.cpp b/src/system/kernel/smp.cpp index e9f5e56e4b..7a7dc3479e 100644 --- a/src/system/kernel/smp.cpp +++ b/src/system/kernel/smp.cpp @@ -1076,7 +1076,17 @@ smp_wake_up_non_boot_cpus() } } -/* have all cpus spin until all have run */ + +/*! Spin until all CPUs have reached the rendez-vous point. + + The rendez-vous variable \c *var must have been initialized to 0 before the + function is called. The variable will be non-null when the function returns. + + Note that when the function returns on one CPU, it only means that all CPU + have already entered the function. It does not mean that the variable can + already be reset. Only when all CPUs have returned (which would have to be + ensured via another rendez-vous) the variable can be reset. +*/ void smp_cpu_rendezvous(volatile uint32 *var, int current_cpu) { @@ -1086,6 +1096,7 @@ smp_cpu_rendezvous(volatile uint32 *var, int current_cpu) PAUSE(); } + status_t smp_init(kernel_args *args) {