[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Where should port rights go?
From: |
Farid Hajji |
Subject: |
Re: Where should port rights go? |
Date: |
Sun, 26 Nov 2000 18:41:01 +0100 |
> > > 9. port-rights entirely managed by concerned parties:
[...]
> Implementing this scheme could be done in a library that would need to
> be linked against every Hurd binary. This library would dedicate a thread
> to handle the port-rights protocol and associated port-rights map of every
> client, as well as registering with 'proc' (or whoever). A binary not
> linking this library could simply not participate in the port-rights
> passing scheme unless it does this stuff manually.
Of course, libports already provides interesting functions that could
be used to implement the distributed port-rights scheme described earlier:
* ports_create_class() uses a clean_routine that is automatically
called when a port is destroyed. This routine could deregister the
port-right at the originator (<C1,destroy-right,r>).
* ports_create_port(), ports_reallocate_port() ... which allocate
port rights could be modified/extended to notify 'proc', manage
the individual port-right maps and send the port-rights to clients.
* ports metadata (void* instead of port_info*) could be used to link
against the maps of port-rights in some way.
* the port-right reference count and other libports features may
be useful too.
I didn't dig very deep in libports (yet), but as far as I can see it
right now, we could as well think seriously about a libports-l4 backend
(or should it be better libports-mom) that would implement the distributed
port-rights scheme, without changing the front-end (a.k.a. public interface)
used extensively in the Hurd.
-Farid.
--
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany | address@hidden
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
Murphy's Law fails only when you try to demonstrate it, and thus succeeds.