kernel upcall documentation

Daniel Eischen deischen at freebsd.org
Fri Oct 21 21:53:42 PDT 2005


On Sat, 22 Oct 2005, Konstantinos Boukis wrote:

> I tried not to bombard you with all the information of what I am doing bu=
t it
> seems inevitable ;-). I am working on a theoretical research project and =
the
> goal is to develop a mobile terminal (e.g. one that changes network
> continuously) that will be able to adapt to the offered mobility protocol=
s
> (i.e. like Mobile IP) offered by the network. In my implementation the ke=
rnel
> identifies the offered protocol and installs the appropriate modules.

There are other examples to look at, like devd.  Actually, I don't
see why you can't just use devd.  From devd(8):

    "Another example would be for devd to use a table to locate and load vi=
a
     kldload(8) the proper driver for an unrecognized device that is added =
to
     the system."

> >From my perspective I am more concerned for preserving the theoretical
> constrains (i.e. the model of computation) than the practical ones. Of co=
urse I
> understand your perspective as well; you are developing an operating syst=
em and
> your concern is to make it as stable as possible. But let=92s assume that=
 a
> userland stack does exist and is valid and mapped, can a kernel thread su=
spend,
> call the function pointed by ku_func in userland and then resume in kerne=
l
> space? At the end of the day it is interesting and good fun to play aroun=
d with
> those things, which I guess is our concern in common.

You might be able to get it to work, but it would probably take more work
to get it to work the way you want it to.  It would still be easier to
make a simple device driver and use ioctl().  Again, look at devd.

--=20
DE



More information about the freebsd-threads mailing list