[PATCH] ppc64: Reorganise paca initialisation macros

Michael Ellerman michael at ellerman.id.au
Wed Jun 22 14:55:08 EST 2005


This patch reorganises the macros that initialise the paca array with the
aim of making the split between iSeries and non-iSeries cleaner.


Signed-off-by: Michael Ellerman <michael at ellerman.id.au>

---

 arch/ppc64/kernel/pacaData.c |  308 ++++++++++++++++++++++---------------------
 1 files changed, 161 insertions(+), 147 deletions(-)

Index: work/arch/ppc64/kernel/pacaData.c
===================================================================
--- work.orig/arch/ppc64/kernel/pacaData.c
+++ work/arch/ppc64/kernel/pacaData.c
@@ -42,21 +42,7 @@ extern unsigned long __toc_start;
  * processors.  The processor VPD array needs one entry per physical
  * processor (not thread).
  */
-#ifdef CONFIG_PPC_ISERIES
-#define EXTRA_INITS(number, lpq)					    \
-	.lppaca_ptr = &paca[number].lppaca,				    \
-	.lpqueue_ptr = (lpq),		/* &xItLpQueue, */		    \
-	.reg_save_ptr = &paca[number].reg_save,				    \
-	.reg_save = {							    \
-		.xDesc = 0xd397d9e2,	/* "LpRS" */			    \
-		.xSize = sizeof(struct ItLpRegSave)			    \
-	},
-#else
-#define EXTRA_INITS(number, lpq)
-#endif
-
-#define PACAINITDATA(number,start,lpq,asrr,asrv)			    \
-{									    \
+#define PACA_INIT_COMMON(number, start, asrr, asrv)			    \
 	.lock_token = 0x8000,						    \
 	.paca_index = (number),		/* Paca Index */		    \
 	.default_decr = 0x00ff0000,	/* Initial Decr */		    \
@@ -74,147 +60,175 @@ extern unsigned long __toc_start;
 		.end_of_quantum = 0xfffffffffffffffful,			    \
 		.slb_count = 64,					    \
 	},								    \
-	EXTRA_INITS((number), (lpq))					    \
-}
 
-struct paca_struct paca[] = {
 #ifdef CONFIG_PPC_ISERIES
-	PACAINITDATA( 0, 1, &xItLpQueue, 0, STAB0_VIRT_ADDR),
+#define PACA_INIT_ISERIES(number, lpq)					    \
+	.lppaca_ptr = &paca[number].lppaca,				    \
+	.lpqueue_ptr = (lpq),		/* &xItLpQueue, */		    \
+	.reg_save_ptr = &paca[number].reg_save,				    \
+	.reg_save = {							    \
+		.xDesc = 0xd397d9e2,	/* "LpRS" */			    \
+		.xSize = sizeof(struct ItLpRegSave)			    \
+	}
+
+#define PACAINITDATA(number)						    \
+{									    \
+	PACA_INIT_COMMON(number, 0, 0, 0)				    \
+	PACA_INIT_ISERIES(number, NULL)					    \
+}
+
+#define BOOTCPU_PACAINITDATA(number)					    \
+{									    \
+	PACA_INIT_COMMON(number, 1, 0, STAB0_VIRT_ADDR)			    \
+	PACA_INIT_ISERIES(number, &xItLpQueue)				    \
+}
+
 #else
-	PACAINITDATA( 0, 1, NULL, STAB0_PHYS_ADDR, STAB0_VIRT_ADDR),
+#define PACAINITDATA(number)						    \
+{									    \
+	PACA_INIT_COMMON(number, 0, 0, 0)				    \
+}
+
+#define BOOTCPU_PACAINITDATA(number)					    \
+{									    \
+	PACA_INIT_COMMON(number, 1, STAB0_PHYS_ADDR, STAB0_VIRT_ADDR)	    \
+}
 #endif
+
+struct paca_struct paca[] = {
+	BOOTCPU_PACAINITDATA(0),
 #if NR_CPUS > 1
-	PACAINITDATA( 1, 0, NULL, 0, 0),
-	PACAINITDATA( 2, 0, NULL, 0, 0),
-	PACAINITDATA( 3, 0, NULL, 0, 0),
+	PACAINITDATA(1),
+	PACAINITDATA(2),
+	PACAINITDATA(3),
 #if NR_CPUS > 4
-	PACAINITDATA( 4, 0, NULL, 0, 0),
-	PACAINITDATA( 5, 0, NULL, 0, 0),
-	PACAINITDATA( 6, 0, NULL, 0, 0),
-	PACAINITDATA( 7, 0, NULL, 0, 0),
+	PACAINITDATA(4),
+	PACAINITDATA(5),
+	PACAINITDATA(6),
+	PACAINITDATA(7),
 #if NR_CPUS > 8
-	PACAINITDATA( 8, 0, NULL, 0, 0),
-	PACAINITDATA( 9, 0, NULL, 0, 0),
-	PACAINITDATA(10, 0, NULL, 0, 0),
-	PACAINITDATA(11, 0, NULL, 0, 0),
-	PACAINITDATA(12, 0, NULL, 0, 0),
-	PACAINITDATA(13, 0, NULL, 0, 0),
-	PACAINITDATA(14, 0, NULL, 0, 0),
-	PACAINITDATA(15, 0, NULL, 0, 0),
-	PACAINITDATA(16, 0, NULL, 0, 0),
-	PACAINITDATA(17, 0, NULL, 0, 0),
-	PACAINITDATA(18, 0, NULL, 0, 0),
-	PACAINITDATA(19, 0, NULL, 0, 0),
-	PACAINITDATA(20, 0, NULL, 0, 0),
-	PACAINITDATA(21, 0, NULL, 0, 0),
-	PACAINITDATA(22, 0, NULL, 0, 0),
-	PACAINITDATA(23, 0, NULL, 0, 0),
-	PACAINITDATA(24, 0, NULL, 0, 0),
-	PACAINITDATA(25, 0, NULL, 0, 0),
-	PACAINITDATA(26, 0, NULL, 0, 0),
-	PACAINITDATA(27, 0, NULL, 0, 0),
-	PACAINITDATA(28, 0, NULL, 0, 0),
-	PACAINITDATA(29, 0, NULL, 0, 0),
-	PACAINITDATA(30, 0, NULL, 0, 0),
-	PACAINITDATA(31, 0, NULL, 0, 0),
+	PACAINITDATA(8),
+	PACAINITDATA(9),
+	PACAINITDATA(10),
+	PACAINITDATA(11),
+	PACAINITDATA(12),
+	PACAINITDATA(13),
+	PACAINITDATA(14),
+	PACAINITDATA(15),
+	PACAINITDATA(16),
+	PACAINITDATA(17),
+	PACAINITDATA(18),
+	PACAINITDATA(19),
+	PACAINITDATA(20),
+	PACAINITDATA(21),
+	PACAINITDATA(22),
+	PACAINITDATA(23),
+	PACAINITDATA(24),
+	PACAINITDATA(25),
+	PACAINITDATA(26),
+	PACAINITDATA(27),
+	PACAINITDATA(28),
+	PACAINITDATA(29),
+	PACAINITDATA(30),
+	PACAINITDATA(31),
 #if NR_CPUS > 32
-	PACAINITDATA(32, 0, NULL, 0, 0),
-	PACAINITDATA(33, 0, NULL, 0, 0),
-	PACAINITDATA(34, 0, NULL, 0, 0),
-	PACAINITDATA(35, 0, NULL, 0, 0),
-	PACAINITDATA(36, 0, NULL, 0, 0),
-	PACAINITDATA(37, 0, NULL, 0, 0),
-	PACAINITDATA(38, 0, NULL, 0, 0),
-	PACAINITDATA(39, 0, NULL, 0, 0),
-	PACAINITDATA(40, 0, NULL, 0, 0),
-	PACAINITDATA(41, 0, NULL, 0, 0),
-	PACAINITDATA(42, 0, NULL, 0, 0),
-	PACAINITDATA(43, 0, NULL, 0, 0),
-	PACAINITDATA(44, 0, NULL, 0, 0),
-	PACAINITDATA(45, 0, NULL, 0, 0),
-	PACAINITDATA(46, 0, NULL, 0, 0),
-	PACAINITDATA(47, 0, NULL, 0, 0),
-	PACAINITDATA(48, 0, NULL, 0, 0),
-	PACAINITDATA(49, 0, NULL, 0, 0),
-	PACAINITDATA(50, 0, NULL, 0, 0),
-	PACAINITDATA(51, 0, NULL, 0, 0),
-	PACAINITDATA(52, 0, NULL, 0, 0),
-	PACAINITDATA(53, 0, NULL, 0, 0),
-	PACAINITDATA(54, 0, NULL, 0, 0),
-	PACAINITDATA(55, 0, NULL, 0, 0),
-	PACAINITDATA(56, 0, NULL, 0, 0),
-	PACAINITDATA(57, 0, NULL, 0, 0),
-	PACAINITDATA(58, 0, NULL, 0, 0),
-	PACAINITDATA(59, 0, NULL, 0, 0),
-	PACAINITDATA(60, 0, NULL, 0, 0),
-	PACAINITDATA(61, 0, NULL, 0, 0),
-	PACAINITDATA(62, 0, NULL, 0, 0),
-	PACAINITDATA(63, 0, NULL, 0, 0),
+	PACAINITDATA(32),
+	PACAINITDATA(33),
+	PACAINITDATA(34),
+	PACAINITDATA(35),
+	PACAINITDATA(36),
+	PACAINITDATA(37),
+	PACAINITDATA(38),
+	PACAINITDATA(39),
+	PACAINITDATA(40),
+	PACAINITDATA(41),
+	PACAINITDATA(42),
+	PACAINITDATA(43),
+	PACAINITDATA(44),
+	PACAINITDATA(45),
+	PACAINITDATA(46),
+	PACAINITDATA(47),
+	PACAINITDATA(48),
+	PACAINITDATA(49),
+	PACAINITDATA(50),
+	PACAINITDATA(51),
+	PACAINITDATA(52),
+	PACAINITDATA(53),
+	PACAINITDATA(54),
+	PACAINITDATA(55),
+	PACAINITDATA(56),
+	PACAINITDATA(57),
+	PACAINITDATA(58),
+	PACAINITDATA(59),
+	PACAINITDATA(60),
+	PACAINITDATA(61),
+	PACAINITDATA(62),
+	PACAINITDATA(63),
 #if NR_CPUS > 64
-	PACAINITDATA(64, 0, NULL, 0, 0),
-	PACAINITDATA(65, 0, NULL, 0, 0),
-	PACAINITDATA(66, 0, NULL, 0, 0),
-	PACAINITDATA(67, 0, NULL, 0, 0),
-	PACAINITDATA(68, 0, NULL, 0, 0),
-	PACAINITDATA(69, 0, NULL, 0, 0),
-	PACAINITDATA(70, 0, NULL, 0, 0),
-	PACAINITDATA(71, 0, NULL, 0, 0),
-	PACAINITDATA(72, 0, NULL, 0, 0),
-	PACAINITDATA(73, 0, NULL, 0, 0),
-	PACAINITDATA(74, 0, NULL, 0, 0),
-	PACAINITDATA(75, 0, NULL, 0, 0),
-	PACAINITDATA(76, 0, NULL, 0, 0),
-	PACAINITDATA(77, 0, NULL, 0, 0),
-	PACAINITDATA(78, 0, NULL, 0, 0),
-	PACAINITDATA(79, 0, NULL, 0, 0),
-	PACAINITDATA(80, 0, NULL, 0, 0),
-	PACAINITDATA(81, 0, NULL, 0, 0),
-	PACAINITDATA(82, 0, NULL, 0, 0),
-	PACAINITDATA(83, 0, NULL, 0, 0),
-	PACAINITDATA(84, 0, NULL, 0, 0),
-	PACAINITDATA(85, 0, NULL, 0, 0),
-	PACAINITDATA(86, 0, NULL, 0, 0),
-	PACAINITDATA(87, 0, NULL, 0, 0),
-	PACAINITDATA(88, 0, NULL, 0, 0),
-	PACAINITDATA(89, 0, NULL, 0, 0),
-	PACAINITDATA(90, 0, NULL, 0, 0),
-	PACAINITDATA(91, 0, NULL, 0, 0),
-	PACAINITDATA(92, 0, NULL, 0, 0),
-	PACAINITDATA(93, 0, NULL, 0, 0),
-	PACAINITDATA(94, 0, NULL, 0, 0),
-	PACAINITDATA(95, 0, NULL, 0, 0),
-	PACAINITDATA(96, 0, NULL, 0, 0),
-	PACAINITDATA(97, 0, NULL, 0, 0),
-	PACAINITDATA(98, 0, NULL, 0, 0),
-	PACAINITDATA(99, 0, NULL, 0, 0),
-	PACAINITDATA(100, 0, NULL, 0, 0),
-	PACAINITDATA(101, 0, NULL, 0, 0),
-	PACAINITDATA(102, 0, NULL, 0, 0),
-	PACAINITDATA(103, 0, NULL, 0, 0),
-	PACAINITDATA(104, 0, NULL, 0, 0),
-	PACAINITDATA(105, 0, NULL, 0, 0),
-	PACAINITDATA(106, 0, NULL, 0, 0),
-	PACAINITDATA(107, 0, NULL, 0, 0),
-	PACAINITDATA(108, 0, NULL, 0, 0),
-	PACAINITDATA(109, 0, NULL, 0, 0),
-	PACAINITDATA(110, 0, NULL, 0, 0),
-	PACAINITDATA(111, 0, NULL, 0, 0),
-	PACAINITDATA(112, 0, NULL, 0, 0),
-	PACAINITDATA(113, 0, NULL, 0, 0),
-	PACAINITDATA(114, 0, NULL, 0, 0),
-	PACAINITDATA(115, 0, NULL, 0, 0),
-	PACAINITDATA(116, 0, NULL, 0, 0),
-	PACAINITDATA(117, 0, NULL, 0, 0),
-	PACAINITDATA(118, 0, NULL, 0, 0),
-	PACAINITDATA(119, 0, NULL, 0, 0),
-	PACAINITDATA(120, 0, NULL, 0, 0),
-	PACAINITDATA(121, 0, NULL, 0, 0),
-	PACAINITDATA(122, 0, NULL, 0, 0),
-	PACAINITDATA(123, 0, NULL, 0, 0),
-	PACAINITDATA(124, 0, NULL, 0, 0),
-	PACAINITDATA(125, 0, NULL, 0, 0),
-	PACAINITDATA(126, 0, NULL, 0, 0),
-	PACAINITDATA(127, 0, NULL, 0, 0),
+	PACAINITDATA(64),
+	PACAINITDATA(65),
+	PACAINITDATA(66),
+	PACAINITDATA(67),
+	PACAINITDATA(68),
+	PACAINITDATA(69),
+	PACAINITDATA(70),
+	PACAINITDATA(71),
+	PACAINITDATA(72),
+	PACAINITDATA(73),
+	PACAINITDATA(74),
+	PACAINITDATA(75),
+	PACAINITDATA(76),
+	PACAINITDATA(77),
+	PACAINITDATA(78),
+	PACAINITDATA(79),
+	PACAINITDATA(80),
+	PACAINITDATA(81),
+	PACAINITDATA(82),
+	PACAINITDATA(83),
+	PACAINITDATA(84),
+	PACAINITDATA(85),
+	PACAINITDATA(86),
+	PACAINITDATA(87),
+	PACAINITDATA(88),
+	PACAINITDATA(89),
+	PACAINITDATA(90),
+	PACAINITDATA(91),
+	PACAINITDATA(92),
+	PACAINITDATA(93),
+	PACAINITDATA(94),
+	PACAINITDATA(95),
+	PACAINITDATA(96),
+	PACAINITDATA(97),
+	PACAINITDATA(98),
+	PACAINITDATA(99),
+	PACAINITDATA(100),
+	PACAINITDATA(101),
+	PACAINITDATA(102),
+	PACAINITDATA(103),
+	PACAINITDATA(104),
+	PACAINITDATA(105),
+	PACAINITDATA(106),
+	PACAINITDATA(107),
+	PACAINITDATA(108),
+	PACAINITDATA(109),
+	PACAINITDATA(110),
+	PACAINITDATA(111),
+	PACAINITDATA(112),
+	PACAINITDATA(113),
+	PACAINITDATA(114),
+	PACAINITDATA(115),
+	PACAINITDATA(116),
+	PACAINITDATA(117),
+	PACAINITDATA(118),
+	PACAINITDATA(119),
+	PACAINITDATA(120),
+	PACAINITDATA(121),
+	PACAINITDATA(122),
+	PACAINITDATA(123),
+	PACAINITDATA(124),
+	PACAINITDATA(125),
+	PACAINITDATA(126),
+	PACAINITDATA(127),
 #endif
 #endif
 #endif



More information about the Linuxppc64-dev mailing list