smp.h (169796) | smp.h (170846) |
---|---|
1/*- 2 * Copyright (c) 2001 Jake Burkholder. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 2001 Jake Burkholder. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/sys/sparc64/include/smp.h 169796 2007-05-20 14:49:01Z marius $ | 26 * $FreeBSD: head/sys/sparc64/include/smp.h 170846 2007-06-16 23:26:00Z marius $ |
27 */ 28 29#ifndef _MACHINE_SMP_H_ 30#define _MACHINE_SMP_H_ 31 32#define CPU_CLKSYNC 1 33#define CPU_INIT 2 34#define CPU_BOOTSTRAP 3 35 36#ifndef LOCORE 37 38#include <machine/intr_machdep.h> 39#include <machine/pcb.h> 40#include <machine/tte.h> 41 | 27 */ 28 29#ifndef _MACHINE_SMP_H_ 30#define _MACHINE_SMP_H_ 31 32#define CPU_CLKSYNC 1 33#define CPU_INIT 2 34#define CPU_BOOTSTRAP 3 35 36#ifndef LOCORE 37 38#include <machine/intr_machdep.h> 39#include <machine/pcb.h> 40#include <machine/tte.h> 41 |
42#define IDR_BUSY (1<<0) 43#define IDR_NACK (1<<1) | 42#define IDR_BUSY 0x0000000000000001ULL 43#define IDR_NACK 0x0000000000000002ULL 44#define IDR_CHEETAH_ALL_BUSY 0x5555555555555555ULL 45#define IDR_CHEETAH_ALL_NACK (~IDR_CHEETAH_ALL_BUSY) 46#define IDR_CHEETAH_MAX_BN_PAIRS 32 47#define IDR_JALAPENO_MAX_BN_PAIRS 4 |
44 45#define IDC_ITID_SHIFT 14 | 48 49#define IDC_ITID_SHIFT 14 |
50#define IDC_BN_SHIFT 24 |
|
46 47#define IPI_AST PIL_AST 48#define IPI_RENDEZVOUS PIL_RENDEZVOUS 49#define IPI_STOP PIL_STOP 50 51#define IPI_RETRIES 5000 52 53struct cpu_start_args { --- 21 unchanged lines hidden (view full) --- 75 76struct pcpu; 77 78extern struct pcb stoppcbs[]; 79 80void cpu_mp_bootstrap(struct pcpu *pc); 81void cpu_mp_shutdown(void); 82 | 51 52#define IPI_AST PIL_AST 53#define IPI_RENDEZVOUS PIL_RENDEZVOUS 54#define IPI_STOP PIL_STOP 55 56#define IPI_RETRIES 5000 57 58struct cpu_start_args { --- 21 unchanged lines hidden (view full) --- 80 81struct pcpu; 82 83extern struct pcb stoppcbs[]; 84 85void cpu_mp_bootstrap(struct pcpu *pc); 86void cpu_mp_shutdown(void); 87 |
83void cpu_ipi_selected(u_int cpus, u_long d0, u_long d1, u_long d2); | 88typedef void cpu_ipi_selected_t(u_int, u_long, u_long, u_long); 89extern cpu_ipi_selected_t *cpu_ipi_selected; |
84 85void ipi_selected(u_int cpus, u_int ipi); 86void ipi_all(u_int ipi); 87void ipi_all_but_self(u_int ipi); 88 | 90 91void ipi_selected(u_int cpus, u_int ipi); 92void ipi_all(u_int ipi); 93void ipi_all_but_self(u_int ipi); 94 |
89vm_offset_t mp_tramp_alloc(void); | 95void mp_init(void); |
90 91extern struct mtx ipi_mtx; 92extern struct ipi_cache_args ipi_cache_args; 93extern struct ipi_tlb_args ipi_tlb_args; 94 | 96 97extern struct mtx ipi_mtx; 98extern struct ipi_cache_args ipi_cache_args; 99extern struct ipi_tlb_args ipi_tlb_args; 100 |
95extern vm_offset_t mp_tramp; | |
96extern char *mp_tramp_code; 97extern u_long mp_tramp_code_len; 98extern u_long mp_tramp_tlb_slots; 99extern u_long mp_tramp_func; 100 101extern void mp_startup(void); 102 103extern char tl_ipi_cheetah_dcache_page_inval[]; --- 163 unchanged lines hidden --- | 101extern char *mp_tramp_code; 102extern u_long mp_tramp_code_len; 103extern u_long mp_tramp_tlb_slots; 104extern u_long mp_tramp_func; 105 106extern void mp_startup(void); 107 108extern char tl_ipi_cheetah_dcache_page_inval[]; --- 163 unchanged lines hidden --- |