117696c12SRuslan Bukin /*- 217696c12SRuslan Bukin * Copyright (c) 2016 Ruslan Bukin <br@bsdpad.com> 317696c12SRuslan Bukin * All rights reserved. 417696c12SRuslan Bukin * 517696c12SRuslan Bukin * Portions of this software were developed by SRI International and the 617696c12SRuslan Bukin * University of Cambridge Computer Laboratory under DARPA/AFRL contract 717696c12SRuslan Bukin * FA8750-10-C-0237 ("CTSRD"), as part of the DARPA CRASH research programme. 817696c12SRuslan Bukin * 917696c12SRuslan Bukin * Portions of this software were developed by the University of Cambridge 1017696c12SRuslan Bukin * Computer Laboratory as part of the CTSRD Project, with support from the 1117696c12SRuslan Bukin * UK Higher Education Innovation Fund (HEIF). 1217696c12SRuslan Bukin * 1317696c12SRuslan Bukin * Redistribution and use in source and binary forms, with or without 1417696c12SRuslan Bukin * modification, are permitted provided that the following conditions 1517696c12SRuslan Bukin * are met: 1617696c12SRuslan Bukin * 1. Redistributions of source code must retain the above copyright 1717696c12SRuslan Bukin * notice, this list of conditions and the following disclaimer. 1817696c12SRuslan Bukin * 2. Redistributions in binary form must reproduce the above copyright 1917696c12SRuslan Bukin * notice, this list of conditions and the following disclaimer in the 2017696c12SRuslan Bukin * documentation and/or other materials provided with the distribution. 2117696c12SRuslan Bukin * 2217696c12SRuslan Bukin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 2317696c12SRuslan Bukin * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2417696c12SRuslan Bukin * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2517696c12SRuslan Bukin * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 2617696c12SRuslan Bukin * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2717696c12SRuslan Bukin * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2817696c12SRuslan Bukin * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2917696c12SRuslan Bukin * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3017696c12SRuslan Bukin * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3117696c12SRuslan Bukin * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3217696c12SRuslan Bukin * SUCH DAMAGE. 3317696c12SRuslan Bukin */ 3417696c12SRuslan Bukin 3517696c12SRuslan Bukin #ifndef _MACHINE_SMP_H_ 3617696c12SRuslan Bukin #define _MACHINE_SMP_H_ 3717696c12SRuslan Bukin 3817696c12SRuslan Bukin #include <machine/pcb.h> 3917696c12SRuslan Bukin 40*6ec8bf9fSJessica Clarke enum { 41*6ec8bf9fSJessica Clarke IPI_AST, 42*6ec8bf9fSJessica Clarke IPI_PREEMPT, 43*6ec8bf9fSJessica Clarke IPI_RENDEZVOUS, 44*6ec8bf9fSJessica Clarke IPI_STOP, 45*6ec8bf9fSJessica Clarke IPI_STOP_HARD, 46*6ec8bf9fSJessica Clarke IPI_HARDCLOCK, 47*6ec8bf9fSJessica Clarke INTR_IPI_COUNT 48*6ec8bf9fSJessica Clarke }; 492d53a67cSRuslan Bukin 5017696c12SRuslan Bukin void ipi_all_but_self(u_int ipi); 5117696c12SRuslan Bukin void ipi_cpu(int cpu, u_int ipi); 5217696c12SRuslan Bukin void ipi_selected(cpuset_t cpus, u_int ipi); 5317696c12SRuslan Bukin 5417696c12SRuslan Bukin #endif /* !_MACHINE_SMP_H_ */ 55