Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!rutgers!ucsd!ucbvax!decwrl!pyramid!prls!philabs!ttidca!mb
From: mb@ttidca.TTI.COM (Michael Bloom)
Newsgroups: comp.unix.wizards
Subject: Re: Help re "system processes"
Message-ID: <3047@ttidca.TTI.COM>
Date: 14 Aug 88 01:58:29 GMT
References: <1863@lll-lcc.llnl.gov>
Reply-To: mb@ttidca.tti.com (Michael Bloom)
Organization: Citicorp/TTI, Santa Monica
Lines: 16


	What I would like to do is write a kernel routine (i.e. a routine
	that is part of the UNIX system) that will receive and subsequently
	consume UDP packets destined for a certain UDP port.

	The problem is that in "udp_input" the packet is appended to the
	socket's receive buffer and then routine "sorwakeup" is called.
	Eventually, this results in all processes waiting on this socket
	channel to be awakened.  However, I want my kernel routine to
	be notified instead and it will then take the data received.

Unless you need a user context, how about comparing against the
"certain UDP port" and if the compare succeeds, post a software
interrupt in place of the sowakeup? If you're on a vax, you've still
got plenty of free software interrupt levels (three of which are
between splsoftclock and splnet).