deceit operations for clans+chiefs.

Gernot Heiser gernot at cse.unsw.edu.au
Sat May 1 14:52:04 CEST 1999


>>>>> "DP" == Daniel Potts <danielp at cse.unsw.edu.au> writes:

DP> Assume task A is the chief of task B, which is the chief of task C, which
DP> is the chief of task D. ;-)

DP> * Now, D does an ipc call to A. A successfully receives the message from D
DP> via the chiefs (C and B). 

DP> * Now when A replies to this, the message first gets intercepted by B. 

DP> * B sends a deceiting ipc to D with A as the virtual sender. This gets
DP> intercepted by C.

DP> * C sends a deceiting ipc to D with A as the virtual sender. This step
DP> fails (?!) due to direction preservation not holding. That is when C 
DP> checks nchief on A it returns L4_NC_OUTER_CLAN, and nchief on D returns
DP> L4_NC_SAME_CLAN, which is not equal, and therefore not direction
DP> preserving.

I don't see why this shouldn't work. It's direction presevering, and
therefore there's nor reason for it not to work. If it doesn't then
that's a bug.

There's no "nchief" syscall, if the Alpha's got one, ten that's an old
API. The syscall is "id_nearest".

The manual isn't actually quite clear on this (and should be fixed
up). D calling id_nearest on D should return D (with whatever type,
that's the bit where the manual isn't clear).

Gernot
--
Gernot Heiser                ,--_|\   School of Computer Sci. & Engin.
Phone:  +61 2 9385 5156     /      \  The University of NSW
Fax:    +61 2 9385 5995     \_,--._*  Sydney, Australia 2052
E-mail: G.Heiser at unsw.edu.au      v   http://www.cse.unsw.edu.au/~gernot
PGP	fingerprint: 94 1E B8 28 25 FD 7C 94  20 10 92 E5 0B FF 39 8F



More information about the l4-hackers mailing list