1/* $FreeBSD$ */ 2 3#ifndef _MACHINE_SMP_H_ 4#define _MACHINE_SMP_H_ 5 6#include <sys/_cpuset.h> 7#include <machine/pcb.h> 8 9enum { 10 IPI_AST, 11 IPI_PREEMPT, 12 IPI_RENDEZVOUS, 13 IPI_STOP, 14 IPI_STOP_HARD = IPI_STOP, /* These are synonyms on arm. */ 15 IPI_HARDCLOCK, 16 IPI_TLB, /* Not used now, but keep it reserved. */ 17 IPI_CACHE, /* Not used now, but keep it reserved. */ 18 INTR_IPI_COUNT 19}; 20 21void init_secondary(int cpu); 22void mpentry(void); 23 24void ipi_all_but_self(u_int ipi); 25void ipi_cpu(int cpu, u_int ipi); 26void ipi_selected(cpuset_t cpus, u_int ipi); 27 28/* Platform interface */ 29void platform_mp_setmaxid(void); 30void platform_mp_start_ap(void); 31 32/* global data in mp_machdep.c */ 33extern struct pcb stoppcbs[]; 34 35#endif /* !_MACHINE_SMP_H_ */ 36