svn commit: r200901 - projects/mips/sys/mips/rmi
Randall Stewart
rrs at FreeBSD.org
Wed Dec 23 14:55:33 UTC 2009
Author: rrs
Date: Wed Dec 23 14:55:33 2009
New Revision: 200901
URL: http://svn.freebsd.org/changeset/base/200901
Log:
Add missing function that doesintr naming and
init.
Modified:
projects/mips/sys/mips/rmi/intr_machdep.c
Modified: projects/mips/sys/mips/rmi/intr_machdep.c
==============================================================================
--- projects/mips/sys/mips/rmi/intr_machdep.c Wed Dec 23 14:48:26 2009 (r200900)
+++ projects/mips/sys/mips/rmi/intr_machdep.c Wed Dec 23 14:55:33 2009 (r200901)
@@ -50,8 +50,9 @@ __FBSDID("$FreeBSD$");
#include <mips/rmi/pic.h>
/*#include <machine/intrcnt.h>*/
-
+static mips_intrcnt_t mips_intr_counters[XLR_MAX_INTR];
struct mips_intrhand mips_intr_handlers[XLR_MAX_INTR];
+static int intrcnt_index;
static void
mips_mask_hard_irq(void *source)
@@ -113,8 +114,6 @@ cpu_establish_softintr(const char *name,
cpu_establish_hardintr(name, filt, handler, arg, irq, flags, cookiep);
}
-
-
void
cpu_intr(struct trapframe *tf)
{
@@ -180,3 +179,39 @@ cpu_intr(struct trapframe *tf)
}
critical_exit();
}
+
+void
+mips_intrcnt_setname(mips_intrcnt_t counter, const char *name)
+{
+ int idx = counter - intrcnt;
+
+ KASSERT(counter != NULL, ("mips_intrcnt_setname: NULL counter"));
+
+ snprintf(intrnames + (MAXCOMLEN + 1) * idx,
+ MAXCOMLEN + 1, "%-*s", MAXCOMLEN, name);
+}
+
+mips_intrcnt_t
+mips_intrcnt_create(const char* name)
+{
+ mips_intrcnt_t counter = &intrcnt[intrcnt_index++];
+
+ mips_intrcnt_setname(counter, name);
+ return counter;
+}
+
+void
+cpu_init_interrupts()
+{
+ int i;
+ char name[MAXCOMLEN + 1];
+
+ /*
+ * Initialize all available vectors so spare IRQ
+ * would show up in systat output
+ */
+ for (i = 0; i < XLR_MAX_INTR; i++) {
+ snprintf(name, MAXCOMLEN + 1, "int%d:", i);
+ mips_intr_counters[i] = mips_intrcnt_create(name);
+ }
+}
More information about the svn-src-projects
mailing list