1 | /*␊ |
2 | * <Insert copyright here : it must be BSD-like so everyone can use it>␊ |
3 | *␊ |
4 | * Author: Erich Boleyn <erich@uruk.org> http://www.uruk.org/~erich/␊ |
5 | *␊ |
6 | * Header file implementing Intel MultiProcessor Specification (MPS)␊ |
7 | * version 1.1 and 1.4 SMP hardware control for Intel Architecture CPUs,␊ |
8 | * with hooks for running correctly on a standard PC without the hardware.␊ |
9 | *␊ |
10 | * This file was created from information in the Intel MPS version 1.4␊ |
11 | * document, order number 242016-004, which can be ordered from the␊ |
12 | * Intel literature center.␊ |
13 | */␊ |
14 | #ifndef _SMP_H␊ |
15 | #define _SMP_H␊ |
16 | ␊ |
17 | /*␊ |
18 | * This contains the local APIC hardware address.␊ |
19 | */␊ |
20 | extern unsigned imps_lapic_addr;␊ |
21 | /*␊ |
22 | * Defines that use variables␊ |
23 | */␊ |
24 | ␊ |
25 | #define IMPS_LAPIC_READ(x) (*((volatile unsigned *) (imps_lapic_addr+(x))))␊ |
26 | #define IMPS_LAPIC_WRITE(x, y) \␊ |
27 | (*((volatile unsigned *) (imps_lapic_addr+(x))) = (y))␊ |
28 | ␊ |
29 | #endif /* !_SMP_H */ |