diff options
| -rw-r--r-- | arch/x86/include/asm/apic.h | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index b03711d7990..f4835a1be36 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h | |||
| @@ -139,12 +139,35 @@ struct apic_ops { | |||
| 139 | 139 | ||
| 140 | extern struct apic_ops *apic_ops; | 140 | extern struct apic_ops *apic_ops; |
| 141 | 141 | ||
| 142 | #define apic_read (apic_ops->read) | 142 | static inline u32 apic_read(u32 reg) |
| 143 | #define apic_write (apic_ops->write) | 143 | { |
| 144 | #define apic_icr_read (apic_ops->icr_read) | 144 | return apic_ops->read(reg); |
| 145 | #define apic_icr_write (apic_ops->icr_write) | 145 | } |
| 146 | #define apic_wait_icr_idle (apic_ops->wait_icr_idle) | 146 | |
| 147 | #define safe_apic_wait_icr_idle (apic_ops->safe_wait_icr_idle) | 147 | static inline void apic_write(u32 reg, u32 val) |
| 148 | { | ||
| 149 | apic_ops->write(reg, val); | ||
| 150 | } | ||
| 151 | |||
| 152 | static inline u64 apic_icr_read(void) | ||
| 153 | { | ||
| 154 | return apic_ops->icr_read(); | ||
| 155 | } | ||
| 156 | |||
| 157 | static inline void apic_icr_write(u32 low, u32 high) | ||
| 158 | { | ||
| 159 | apic_ops->icr_write(low, high); | ||
| 160 | } | ||
| 161 | |||
| 162 | static inline void apic_wait_icr_idle(void) | ||
| 163 | { | ||
| 164 | apic_ops->wait_icr_idle(); | ||
| 165 | } | ||
| 166 | |||
| 167 | static inline u32 safe_apic_wait_icr_idle(void) | ||
| 168 | { | ||
| 169 | return apic_ops->safe_wait_icr_idle(); | ||
| 170 | } | ||
| 148 | 171 | ||
| 149 | extern int get_physical_broadcast(void); | 172 | extern int get_physical_broadcast(void); |
| 150 | 173 | ||
