Root/
Source at commit 429 created 13 years 8 months ago. By meklort, Updated module system. Hooks can now be used within modules when cetaion functions are called in chameleon. Note that onle two hooks currently exist, more need to be added. I also updated the HelloWorld module to use a hook instead of print out right away. | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 2009 Evan Lojewski. All rights reserved.␊ |
3 | *␊ |
4 | */␊ |
5 | ␊ |
6 | #include <mach-o/loader.h>␊ |
7 | #include <mach-o/nlist.h>␊ |
8 | ␊ |
9 | #ifndef __BOOT2_KERNEL_PATCHER_H␊ |
10 | #define __BOOT2_KERNEL_PATCHER_H␊ |
11 | ␊ |
12 | ␊ |
13 | #define CPUID_MODEL_YONAH␉14␊ |
14 | #define CPUID_MODEL_MEROM␉15␊ |
15 | #define CPUID_MODEL_PENRYN␉23␊ |
16 | #define CPUID_MODEL_NEHALEM␉26␊ |
17 | #define CPUID_MODEL_ATOM␉28␊ |
18 | #define CPUID_MODEL_FIELDS␉30␉/* Lynnfield, Clarksfield, Jasper */␊ |
19 | #define CPUID_MODEL_DALES␉31␉/* Havendale, Auburndale */␊ |
20 | #define CPUID_MODEL_NEHALEM_EX␉46␊ |
21 | ␊ |
22 | ␊ |
23 | void patch_kernel(void* kernelData);␊ |
24 | ␊ |
25 | #define KERNEL_64␉1␊ |
26 | #define KERNEL_32␉2␊ |
27 | ␊ |
28 | int locate_symbols(void* kernelData);␊ |
29 | ␊ |
30 | void patch_kernel_32(void* kernelData);␊ |
31 | void patch_kernel_64(void* kernelData);␊ |
32 | ␊ |
33 | ␊ |
34 | ␊ |
35 | void patch_cpuid_set_info(void* kernelData, UInt32 impersonateFamily, UInt8 inpersonateModel);␊ |
36 | void patch_pmCPUExitHaltToOff(void* kernelData);␊ |
37 | void patch_lapic_init(void* kernelData);␊ |
38 | void patch_commpage_stuff_routine(void* kernelData);␊ |
39 | #endif /* !__BOOT2_KERNEL_PATCHER_H */␊ |
40 |