<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
>From the provided documentation I understood that in memory data structures of a PNaCl program are incompatible to the host program because ABIs are different (e.g. PNaCl pointers are always 32-bit even when running on x86_64 platform).<br>
So PNaCl program can't access any data structures of the host program directly. The only communication way is by using syscalls, but the document does not specify syscalls in detail.<br></blockquote><div><br></div><div>
We should probably clarify in the final documentation, but the goal of PNaCl is to not only be portable and fast but also be safe for the user, and the way this is achieved is through NaCl's SFI. Specifically for syscalls:</div>
<div> <a href="http://www.chromium.org/nativeclient/reference/anatomy-of-a-sys">http://www.chromium.org/nativeclient/reference/anatomy-of-a-sys</a></div><div> </div><div>In a way the syscalls offered are defined by the embedding sandbox: NaCl through Chrome and sel_ldr have documented interfaces, and the NaCl SDK offers POSIX-like interfaces built on top of these.</div>
</div></div></div>