aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake Burkholder <jake@FreeBSD.org>2000-12-05 00:36:00 +0000
committerJake Burkholder <jake@FreeBSD.org>2000-12-05 00:36:00 +0000
commit1eb44f02701adb24ea42266da8d51b12589488ec (patch)
tree40230ae0c4c2439e7a311e9988b3216a3d2baae7
parent4d3329891c20b4bcaaee962a91955582b9f87b28 (diff)
Notes
-rw-r--r--sys/alpha/alpha/machdep.c27
-rw-r--r--sys/alpha/include/md_var.h1
-rw-r--r--sys/amd64/amd64/machdep.c27
-rw-r--r--sys/amd64/include/md_var.h1
-rw-r--r--sys/i386/i386/machdep.c27
-rw-r--r--sys/i386/include/asnames.h2
-rw-r--r--sys/i386/include/md_var.h1
-rw-r--r--sys/i386/isa/ipl.s26
-rw-r--r--sys/ia64/ia64/machdep.c27
-rw-r--r--sys/ia64/include/md_var.h1
-rw-r--r--sys/kern/kern_intr.c27
-rw-r--r--sys/net/netisr.h6
-rw-r--r--sys/powerpc/include/md_var.h1
13 files changed, 32 insertions, 142 deletions
diff --git a/sys/alpha/alpha/machdep.c b/sys/alpha/alpha/machdep.c
index 9c3ace5ff704..e91ee1922201 100644
--- a/sys/alpha/alpha/machdep.c
+++ b/sys/alpha/alpha/machdep.c
@@ -421,33 +421,6 @@ again:
#endif /* SMP */
}
-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);
-}
-
-int
-unregister_netisr(num)
- int num;
-{
-
- if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
- printf("unregister_netisr: bad isr number: %d\n", num);
- return (EINVAL);
- }
- netisrs[num] = NULL;
- return (0);
-}
-
/*
* Retrieve the platform name from the DSR.
*/
diff --git a/sys/alpha/include/md_var.h b/sys/alpha/include/md_var.h
index a2f70b622bd7..94393192749d 100644
--- a/sys/alpha/include/md_var.h
+++ b/sys/alpha/include/md_var.h
@@ -38,7 +38,6 @@ extern char esigcode[];
extern int szsigcode;
extern int Maxmem;
extern int busdma_swi_pending;
-extern void (*netisrs[32]) __P((void));
struct fpreg;
struct proc;
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 5c059291c6b5..a6f92b16cd55 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -440,33 +440,6 @@ again:
cpu_setregs();
}
-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);
-}
-
-int
-unregister_netisr(num)
- int num;
-{
-
- if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
- printf("unregister_netisr: bad isr number: %d\n", num);
- return (EINVAL);
- }
- netisrs[num] = NULL;
- return (0);
-}
-
/*
* Send an interrupt to process.
*
diff --git a/sys/amd64/include/md_var.h b/sys/amd64/include/md_var.h
index 312d31367cf4..5a2ed2677879 100644
--- a/sys/amd64/include/md_var.h
+++ b/sys/amd64/include/md_var.h
@@ -54,7 +54,6 @@ extern char kstack[];
extern int need_pre_dma_flush;
extern int need_post_dma_flush;
#endif
-extern void (*netisrs[32]) __P((void));
extern int nfs_diskless_valid;
extern void (*ovbcopy_vector) __P((const void *from, void *to, size_t len));
extern char sigcode[];
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index 5c059291c6b5..a6f92b16cd55 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -440,33 +440,6 @@ again:
cpu_setregs();
}
-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);
-}
-
-int
-unregister_netisr(num)
- int num;
-{
-
- if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
- printf("unregister_netisr: bad isr number: %d\n", num);
- return (EINVAL);
- }
- netisrs[num] = NULL;
- return (0);
-}
-
/*
* Send an interrupt to process.
*
diff --git a/sys/i386/include/asnames.h b/sys/i386/include/asnames.h
index b99b9af837b9..d514b29d57c3 100644
--- a/sys/i386/include/asnames.h
+++ b/sys/i386/include/asnames.h
@@ -252,8 +252,6 @@
#define __mtx_exit_giant_def _mtx_exit_giant_def
#define _mul64 mul64
#define _net_imask net_imask
-#define _netisr netisr
-#define _netisrs netisrs
#define _nfs_diskless nfs_diskless
#define _nfs_diskless_valid nfs_diskless_valid
#define _normalize normalize
diff --git a/sys/i386/include/md_var.h b/sys/i386/include/md_var.h
index 312d31367cf4..5a2ed2677879 100644
--- a/sys/i386/include/md_var.h
+++ b/sys/i386/include/md_var.h
@@ -54,7 +54,6 @@ extern char kstack[];
extern int need_pre_dma_flush;
extern int need_post_dma_flush;
#endif
-extern void (*netisrs[32]) __P((void));
extern int nfs_diskless_valid;
extern void (*ovbcopy_vector) __P((const void *from, void *to, size_t len));
extern char sigcode[];
diff --git a/sys/i386/isa/ipl.s b/sys/i386/isa/ipl.s
index f5d4926de014..a079d2c5a43b 100644
--- a/sys/i386/isa/ipl.s
+++ b/sys/i386/isa/ipl.s
@@ -68,25 +68,6 @@ _softnet_imask: .long 0
.globl _softtty_imask
_softtty_imask: .long 0
-/* pending software interrupts */
- .globl _spending
-_spending: .long 0
-
-/* set with bits for which queue to service */
- .globl _netisr
-_netisr: .long 0
-
- .globl _netisrs
-_netisrs:
- .long dummynetisr, dummynetisr, dummynetisr, dummynetisr
- .long dummynetisr, dummynetisr, dummynetisr, dummynetisr
- .long dummynetisr, dummynetisr, dummynetisr, dummynetisr
- .long dummynetisr, dummynetisr, dummynetisr, dummynetisr
- .long dummynetisr, dummynetisr, dummynetisr, dummynetisr
- .long dummynetisr, dummynetisr, dummynetisr, dummynetisr
- .long dummynetisr, dummynetisr, dummynetisr, dummynetisr
- .long dummynetisr, dummynetisr, dummynetisr, dummynetisr
-
.text
/*
@@ -173,13 +154,6 @@ doreti_ast:
movb $1,_intr_nesting_level /* for doreti_next to decrement */
jmp doreti_next
- ALIGN_TEXT
-dummynetisr:
- MCOUNT
- ret
-
-
-
#ifdef APIC_IO
#include "i386/isa/apic_ipl.s"
#else
diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c
index bc0ae1becb41..a4ff91a1df0c 100644
--- a/sys/ia64/ia64/machdep.c
+++ b/sys/ia64/ia64/machdep.c
@@ -343,33 +343,6 @@ again:
vm_pager_bufferinit();
}
-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);
-}
-
-int
-unregister_netisr(num)
- int num;
-{
-
- if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
- printf("unregister_netisr: bad isr number: %d\n", num);
- return (EINVAL);
- }
- netisrs[num] = NULL;
- return (0);
-}
-
static void
identifycpu(void)
{
diff --git a/sys/ia64/include/md_var.h b/sys/ia64/include/md_var.h
index fb1b4b55f0c5..9e64106452d6 100644
--- a/sys/ia64/include/md_var.h
+++ b/sys/ia64/include/md_var.h
@@ -37,7 +37,6 @@ extern char sigcode[];
extern char esigcode[];
extern int szsigcode;
extern int Maxmem;
-extern void (*netisrs[32]) __P((void));
struct fpreg;
struct proc;
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c
index dcd422a27843..9ce6d6ddf26d 100644
--- a/sys/kern/kern_intr.c
+++ b/sys/kern/kern_intr.c
@@ -275,6 +275,33 @@ legacy_setsoftnet()
void (*netisrs[32]) __P((void));
u_int netisr;
+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);
+}
+
+int
+unregister_netisr(num)
+ int num;
+{
+
+ if (num < 0 || num >= (sizeof(netisrs)/sizeof(*netisrs)) ) {
+ printf("unregister_netisr: bad isr number: %d\n", num);
+ return (EINVAL);
+ }
+ netisrs[num] = NULL;
+ return (0);
+}
+
static void
swi_net(void *dummy)
{
diff --git a/sys/net/netisr.h b/sys/net/netisr.h
index f227fb22dc93..621cf2268b96 100644
--- a/sys/net/netisr.h
+++ b/sys/net/netisr.h
@@ -71,7 +71,11 @@
void legacy_setsoftnet __P((void));
extern volatile unsigned int netisr; /* scheduling bits for network */
-#define schednetisr(anisr) { netisr |= 1 << (anisr); legacy_setsoftnet(); }
+extern void (*netisrs[32]) __P((void));
+#define schednetisr(anisr) do { \
+ atomic_set_rel_int(&netisr, 1 << (anisr)); \
+ legacy_setsoftnet(); \
+} while (0)
typedef void netisr_t __P((void));
diff --git a/sys/powerpc/include/md_var.h b/sys/powerpc/include/md_var.h
index a2f70b622bd7..94393192749d 100644
--- a/sys/powerpc/include/md_var.h
+++ b/sys/powerpc/include/md_var.h
@@ -38,7 +38,6 @@ extern char esigcode[];
extern int szsigcode;
extern int Maxmem;
extern int busdma_swi_pending;
-extern void (*netisrs[32]) __P((void));
struct fpreg;
struct proc;