how to transfer capabilities from server to client

Markus Partheymueller mpartheym at
Fri Jun 6 21:40:40 CEST 2014

> 1. In the dispatch function of the server, it extracts a cap from the stream
>           L4::Ipc::Snd_fpage cap;
>           ios >> cap;
>    Why do we use "cap" here? What is the difference between "cap" and the receive item(rec_cap)?

cap is the flexpage describing the mapping. In particular, it can be used to check the success of the mapping. Otherwise the move call would fail.

> 2. In this example, when does the map process finish?
>     I think it looks like it has already finished when the server receives the request.
>     If so, does it mean that the kernel preforms the map operation automatically? But how does the kernel 
>    know the capability needs to be mapped into server?

The mapping is done during the call. During IPC, the kernel matches receive and send items and performs the mapping. This is exactly why the server has to use setup_wait to insert the receive item.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <>

More information about the l4-hackers mailing list