summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>1996-08-12 20:03:16 +0000
committerwollman <wollman@FreeBSD.org>1996-08-12 20:03:16 +0000
commit084c9a9ee62a92c88d40e132afda3e098c2fa304 (patch)
tree799c35447bf1cad7969bc8799854edbe5e2b37dc /sys
parent9782a04d1c5d60ca088a810609d6944046f86ab0 (diff)
downloadFreeBSD-src-084c9a9ee62a92c88d40e132afda3e098c2fa304.zip
FreeBSD-src-084c9a9ee62a92c88d40e132afda3e098c2fa304.tar.gz
Back out mistaken local change that sneaked in on the last commit.
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/amd64/machdep.c40
-rw-r--r--sys/i386/i386/machdep.c40
2 files changed, 80 insertions, 0 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 025afc1..7e43259 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -185,10 +185,12 @@ vm_offset_t phys_avail[10];
#define PHYS_AVAIL_ARRAY_END ((sizeof(phys_avail) / sizeof(vm_offset_t)) - 2)
static void dumpsys __P((void));
+static void setup_netisrs __P((struct linker_set *)); /* XXX declare elsewhere */
static vm_offset_t buffer_sva, buffer_eva;
vm_offset_t clean_sva, clean_eva;
static vm_offset_t pager_sva, pager_eva;
+extern struct linker_set netisr_set;
#define offsetof(type, member) ((size_t)(&((type *)0)->member))
@@ -250,6 +252,17 @@ cpu_startup(dummy)
}
/*
+ * Quickly wire in netisrs.
+ */
+ setup_netisrs(&netisr_set);
+
+/*
+#ifdef ISDN
+ DONET(isdnintr, NETISR_ISDN);
+#endif
+*/
+
+ /*
* Allocate space for system data structures.
* The first available kernel virtual address is in "v".
* As pages of kernel virtual memory are allocated, "v" is incremented.
@@ -427,6 +440,33 @@ again:
}
}
+int
+register_netisr(num, handler)
+ int num;
+ netisr_t *handler;
+{
+
+ if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
+ printf("register_netisr: bad isr number: %d\n", num);
+ return (EINVAL);
+ }
+ netisrs[num] = handler;
+ return (0);
+}
+
+static void
+setup_netisrs(ls)
+ struct linker_set *ls;
+{
+ int i;
+ const struct netisrtab *nit;
+
+ for(i = 0; ls->ls_items[i]; i++) {
+ nit = (const struct netisrtab *)ls->ls_items[i];
+ register_netisr(nit->nit_num, nit->nit_isr);
+ }
+}
+
/*
* Send an interrupt to process.
*
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index 025afc1..7e43259 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -185,10 +185,12 @@ vm_offset_t phys_avail[10];
#define PHYS_AVAIL_ARRAY_END ((sizeof(phys_avail) / sizeof(vm_offset_t)) - 2)
static void dumpsys __P((void));
+static void setup_netisrs __P((struct linker_set *)); /* XXX declare elsewhere */
static vm_offset_t buffer_sva, buffer_eva;
vm_offset_t clean_sva, clean_eva;
static vm_offset_t pager_sva, pager_eva;
+extern struct linker_set netisr_set;
#define offsetof(type, member) ((size_t)(&((type *)0)->member))
@@ -250,6 +252,17 @@ cpu_startup(dummy)
}
/*
+ * Quickly wire in netisrs.
+ */
+ setup_netisrs(&netisr_set);
+
+/*
+#ifdef ISDN
+ DONET(isdnintr, NETISR_ISDN);
+#endif
+*/
+
+ /*
* Allocate space for system data structures.
* The first available kernel virtual address is in "v".
* As pages of kernel virtual memory are allocated, "v" is incremented.
@@ -427,6 +440,33 @@ again:
}
}
+int
+register_netisr(num, handler)
+ int num;
+ netisr_t *handler;
+{
+
+ if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
+ printf("register_netisr: bad isr number: %d\n", num);
+ return (EINVAL);
+ }
+ netisrs[num] = handler;
+ return (0);
+}
+
+static void
+setup_netisrs(ls)
+ struct linker_set *ls;
+{
+ int i;
+ const struct netisrtab *nit;
+
+ for(i = 0; ls->ls_items[i]; i++) {
+ nit = (const struct netisrtab *)ls->ls_items[i];
+ register_netisr(nit->nit_num, nit->nit_isr);
+ }
+}
+
/*
* Send an interrupt to process.
*
OpenPOWER on IntegriCloud