166458Sdfr/* 266458Sdfr * $FreeBSD$ 366458Sdfr */ 466458Sdfr#ifndef _MACHINE_SMP_H_ 566458Sdfr#define _MACHINE_SMP_H_ 666458Sdfr 766458Sdfr#ifdef _KERNEL 866458Sdfr 9205234Smarcel#define IPI_AST ia64_ipi_ast 10223526Smarcel#define IPI_HARDCLOCK ia64_ipi_hardclock 11205234Smarcel#define IPI_PREEMPT ia64_ipi_preempt 12205234Smarcel#define IPI_RENDEZVOUS ia64_ipi_rndzvs 13205234Smarcel#define IPI_STOP ia64_ipi_stop 14205234Smarcel#define IPI_STOP_HARD ia64_ipi_nmi 1566458Sdfr 1666458Sdfr#ifndef LOCORE 1766458Sdfr 18222813Sattilio#include <sys/_cpuset.h> 19222813Sattilio 20148807Smarcelstruct pcpu; 21148807Smarcel 22221271Smarcelstruct ia64_ap_state { 23221271Smarcel uint64_t as_trace; 24221271Smarcel uint64_t as_pgtbl_pte; 25221271Smarcel uint64_t as_pgtbl_itir; 26221271Smarcel uint64_t as_text_va; 27221271Smarcel uint64_t as_text_pte; 28221271Smarcel uint64_t as_text_itir; 29221271Smarcel uint64_t as_data_va; 30221271Smarcel uint64_t as_data_pte; 31221271Smarcel uint64_t as_data_itir; 32221271Smarcel void *as_kstack; 33221271Smarcel void *as_kstack_top; 34221271Smarcel struct pcpu *as_pcpu; 35221271Smarcel volatile int as_delay; 36221271Smarcel volatile u_int as_awake; 37221271Smarcel volatile u_int as_spin; 38221271Smarcel}; 39221271Smarcel 40205234Smarcelextern int ia64_ipi_ast; 41223526Smarcelextern int ia64_ipi_hardclock; 42205234Smarcelextern int ia64_ipi_highfp; 43205234Smarcelextern int ia64_ipi_nmi; 44205234Smarcelextern int ia64_ipi_preempt; 45205234Smarcelextern int ia64_ipi_rndzvs; 46205234Smarcelextern int ia64_ipi_stop; 47205234Smarcelextern int ia64_ipi_wakeup; 4866458Sdfr 4985656Smarcelvoid ipi_all_but_self(int ipi); 50210939Sjhbvoid ipi_cpu(int cpu, u_int ipi); 51222813Sattiliovoid ipi_selected(cpuset_t cpus, int ipi); 52148807Smarcelvoid ipi_send(struct pcpu *, int ipi); 5366458Sdfr 5466458Sdfr#endif /* !LOCORE */ 5566458Sdfr#endif /* _KERNEL */ 5676078Sjhb#endif /* !_MACHINE_SMP_H */ 57