-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
x86, apic: untangle the send_IPI_*() jungle
Our send_IPI_*() methods and definitions are a twisted mess: the same symbol is defined to different things depending on .config details, in a non-transparent way. - spread out the quirks into separately named per apic driver methods - prefix the standard PC methods with default_ - get rid of wrapper macro obfuscation - clean up various details Signed-off-by: Ingo Molnar <mingo@elte.hu>
- Loading branch information
Ingo Molnar
committed
Jan 28, 2009
1 parent
debccb3
commit dac5f41
Showing
26 changed files
with
178 additions
and
180 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,22 @@ | ||
#ifndef __ASM_MACH_IPI_H | ||
#define __ASM_MACH_IPI_H | ||
|
||
void send_IPI_mask_sequence(const struct cpumask *mask, int vector); | ||
void send_IPI_mask_allbutself(const struct cpumask *mask, int vector); | ||
void default_send_IPI_mask_sequence(const struct cpumask *mask, int vector); | ||
void default_send_IPI_mask_allbutself(const struct cpumask *mask, int vector); | ||
|
||
static inline void send_IPI_mask(const struct cpumask *mask, int vector) | ||
static inline void default_send_IPI_mask(const struct cpumask *mask, int vector) | ||
{ | ||
send_IPI_mask_sequence(mask, vector); | ||
default_send_IPI_mask_sequence(mask, vector); | ||
} | ||
|
||
static inline void send_IPI_allbutself(int vector) | ||
static inline void bigsmp_send_IPI_allbutself(int vector) | ||
{ | ||
send_IPI_mask_allbutself(cpu_online_mask, vector); | ||
default_send_IPI_mask_allbutself(cpu_online_mask, vector); | ||
} | ||
|
||
static inline void send_IPI_all(int vector) | ||
static inline void bigsmp_send_IPI_all(int vector) | ||
{ | ||
send_IPI_mask(cpu_online_mask, vector); | ||
default_send_IPI_mask(cpu_online_mask, vector); | ||
} | ||
|
||
#endif /* __ASM_MACH_IPI_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,22 @@ | ||
#ifndef __ASM_ES7000_IPI_H | ||
#define __ASM_ES7000_IPI_H | ||
|
||
void send_IPI_mask_sequence(const struct cpumask *mask, int vector); | ||
void send_IPI_mask_allbutself(const struct cpumask *mask, int vector); | ||
void default_send_IPI_mask_sequence(const struct cpumask *mask, int vector); | ||
void default_send_IPI_mask_allbutself(const struct cpumask *mask, int vector); | ||
|
||
static inline void send_IPI_mask(const struct cpumask *mask, int vector) | ||
static inline void es7000_send_IPI_mask(const struct cpumask *mask, int vector) | ||
{ | ||
send_IPI_mask_sequence(mask, vector); | ||
default_send_IPI_mask_sequence(mask, vector); | ||
} | ||
|
||
static inline void send_IPI_allbutself(int vector) | ||
static inline void es7000_send_IPI_allbutself(int vector) | ||
{ | ||
send_IPI_mask_allbutself(cpu_online_mask, vector); | ||
default_send_IPI_mask_allbutself(cpu_online_mask, vector); | ||
} | ||
|
||
static inline void send_IPI_all(int vector) | ||
static inline void es7000_send_IPI_all(int vector) | ||
{ | ||
send_IPI_mask(cpu_online_mask, vector); | ||
es7000_send_IPI_mask(cpu_online_mask, vector); | ||
} | ||
|
||
#endif /* __ASM_ES7000_IPI_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,22 @@ | ||
#ifndef __ASM_NUMAQ_IPI_H | ||
#define __ASM_NUMAQ_IPI_H | ||
|
||
void send_IPI_mask_sequence(const struct cpumask *mask, int vector); | ||
void send_IPI_mask_allbutself(const struct cpumask *mask, int vector); | ||
void default_send_IPI_mask_sequence(const struct cpumask *mask, int vector); | ||
void default_send_IPI_mask_allbutself(const struct cpumask *mask, int vector); | ||
|
||
static inline void send_IPI_mask(const struct cpumask *mask, int vector) | ||
static inline void numaq_send_IPI_mask(const struct cpumask *mask, int vector) | ||
{ | ||
send_IPI_mask_sequence(mask, vector); | ||
default_send_IPI_mask_sequence(mask, vector); | ||
} | ||
|
||
static inline void send_IPI_allbutself(int vector) | ||
static inline void numaq_send_IPI_allbutself(int vector) | ||
{ | ||
send_IPI_mask_allbutself(cpu_online_mask, vector); | ||
default_send_IPI_mask_allbutself(cpu_online_mask, vector); | ||
} | ||
|
||
static inline void send_IPI_all(int vector) | ||
static inline void numaq_send_IPI_all(int vector) | ||
{ | ||
send_IPI_mask(cpu_online_mask, vector); | ||
numaq_send_IPI_mask(cpu_online_mask, vector); | ||
} | ||
|
||
#endif /* __ASM_NUMAQ_IPI_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,26 @@ | ||
#ifndef __ASM_SUMMIT_IPI_H | ||
#define __ASM_SUMMIT_IPI_H | ||
|
||
void send_IPI_mask_sequence(const cpumask_t *mask, int vector); | ||
void send_IPI_mask_allbutself(const cpumask_t *mask, int vector); | ||
void default_send_IPI_mask_sequence(const cpumask_t *mask, int vector); | ||
void default_send_IPI_mask_allbutself(const cpumask_t *mask, int vector); | ||
|
||
static inline void send_IPI_mask(const cpumask_t *mask, int vector) | ||
static inline void summit_send_IPI_mask(const cpumask_t *mask, int vector) | ||
{ | ||
send_IPI_mask_sequence(mask, vector); | ||
default_send_IPI_mask_sequence(mask, vector); | ||
} | ||
|
||
static inline void send_IPI_allbutself(int vector) | ||
static inline void summit_send_IPI_allbutself(int vector) | ||
{ | ||
cpumask_t mask = cpu_online_map; | ||
cpu_clear(smp_processor_id(), mask); | ||
|
||
if (!cpus_empty(mask)) | ||
send_IPI_mask(&mask, vector); | ||
summit_send_IPI_mask(&mask, vector); | ||
} | ||
|
||
static inline void send_IPI_all(int vector) | ||
static inline void summit_send_IPI_all(int vector) | ||
{ | ||
send_IPI_mask(&cpu_online_map, vector); | ||
summit_send_IPI_mask(&cpu_online_map, vector); | ||
} | ||
|
||
#endif /* __ASM_SUMMIT_IPI_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.