Path: utzoo!utgpu!water!watmath!clyde!rutgers!umd5!uvaarpa!mcnc!gatech!hao!noao!arizona!lm From: lm@arizona.edu (Larry McVoy) Newsgroups: comp.unix.wizards Subject: BSD internals/ether/software intrs Message-ID: <3522@megaron.arizona.edu> Date: 21 Jan 88 21:14:36 GMT Reply-To: lm@megaron.arizona.edu.UUCP (Larry McVoy) Organization: U of Arizona CS Dept, Tucson Lines: 24 Hi there- I need some info about the BSD kernel and I'm too lazy to look. What I want to know is a) when the ethernet driver takes an intr and gets to the point it has the data in its grubby little paws - does it just enqueue it? The path I found (4.3 Mt Xinu BSD) was deintr/derecv/deread (I think) and the last routine did a IF_ENQUEUE which does some stuff that looks like it's setting up a software interrupt. The question is: does it put the data on a queue and let "someone" know, and then return? It doesn't do anything with protocols (IP et al) right then (in interrupt context) does it? b) How do software interrupts in the BSD kernel work. I don't mean user level signals, but kernel level signals. When & how do they get delivered? If process A is in the kernel (intr) recieving a packet that is destined for who knows who, when does the protocol code get executed? Who is the cpu time charged to? Thanks much (even if you tell me to take my own advice), -- Larry McVoy lm@arizona.edu or ...!{uwvax,sun}!arizona.edu!lm Use the force - read the source.