Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Oct 2001 13:48:09 -0400 (EDT)
From:      Matt Busigin <solaris@midnightrealm.org>
To:        freebsd-hackers@freebsd.org
Subject:   Message Passing
Message-ID:  <Pine.LNX.4.21.0110091339110.25937-100000@midnightrealm.org>

next in thread | raw e-mail | index | archive | help
Good morning fellow FreeBSDers:


That was exciting.  I couldn't post because my reverse DNS is buggered, so
now I have to resort to using an American shell account for mail.  
Sloowww! :-)

As a first experiment in hacking the FreeBSD kernel, I have written 'most'
of a local message passing system as a kernel module.  (I suppose it's not
really a kernel hack, strictly speaking, then, is it?  :)

It is by no means fast, but because one can't change the 'proc' structure
from within a kernel module, I had to store all of the messages, receiver
and sender information in lists.

Needless to say, it's slow, icky, and generally a bad idea.  Handling
inconsistencies is a pain in the arse.

My questions are:

	1/  Is there any better, more elegant way of storing the data that
	    is closer to the process structure -- from within a module?

	2/  Should I give up the module notion altogether, or at least
	    artially couple the important bits (like pointers to the
	    message queue in the struct proc definition) into the actual
	    kernel source?

I would appreciate any insight on the issue.  If there is something I can
read to gain enlightenment, I am quite happy to RTFM if someone can point
out which manual to read.  :-)

For now, after looking at SVSV IPC, I am rewriting it so that the pointers
are in the proc struct, and I am initialising them in kern_exec.c, but I
am wishing/hoping there is a more elegant manner that I can do this
completely in modules.


Thank-you,
Matt

-- 
Matt Busigin - mbusigin@helios.spang.org.uk


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.21.0110091339110.25937-100000>