Module Name:    src
Committed By:   matt
Date:           Wed Jun 15 15:11:50 UTC 2011

Modified Files:
        src/sys/arch/powerpc/booke: e500_intr.c
        src/sys/arch/powerpc/include/booke: intr.h

Log Message:
Add IST_PULSE and intr_typename (converts IST_* to a name).


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/powerpc/booke/e500_intr.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/powerpc/include/booke/intr.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/powerpc/booke/e500_intr.c
diff -u src/sys/arch/powerpc/booke/e500_intr.c:1.10 src/sys/arch/powerpc/booke/e500_intr.c:1.11
--- src/sys/arch/powerpc/booke/e500_intr.c:1.10	Tue Jun 14 22:36:12 2011
+++ src/sys/arch/powerpc/booke/e500_intr.c	Wed Jun 15 15:11:50 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: e500_intr.c,v 1.10 2011/06/14 22:36:12 matt Exp $	*/
+/*	$NetBSD: e500_intr.c,v 1.11 2011/06/15 15:11:50 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -215,6 +215,7 @@
 		[IST_EDGE]		= 0,				\
 		[IST_LEVEL_LOW]		= 0,				\
 		[IST_LEVEL_HIGH]	= 0,				\
+		[IST_PULSE]		= 0,				\
 		[IST_ONCHIP]		= UC_CHIP ## _EXTERNALSOURCES,	\
 		[IST_MSIGROUP]		= UC_CHIP ## _EXTERNALSOURCES	\
 					    + UC_CHIP ## _ONCHIPSOURCES, \
@@ -334,6 +335,7 @@
 	[IST_EDGE] = "edge",
 	[IST_LEVEL_LOW] = "level-",
 	[IST_LEVEL_HIGH] = "level+",
+	[IST_PULSE] = "pulse",
 	[IST_MSI] = "msi",
 	[IST_ONCHIP] = "onchip",
 	[IST_MSIGROUP] = "msigroup",
@@ -352,6 +354,7 @@
 static void	e500_intr_cpu_send_ipi(cpuid_t, uintptr_t);
 static void 	e500_intr_init(void);
 static const char *e500_intr_string(int, int);
+static const char *e500_intr_typename(int);
 static void 	e500_critintr(struct trapframe *tf);
 static void 	e500_decrintr(struct trapframe *tf);
 static void 	e500_extintr(struct trapframe *tf);
@@ -369,6 +372,7 @@
 	.intrsw_cpu_hatch = e500_intr_cpu_hatch,
 	.intrsw_cpu_send_ipi = e500_intr_cpu_send_ipi,
 	.intrsw_string = e500_intr_string,
+	.intrsw_typename = e500_intr_typename,
 
 	.intrsw_critintr = e500_critintr,
 	.intrsw_decrintr = e500_decrintr,
@@ -590,6 +594,9 @@
 			|| ist == IST_LEVEL_LOW
 			|| ist == IST_LEVEL_HIGH);
 		break;
+	case IST_PULSE:
+		ok = false;
+		break;
 	case IST_ONCHIP:
 		ii->irq_vpr = OPENPIC_IIVPR(irq);
 		ii->irq_dr  = OPENPIC_IIDR(irq);
@@ -647,6 +654,17 @@
 	return cpu->cpu_evcnt_intrs[ii.irq_vector].ev_name;
 }
 
+__CTASSERT(__arraycount(ist_names) == IST_MAX);
+
+static const char *
+e500_intr_typename(int ist)
+{
+	if (IST_NONE <= ist && ist < IST_MAX)
+		return ist_names[ist];
+
+	return NULL;
+}
+
 static void *
 e500_intr_cpu_establish(struct cpu_info *ci, int irq, int ipl, int ist,
 	int (*handler)(void *), void *arg)

Index: src/sys/arch/powerpc/include/booke/intr.h
diff -u src/sys/arch/powerpc/include/booke/intr.h:1.4 src/sys/arch/powerpc/include/booke/intr.h:1.5
--- src/sys/arch/powerpc/include/booke/intr.h:1.4	Sun Jun  5 16:52:25 2011
+++ src/sys/arch/powerpc/include/booke/intr.h	Wed Jun 15 15:11:50 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: intr.h,v 1.4 2011/06/05 16:52:25 matt Exp $	*/
+/*	$NetBSD: intr.h,v 1.5 2011/06/15 15:11:50 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -50,18 +50,19 @@
 
 /* Interrupt sharing types. */
 #define	IST_NONE	(NIPL+0) /* none */
-#define	IST_EDGE	(NIPL+1)	/* edge-triggered */
+#define	IST_EDGE	(NIPL+1) /* edge-triggered */
 #define	IST_LEVEL	(NIPL+2) /* level-triggered active-low */
 #define	IST_LEVEL_LOW	IST_LEVEL
 #define	IST_LEVEL_HIGH	(NIPL+3) /* level-triggered active-high */
-#define	IST_MSI		(NIPL+4) /* message signaling interrupt (PCI) */
-#define	IST_ONCHIP	(NIPL+5) /* on-chip device */
+#define	IST_PULSE	(NIPL+4) /* pulsed */
+#define	IST_MSI		(NIPL+5) /* message signaling interrupt (PCI) */
+#define	IST_ONCHIP	(NIPL+6) /* on-chip device */
 #ifdef __INTR_PRIVATE
-#define	IST_MSIGROUP	(NIPL+6) /* openpic msi groups */
-#define	IST_TIMER	(NIPL+7) /* openpic timers */
-#define	IST_IPI		(NIPL+8) /* openpic ipi */
-#define	IST_MI		(NIPL+9) /* openpic message */
-#define IST_MAX		(NIPL+10)
+#define	IST_MSIGROUP	(NIPL+7) /* openpic msi groups */
+#define	IST_TIMER	(NIPL+8) /* openpic timers */
+#define	IST_IPI		(NIPL+9) /* openpic ipi */
+#define	IST_MI		(NIPL+10) /* openpic message */
+#define	IST_MAX		(NIPL+11)
 #endif
 
 #define	IPI_DST_ALL	((cpuid_t)-2)
@@ -85,6 +86,8 @@
 void	intr_init(void);
 const char *
 	intr_string(int, int);
+const char *
+	intr_typename(int);
 
 void	cpu_send_ipi(cpuid_t, uint32_t);
 
@@ -124,6 +127,7 @@
 	void (*intrsw_spl0)(void);
 	void (*intrsw_splx)(int);
 	const char *(*intrsw_string)(int, int);
+	const char *(*intrsw_typename)(int);
 #ifdef __HAVE_FAST_SOFTINTS
 	void (*intrsw_softint_init_md)(struct lwp *, u_int, uintptr_t *);
 	void (*intrsw_softint_trigger)(uintptr_t);

Reply via email to