Chameleon

Chameleon Svn Source Tree

Root/branches/meklort/i386/modules/KernelPatcher/kernel_patcher.h

Source at commit 364 created 13 years 8 months ago.
By meklort, Updated rock paper scissors implimentation /com.apple.Boot.RPS/ to work correctly
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#define CPUID_MODEL_ANY0x00
13#define CPUID_MODEL_UNKNOWN0x01
14
15#define CPUID_MODEL_YONAH14
16#define CPUID_MODEL_MEROM15
17#define CPUID_MODEL_PENRYN23
18#define CPUID_MODEL_NEHALEM26
19#define CPUID_MODEL_ATOM28
20#define CPUID_MODEL_FIELDS30/* Lynnfield, Clarksfield, Jasper */
21#define CPUID_MODEL_DALES31/* Havendale, Auburndale */
22#define CPUID_MODEL_NEHALEM_EX46
23
24#define KERNEL_ANY0x00
25#define KERNEL_640x01
26#define KERNEL_320x02
27
28
29typedef struct patchRoutine_t
30{
31void* patchRoutine;
32int validArchs;
33int validCpu;
34struct patchRoutine_t* next;
35} patchRoutine_t;
36
37
38typedef struct kernSymbols_t
39{
40char* symbol;
41void* symbolAddress;
42struct kernSymbols_t* next;
43} kernSymbols_t;
44
45void* lookup_kernel_symbol(const char* name);
46
47void patch_kernel(void* kernelData);
48void register_kernel_patch(void* patch, int arch, int cpus);
49
50int locate_symbols(void* kernelData);
51
52void patch_kernel_32(void* kernelData);
53
54
55
56void patch_cpuid_set_info(void* kernelData, UInt32 impersonateFamily, UInt8 inpersonateModel);
57void patch_pmCPUExitHaltToOff(void* kernelData);
58void patch_lapic_init(void* kernelData);
59void patch_commpage_stuff_routine(void* kernelData);
60#endif /* !__BOOT2_KERNEL_PATCHER_H */
61

Archive Download this file

Revision: 364