Module Name:    src
Committed By:   jmcneill
Date:           Fri Oct 12 21:46:32 UTC 2018

Modified Files:
        src/sys/arch/arm/pic: pic.c picvar.h

Log Message:
Implement intr_string(9)


To generate a diff of this commit:
cvs rdiff -u -r1.44 -r1.45 src/sys/arch/arm/pic/pic.c
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/pic/picvar.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/arm/pic/pic.c
diff -u src/sys/arch/arm/pic/pic.c:1.44 src/sys/arch/arm/pic/pic.c:1.45
--- src/sys/arch/arm/pic/pic.c:1.44	Sun Jul 15 16:03:24 2018
+++ src/sys/arch/arm/pic/pic.c	Fri Oct 12 21:46:32 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: pic.c,v 1.44 2018/07/15 16:03:24 jmcneill Exp $	*/
+/*	$NetBSD: pic.c,v 1.45 2018/10/12 21:46:32 jmcneill Exp $	*/
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -33,7 +33,7 @@
 #include "opt_multiprocessor.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pic.c,v 1.44 2018/07/15 16:03:24 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pic.c,v 1.45 2018/10/12 21:46:32 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -883,6 +883,24 @@ intr_disestablish(void *ih)
 	pic_disestablish_source(is);
 }
 
+const char *
+intr_string(intr_handle_t irq, char *buf, size_t len)
+{
+	for (size_t slot = 0; slot < PIC_MAXPICS; slot++) {
+		struct pic_softc * const pic = pic_list[slot];
+		if (pic == NULL || pic->pic_irqbase < 0)
+			continue;
+		if (pic->pic_irqbase <= irq
+		    && irq < pic->pic_irqbase + pic->pic_maxsources) {
+			struct intrsource * const is = pic->pic_sources[irq - pic->pic_irqbase];
+			snprintf(buf, len, "%s %s", pic->pic_name, is->is_source);
+			return buf;
+		}
+	}
+
+	return NULL;
+}
+
 #ifdef MULTIPROCESSOR
 int
 interrupt_distribute(void *ih, const kcpuset_t *newset, kcpuset_t *oldset)

Index: src/sys/arch/arm/pic/picvar.h
diff -u src/sys/arch/arm/pic/picvar.h:1.19 src/sys/arch/arm/pic/picvar.h:1.20
--- src/sys/arch/arm/pic/picvar.h:1.19	Sat Sep  8 11:54:26 2018
+++ src/sys/arch/arm/pic/picvar.h	Fri Oct 12 21:46:32 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: picvar.h,v 1.19 2018/09/08 11:54:26 jmcneill Exp $	*/
+/*	$NetBSD: picvar.h,v 1.20 2018/10/12 21:46:32 jmcneill Exp $	*/
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -38,6 +38,8 @@
 #include <sys/kcpuset.h>
 #endif
 
+typedef uint32_t	intr_handle_t;		/* for ACPI */
+
 int	_splraise(int);
 int	_spllower(int);
 void	splx(int);
@@ -86,6 +88,7 @@ void	pic_dispatch(struct intrsource *is,
 void	*intr_establish(int irq, int ipl, int type, int (*func)(void *),
 	    void *arg);
 void	intr_disestablish(void *);
+const char *intr_string(intr_handle_t, char *, size_t);
 #ifdef MULTIPROCESSOR
 void	intr_cpu_init(struct cpu_info *);
 void	intr_ipi_send(const kcpuset_t *, u_long ipi);

Reply via email to