1 #ifndef __PLATFORM_INTROSPECTION_INTERNAL_H__
2 #define __PLATFORM_INTROSPECTION_INTERNAL_H__
5 // Task Allocations (with 4K vm_page_size)
8 // +----------------+ <---- Head ----- +----------------+
9 // | Header | ----- Next ----> | Header | ----- Next ----> ...
10 // +----------------+ +----------------+
11 // | Meta Data | | Thread[126] |
12 // +----------------+ +----------------+
13 // | Thread[0] | | Thread[127] |
14 // +----------------+ +----------------+
16 // +----------------+ +----------------+
17 // | Thread[125] | | Thread[252] |
18 // +----------------+ +----------------+
22 struct platform_task_header_s
{
23 // Linkage to other platform task pages.
27 uint64_t _reserved
[2];
29 uint32_t _reserved
[6];
34 struct platform_task_metadata_s
{
35 platform_thread_t cursor
;
38 uint32_t is_64_bit
:1, unused_flags
:31;
40 uint32_t _reserved
[3];
42 uint32_t _reserved
[4];
47 struct platform_thread_s
{
50 platform_thread_id_t unique_id
;
51 mach_vm_address_t pthread_addr
;
56 struct platform_task_s
{
57 struct platform_task_header_s header
;
59 struct platform_task_metadata_s metadata
;
60 struct platform_thread_s threads
[127];
64 #endif // __PLATFORM_INTROSPECTION_INTERNAL_H__