1 #include "libcflat.h" 2 #include "smp.h" 3 4 unsigned nipis; 5 6 static void ipi_test(void *data) 7 { 8 int n = (long)data; 9 10 printf("ipi called, cpu %d\n", n); 11 if (n != smp_id()) 12 printf("but wrong cpu %d\n", smp_id()); 13 else 14 nipis++; 15 } 16 17 int main(void) 18 { 19 int ncpus; 20 int i; 21 22 ncpus = cpu_count(); 23 printf("found %d cpus\n", ncpus); 24 for (i = 0; i < ncpus; ++i) 25 on_cpu(i, ipi_test, (void *)(long)i); 26 27 report(nipis == ncpus, "IPI to each CPU"); 28 return report_summary(); 29 } 30