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