d13f7208b2
xics supports only one ipi per cpu, and expects software to use some queue to know why the interrupt was sent. In Linux, we use a an array of bitmaps indexed by cpu to identify the message. Currently the bits are set in smp.c and decoded in xics.c, with the data structure in a header file. Consolidate the code in xics.c similar to mpic and other interrupt controllers. Also, while making the the array static, the message word doesn't need to be volatile as set_bit and test_clear_bit take care of it for us, and put it under ifdef smp. Signed-off-by: Milton Miller <miltonm@bga.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
24 lines
733 B
C
24 lines
733 B
C
/*
|
|
* arch/powerpc/platforms/pseries/xics.h
|
|
*
|
|
* Copyright 2000 IBM Corporation.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the License, or (at your option) any later version.
|
|
*/
|
|
|
|
#ifndef _POWERPC_KERNEL_XICS_H
|
|
#define _POWERPC_KERNEL_XICS_H
|
|
|
|
extern void xics_init_IRQ(void);
|
|
extern void xics_setup_cpu(void);
|
|
extern void xics_teardown_cpu(void);
|
|
extern void xics_kexec_teardown_cpu(int secondary);
|
|
extern void xics_migrate_irqs_away(void);
|
|
extern int smp_xics_probe(void);
|
|
extern void smp_xics_message_pass(int target, int msg);
|
|
|
|
#endif /* _POWERPC_KERNEL_XICS_H */
|