Deleted Added
full compact
smp.h (85210) smp.h (85656)
1/*
1/*
2 * $FreeBSD: head/sys/ia64/include/smp.h 85210 2001-10-20 03:33:07Z marcel $
2 * $FreeBSD: head/sys/ia64/include/smp.h 85656 2001-10-29 02:16:02Z marcel $
3 */
4#ifndef _MACHINE_SMP_H_
5#define _MACHINE_SMP_H_
6
7#ifdef _KERNEL
8
9/*
3 */
4#ifndef _MACHINE_SMP_H_
5#define _MACHINE_SMP_H_
6
7#ifdef _KERNEL
8
9/*
10 * Interprocessor interrupts for SMP.
10 * Interprocessor interrupts for SMP. The following values are indices
11 * into the IPI vector table. The SAL gives us the vector used for AP
12 * wake-up. Keep the IPI_AP_WAKEUP at index 0.
11 */
13 */
12#define IPI_INVLTLB 0x0001
13#define IPI_RENDEZVOUS 0x0002
14#define IPI_AST 0x0004
15#define IPI_CHECKSTATE 0x0008
16#define IPI_STOP 0x0010
14#define IPI_AP_WAKEUP 0
15#define IPI_AST 1
16#define IPI_CHECKSTATE 2
17#define IPI_INVLTLB 3
18#define IPI_RENDEZVOUS 4
19#define IPI_STOP 5
17
20
21#define IPI_COUNT 6
22
18#ifndef LOCORE
19
23#ifndef LOCORE
24
20/* global data in mp_machdep.c */
21extern volatile u_int checkstate_probed_cpus;
22extern volatile u_int checkstate_need_ast;
23extern volatile u_int resched_cpus;
25extern int mp_hardware;
26extern int mp_ipi_vector[];
24
27
25void ipi_all(u_int64_t ipi);
26void ipi_all_but_self(u_int64_t ipi);
27void ipi_selected(u_int cpus, u_int64_t ipi);
28void ipi_self(u_int64_t ipi);
29void smp_init_secondary(void);
28void ipi_all(int ipi);
29void ipi_all_but_self(int ipi);
30void ipi_selected(u_int64_t cpus, int ipi);
31void ipi_self(int ipi);
30
31#endif /* !LOCORE */
32#endif /* _KERNEL */
33#endif /* !_MACHINE_SMP_H */
32
33#endif /* !LOCORE */
34#endif /* _KERNEL */
35#endif /* !_MACHINE_SMP_H */