Remove the last of the MD netisr code. It is now all MI. Remove

spending, which was unused now that all software interrupts have
their own thread.  Make the legacy schednetisr use an atomic op
for setting bits in the netisr mask.

Reviewed by:	jhb
This commit is contained in:
Jake Burkholder 2000-12-05 00:36:00 +00:00
parent 4d3329891c
commit 1eb44f0270
13 changed files with 32 additions and 142 deletions

View file

@ -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.
*/

View file

@ -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;

View file

@ -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.
*

View file

@ -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[];

View file

@ -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.
*

View file

@ -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

View file

@ -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[];

View file

@ -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

View file

@ -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)
{

View file

@ -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;

View file

@ -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)
{

View file

@ -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));

View file

@ -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;