KThreadLocalPage: Difference between revisions

Bond697 (talk | contribs)
No edit summary
Bond697 (talk | contribs)
add information
 
(2 intermediate revisions by the same user not shown)
Line 17: Line 17:
| KProcess*
| KProcess*
| Owner process
| Owner process
|-
| 0x8
| u32
| Number of threads owned by the process
|-
| 0xC
| char[8]
| Used to track the usage of thread local regions in the local page.
|-
| 0x14
| u32
| Zero
|}
|}
The 8-byte array used to track the regions in use in the page works like so:
Each char is either 1 or 0, and there's one char per thread local region.  0x200 bytes per region * 8 regions is 0x1000 bytes or 1 full page.  The chars are set to 1 to indicate the region is unused and 0 to indicate the region is in use.
Processes with more than 8 threads have multiple associated KThreadLocalPages which are linked together with KLinkedListNodes.