This repository was archived by the owner on Nov 20, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathcommpage.h
80 lines (74 loc) · 4.56 KB
/
commpage.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
* Copyright © 2021 Keegan Saunders
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#pragma once
#include <stddef.h>
#include <stdint.h>
typedef void *user_addr_t;
static const uintptr_t _COMM_PAGE_START_ADDRESS = 0x7fffffe00000ULL;
static const size_t _COMM_PAGE_AREA_LENGTH = 0x1000;
/* See the cpu_capabilities.h header for i386 */
#define _COMM_PAGE_SIGNATURE (_COMM_PAGE_START_ADDRESS + 0x000)
#define _COMM_PAGE_SIGNATURELEN (0x10)
#define _COMM_PAGE_CPU_CAPABILITIES64 (_COMM_PAGE_START_ADDRESS + 0x010)
#define _COMM_PAGE_UNUSED (_COMM_PAGE_START_ADDRESS + 0x018)
#define _COMM_PAGE_VERSION (_COMM_PAGE_START_ADDRESS + 0x01E)
#define _COMM_PAGE_THIS_VERSION 14
#define _COMM_PAGE_CPU_CAPABILITIES (_COMM_PAGE_START_ADDRESS + 0x020)
#define _COMM_PAGE_NCPUS (_COMM_PAGE_START_ADDRESS + 0x022)
#define _COMM_PAGE_UNUSED0 (_COMM_PAGE_START_ADDRESS + 0x024)
#define _COMM_PAGE_CACHE_LINESIZE (_COMM_PAGE_START_ADDRESS + 0x026)
#define _COMM_PAGE_UNUSED4 (_COMM_PAGE_START_ADDRESS + 0x028)
#define _COMM_PAGE_MEMORY_PRESSURE (_COMM_PAGE_START_ADDRESS + 0x02c)
#define _COMM_PAGE_UNUSED3 (_COMM_PAGE_START_ADDRESS + 0x030)
#define _COMM_PAGE_ACTIVE_CPUS (_COMM_PAGE_START_ADDRESS + 0x034)
#define _COMM_PAGE_PHYSICAL_CPUS (_COMM_PAGE_START_ADDRESS + 0x035)
#define _COMM_PAGE_LOGICAL_CPUS (_COMM_PAGE_START_ADDRESS + 0x036)
#define _COMM_PAGE_UNUSED1 (_COMM_PAGE_START_ADDRESS + 0x037)
#define _COMM_PAGE_MEMORY_SIZE (_COMM_PAGE_START_ADDRESS + 0x038)
#define _COMM_PAGE_CPUFAMILY (_COMM_PAGE_START_ADDRESS + 0x040)
#define _COMM_PAGE_KDEBUG_ENABLE (_COMM_PAGE_START_ADDRESS + 0x044)
#define _COMM_PAGE_ATM_DIAGNOSTIC_CONFIG (_COMM_PAGE_START_ADDRESS + 0x48)
#define _COMM_PAGE_DTRACE_DOF_ENABLED (_COMM_PAGE_START_ADDRESS + 0x04C)
#define _COMM_PAGE_KERNEL_PAGE_SHIFT (_COMM_PAGE_START_ADDRESS + 0x04D)
#define _COMM_PAGE_USER_PAGE_SHIFT_64 (_COMM_PAGE_START_ADDRESS + 0x04E)
#define _COMM_PAGE_UNUSED2 (_COMM_PAGE_START_ADDRESS + 0x04F)
#define _COMM_PAGE_TIME_DATA_START (_COMM_PAGE_START_ADDRESS + 0x050)
#define _COMM_PAGE_NT_TSC_BASE (_COMM_PAGE_START_ADDRESS + 0x050)
#define _COMM_PAGE_NT_SCALE (_COMM_PAGE_START_ADDRESS + 0x058)
#define _COMM_PAGE_NT_SHIFT (_COMM_PAGE_START_ADDRESS + 0x05c)
#define _COMM_PAGE_NT_NS_BASE (_COMM_PAGE_START_ADDRESS + 0x060)
#define _COMM_PAGE_NT_GENERATION (_COMM_PAGE_START_ADDRESS + 0x068)
#define _COMM_PAGE_GTOD_GENERATION (_COMM_PAGE_START_ADDRESS + 0x06c)
#define _COMM_PAGE_GTOD_NS_BASE (_COMM_PAGE_START_ADDRESS + 0x070)
#define _COMM_PAGE_GTOD_SEC_BASE (_COMM_PAGE_START_ADDRESS + 0x078)
#define _COMM_PAGE_APPROX_TIME (_COMM_PAGE_START_ADDRESS + 0x080)
#define _COMM_PAGE_APPROX_TIME_SUPPORTED (_COMM_PAGE_START_ADDRESS+0x088
#define _COMM_PAGE_CONT_TIMEBASE (_COMM_PAGE_START_ADDRESS + 0x0C0)
#define _COMM_PAGE_BOOTTIME_USEC (_COMM_PAGE_START_ADDRESS + 0x0C8)
#define _COMM_PAGE_NEWTIMEOFDAY_DATA (_COMM_PAGE_START_ADDRESS + 0x0D0)
#define _COMM_PAGE_DYLD_FLAGS (_COMM_PAGE_START_ADDRESS + 0x100)
#define _COMM_PAGE_END (_COMM_PAGE_START_ADDRESS + 0xfff)