I have some code (in stable) which is invoked from the idle loop, see below. I was trying to port it to CURRENT, but cannot find where the idle_loop (or idlethread ?) has gone. Any pointers ? A grep for idlethread did not return anything that i could parse.
Furthermore, what kind of locking should i use instead of splimp() (the procedures called by ether_input() are a stripped down, bounded-execution-time version of the interrupt service routines for ethernet adapters). thanks luigi --- i386/i386/swtch.s 2001/07/26 02:29:10 1.89.2.4 +++ i386/i386/swtch.s 2001/10/23 04:00:27 @@ -246,6 +246,15 @@ call _procrunnable testl %eax,%eax CROSSJUMP(jnz, sw1a, jz) +#ifdef XORP_ETHER_POLLING + incl idle_done + call ether_poll + sti + nop + cli + testl %eax, %eax + jnz idle_loop +#endif call _vm_page_zero_idle testl %eax, %eax jnz idle_loop --- i386/isa/intr_machdep.c 2001/08/24 17:39:12 1.29.2.3 +++ i386/isa/intr_machdep.c 2001/10/24 02:03:55 int +ether_poll(void) +{ + static int i; + + int s = splimp(); + if (i >= pr_next) + i = 0 ; + if (pr[i].handler) + (*pr[i].handler)(pr[i].argument, 2); + i++ ; + splx(s); + return 1; /* more polling */ +} To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message