Changes

384 bytes added ,  01:48, 27 April 2014
no edit summary
Line 40: Line 40:  
Translate parameters are modified/translated transparently by the kernel. They are used to transfer handles/buffers between the different processes.
 
Translate parameters are modified/translated transparently by the kernel. They are used to transfer handles/buffers between the different processes.
   −
Translate parameters comes in pairs of two words, one descriptor and one value.
+
The type of parameter is described by the bits 1-3 in the translation descriptor. Parameter types accepted by the kernel are: 0, 1, (2?), 5, 6, 7.
 +
 
 +
The number of parameters covered by a descriptor is type-dependent:
 +
Type 0:
 +
    length = (desc >> 26) + 1
 +
Type 1, (2?), 5, 6, 7:
 +
    length = 1
 +
 
 +
Type 0 does the following:
 +
if desc & 0x30 == 0x20:
 +
  write process id to value
 +
else:
 +
  translate handle
 +
  if desc & 0x30 == 0x10:
 +
    close handle for caller
 +
 
 +
--
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"