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() 18 { 19 int ncpus; 20 int i; 21 22 smp_init(); 23 24 ncpus = cpu_count(); 25 printf("found %d cpus\n", ncpus); 26 for (i = 0; i < ncpus; ++i) 27 on_cpu(i, ipi_test, (void *)(long)i); 28 29 report("IPI to each CPU", nipis == ncpus); 30 return report_summary(); 31 } 32