OLD | NEW |
(Empty) | |
| 1 struct cd_objc2_list_header { |
| 2 uint32_t entsize; |
| 3 uint32_t count; |
| 4 }; |
| 5 |
| 6 struct cd_objc2_image_info { |
| 7 uint32_t version; |
| 8 uint32_t flags; |
| 9 }; |
| 10 |
| 11 // |
| 12 // 32-bit |
| 13 // |
| 14 |
| 15 struct cd_objc2_class_32 { |
| 16 uint32_t isa; |
| 17 uint32_t superclass; |
| 18 uint32_t cache; |
| 19 uint32_t vtable; |
| 20 uint32_t data; // points to class_ro_t |
| 21 uint32_t reserved1; |
| 22 uint32_t reserved2; |
| 23 uint32_t reserved3; |
| 24 }; |
| 25 |
| 26 struct cd_objc2_class_ro_t_32 { |
| 27 uint32_t flags; |
| 28 uint32_t instanceStart; |
| 29 uint32_t instanceSize; |
| 30 uint32_t reserved; |
| 31 uint32_t ivarLayout; |
| 32 uint32_t name; |
| 33 uint32_t baseMethods; |
| 34 uint32_t baseProtocols; |
| 35 uint32_t ivars; |
| 36 uint32_t weakIvarLayout; |
| 37 uint32_t baseProperties; |
| 38 }; |
| 39 |
| 40 struct cd_objc2_method_32 { |
| 41 uint32_t name; |
| 42 uint32_t types; |
| 43 uint32_t imp; |
| 44 }; |
| 45 |
| 46 struct cd_objc2_ivar_32 { |
| 47 uint32_t offset; |
| 48 uint32_t name; |
| 49 uint32_t type; |
| 50 uint32_t alignment; |
| 51 uint32_t size; |
| 52 }; |
| 53 |
| 54 struct cd_objc2_property_32 { |
| 55 uint32_t name; |
| 56 uint32_t attributes; |
| 57 }; |
| 58 |
| 59 struct cd_objc2_protocol_32 { |
| 60 uint32_t isa; |
| 61 uint32_t name; |
| 62 uint32_t protocols; |
| 63 uint32_t instanceMethods; |
| 64 uint32_t classMethods; |
| 65 uint32_t optionalInstanceMethods; |
| 66 uint32_t optionalClassMethods; |
| 67 uint32_t instanceProperties; // So far, always 0 |
| 68 }; |
| 69 |
| 70 struct cd_objc2_category_32 { |
| 71 uint32_t name; |
| 72 uint32_t class; |
| 73 uint32_t instanceMethods; |
| 74 uint32_t classMethods; |
| 75 uint32_t protocols; |
| 76 uint32_t instanceProperties; |
| 77 uint32_t v7; |
| 78 uint32_t v8; |
| 79 }; |
| 80 |
| 81 // |
| 82 // 64-bit |
| 83 // |
| 84 |
| 85 struct cd_objc2_class_64 { |
| 86 uint64_t isa; |
| 87 uint64_t superclass; |
| 88 uint64_t cache; |
| 89 uint64_t vtable; |
| 90 uint64_t data; // points to class_ro_t |
| 91 uint64_t reserved1; |
| 92 uint64_t reserved2; |
| 93 uint64_t reserved3; |
| 94 }; |
| 95 |
| 96 struct cd_objc2_class_ro_t_64 { |
| 97 uint32_t flags; |
| 98 uint32_t instanceStart; |
| 99 uint32_t instanceSize; |
| 100 uint32_t reserved; |
| 101 uint64_t ivarLayout; |
| 102 uint64_t name; |
| 103 uint64_t baseMethods; |
| 104 uint64_t baseProtocols; |
| 105 uint64_t ivars; |
| 106 uint64_t weakIvarLayout; |
| 107 uint64_t baseProperties; |
| 108 }; |
| 109 |
| 110 struct cd_objc2_method_64 { |
| 111 uint64_t name; |
| 112 uint64_t types; |
| 113 uint64_t imp; |
| 114 }; |
| 115 |
| 116 struct cd_objc2_ivar_64 { |
| 117 uint64_t offset; |
| 118 uint64_t name; |
| 119 uint64_t type; |
| 120 uint32_t alignment; |
| 121 uint32_t size; |
| 122 }; |
| 123 |
| 124 struct cd_objc2_property_64 { |
| 125 uint64_t name; |
| 126 uint64_t attributes; |
| 127 }; |
| 128 |
| 129 struct cd_objc2_protocol_64 { |
| 130 uint64_t isa; |
| 131 uint64_t name; |
| 132 uint64_t protocols; |
| 133 uint64_t instanceMethods; |
| 134 uint64_t classMethods; |
| 135 uint64_t optionalInstanceMethods; |
| 136 uint64_t optionalClassMethods; |
| 137 uint64_t instanceProperties; // So far, always 0 |
| 138 }; |
| 139 |
| 140 struct cd_objc2_category_64 { |
| 141 uint64_t name; |
| 142 uint64_t class; |
| 143 uint64_t instanceMethods; |
| 144 uint64_t classMethods; |
| 145 uint64_t protocols; |
| 146 uint64_t instanceProperties; |
| 147 uint64_t v7; |
| 148 uint64_t v8; |
| 149 }; |
OLD | NEW |