Hello,
I read the manual for v12.0 chapters 1-3, and 10.  I have been 
attempting to experiment with CSpaces for the user space root thread.  I 
am trying to modify the CSpace to support multiple CNode levels by 
changing the guard from all zero bits above the radix (16 bits of radix 
on PC99 x64), to support multiple CNode levels.  I have been using 
seL4_TCB_SetSpace to modify the CSpace for seL4_CapInitThreadTCB.  The 
result is seL4_NoError and once I make this call the previously working 
capabilities tutorial quits working as expected. (Calls taking the 
original seL4_CapInitThreadTCB value are now returning 
seL4_InvalidCapability).  I have studied chapter three of the manual and 
I think I understand how the CSpace addressing works in depth.  What I 
can't seem to figure out is how to construct a cspace_root_data argument 
for the call to seL4_TCB_SetSpace for the number of guard bits and the 
guard values I want to use.  For example, if I wanted two levels each 
with a 4 bit guard and a 16 bit radix how would I construct 
cspace_root_data argument for a gaurd value of 0x0?   And for a gaurd 
value of 0xF?
(I intend to keep the original seL4_CapInitThreadTCB CNode as my level-1 
CNode for this experimentation.)
Thank you in advance if you can point me to some reference documentation 
that may cover how to construct the cspace_root_data argument, guidance, 
or direction you may be able to give.
Sincerely,
Ben McCart