]> git.saurik.com Git - apple/dyld.git/blob - testing/kernel-cache-tests/kernel-vtable-patching/main.cpp
dyld-851.27.tar.gz
[apple/dyld.git] / testing / kernel-cache-tests / kernel-vtable-patching / main.cpp
1
2 #include <libkern/c++/OSMetaClass.h>
3 #include <Kernel/libkern/c++/OSObject.h>
4
5 int __cxa_pure_virtual = 0;
6
7 #if 0
8 class OSObject : public OSMetaClassBase
9 {
10 OSDeclareAbstractStructors(OSObject);
11
12 public:
13 OSMetaClassDeclareReservedUnused(OSObject, 0);
14 OSMetaClassDeclareReservedUnused(OSObject, 1);
15 OSMetaClassDeclareReservedUnused(OSObject, 2);
16 OSMetaClassDeclareReservedUnused(OSObject, 3);
17 OSMetaClassDeclareReservedUnused(OSObject, 4);
18 OSMetaClassDeclareReservedUnused(OSObject, 5);
19 OSMetaClassDeclareReservedUnused(OSObject, 6);
20 OSMetaClassDeclareReservedUnused(OSObject, 7);
21 OSMetaClassDeclareReservedUnused(OSObject, 8);
22 OSMetaClassDeclareReservedUnused(OSObject, 9);
23 OSMetaClassDeclareReservedUnused(OSObject, 10);
24 OSMetaClassDeclareReservedUnused(OSObject, 11);
25 OSMetaClassDeclareReservedUnused(OSObject, 12);
26 OSMetaClassDeclareReservedUnused(OSObject, 13);
27 OSMetaClassDeclareReservedUnused(OSObject, 14);
28 OSMetaClassDeclareReservedUnused(OSObject, 15);
29 };
30 #endif
31
32 // OSDefineMetaClassAndAbstractStructors(OSObject, 0);
33 /* Class global data */
34 OSObject::MetaClass OSObject::gMetaClass;
35 const OSMetaClass * const OSObject::metaClass = &OSObject::gMetaClass;
36 const OSMetaClass * const OSObject::superClass = NULL;
37
38 // Virtual Padding
39 OSMetaClassDefineReservedUnused(OSObject, 0);
40 OSMetaClassDefineReservedUnused(OSObject, 1);
41 OSMetaClassDefineReservedUnused(OSObject, 2);
42 OSMetaClassDefineReservedUnused(OSObject, 3);
43 OSMetaClassDefineReservedUnused(OSObject, 4);
44 OSMetaClassDefineReservedUnused(OSObject, 5);
45 OSMetaClassDefineReservedUnused(OSObject, 6);
46 OSMetaClassDefineReservedUnused(OSObject, 7);
47 OSMetaClassDefineReservedUnused(OSObject, 8);
48 OSMetaClassDefineReservedUnused(OSObject, 9);
49 OSMetaClassDefineReservedUnused(OSObject, 10);
50 OSMetaClassDefineReservedUnused(OSObject, 11);
51 OSMetaClassDefineReservedUnused(OSObject, 12);
52 OSMetaClassDefineReservedUnused(OSObject, 13);
53 OSMetaClassDefineReservedUnused(OSObject, 14);
54 OSMetaClassDefineReservedUnused(OSObject, 15);
55
56 // struct IORPC { };
57
58 // OSMetaClassBase
59 OSMetaClassBase::OSMetaClassBase() { }
60 OSMetaClassBase::~OSMetaClassBase() { }
61 void OSMetaClassBase::_RESERVEDOSMetaClassBase4() { }
62 void OSMetaClassBase::_RESERVEDOSMetaClassBase5() { }
63 void OSMetaClassBase::_RESERVEDOSMetaClassBase6() { }
64 void OSMetaClassBase::_RESERVEDOSMetaClassBase7() { }
65 kern_return_t OSMetaClassBase::Dispatch(const IORPC rpc) { return 0; }
66 bool OSMetaClassBase::isEqualTo(const OSMetaClassBase*) const { return false; }
67
68 // OSMetaClass
69 OSMetaClass::OSMetaClass(const char* inClassName, const OSMetaClass* inSuperClass, unsigned int inClassSize) { }
70 OSMetaClass::~OSMetaClass() { }
71 void OSMetaClass::reservedCalled(int ind) const { }
72 void OSMetaClass::retain() const { }
73 void OSMetaClass::release() const { }
74 void OSMetaClass::release(int freeWhen) const { }
75 int OSMetaClass::getRetainCount() const { return 0; }
76 const OSMetaClass* OSMetaClass::getMetaClass() const { return NULL; }
77 void OSMetaClass::taggedRetain(const void * tag) const { }
78 void OSMetaClass::taggedRelease(const void * tag) const { }
79 void OSMetaClass::taggedRelease(const void * tag, const int freeWhen) const { }
80 bool OSMetaClass::serialize(OSSerialize * serializer) const { return false; }
81 void OSMetaClass::instanceConstructed() const { }
82
83 // OSMetaClass reserved methods
84 void OSMetaClass::_RESERVEDOSMetaClass0() { }
85 void OSMetaClass::_RESERVEDOSMetaClass1() { }
86 void OSMetaClass::_RESERVEDOSMetaClass2() { }
87 void OSMetaClass::_RESERVEDOSMetaClass3() { }
88 void OSMetaClass::_RESERVEDOSMetaClass4() { }
89 void OSMetaClass::_RESERVEDOSMetaClass5() { }
90 void OSMetaClass::_RESERVEDOSMetaClass6() { }
91 void OSMetaClass::_RESERVEDOSMetaClass7() { }
92
93 // OSObject::MetaClass
94 OSObject::MetaClass::MetaClass() : OSMetaClass("OSObject", OSObject::superClass, sizeof(OSObject)) { }
95 OSObject *OSObject::MetaClass::alloc() const { return NULL; }
96 kern_return_t OSObject::MetaClass::Dispatch(const IORPC rpc) { return 0; }
97
98 // OSObject
99 OSObject::OSObject(OSMetaClass const*) { }
100 OSObject::~OSObject() { }
101 const OSMetaClass* OSObject::getMetaClass() const { return NULL; }
102 void OSObject::free() { }
103 bool OSObject::init() { return false; }
104 void OSObject::retain() const { }
105 void OSObject::release() const { }
106 void OSObject::release(int freeWhen) const { }
107 int OSObject::getRetainCount() const { return 0; }
108 void OSObject::taggedRetain(const void * tag) const { }
109 void OSObject::taggedRelease(const void * tag) const { }
110 void OSObject::taggedRelease(const void * tag, const int freeWhen) const { }
111 bool OSObject::serialize(OSSerialize * serializer) const { return false; }
112 kern_return_t OSObject::Dispatch(const IORPC rpc) { return 0; }
113 void* OSObject::operator new(unsigned long) { return (void*)1; }
114 void OSObject::operator delete(void*, unsigned long) { return; }
115
116 __attribute__((section(("__HIB, __text"))))
117 extern "C" int _start() {
118 return 0;
119 }