macho_core/format/io/pod/
objc.rs1use zerocopy::{FromBytes, Immutable, KnownLayout};
4
5#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
6#[repr(C)]
7pub struct RawObjCClass64 {
9 pub isa: u64,
11 pub superclass: u64,
13 pub cache: u64,
15 pub vtable: u64,
17 pub data: u64, }
20
21#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
22#[repr(C)]
23pub struct RawClassRoT64 {
25 pub flags: u32,
27 pub instance_start: u32,
29 pub instance_size: u32,
31 pub reserved: u32,
33 pub ivar_layout: u64,
35 pub name: u64,
37 pub base_methods: u64,
39 pub base_protocols: u64,
41 pub ivars: u64,
43 pub weak_ivar_layout: u64,
45 pub base_properties: u64,
47}
48
49#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
50#[repr(C)]
51pub struct RawMethodListHeader {
53 pub entsize_and_flags: u32,
55 pub count: u32,
57}
58
59#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
60#[repr(C)]
61pub struct RawMethodT {
63 pub name: u64,
65 pub types: u64,
67 pub imp: u64,
69}
70
71#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
72#[repr(C)]
73pub struct RawRelativeMethodT {
75 pub name_offset: i32,
77 pub types_offset: i32,
79 pub imp_offset: i32,
81}
82
83#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
84#[repr(C)]
85pub struct RawIvarT64 {
87 pub offset_ptr: u64,
89 pub name: u64,
91 pub type_encoding: u64,
93 pub alignment: u32,
95 pub size: u32,
97}
98
99#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
100#[repr(C)]
101pub struct RawPropertyT {
103 pub name: u64,
105 pub attributes: u64,
107}
108
109#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
110#[repr(C)]
111pub struct RawProtocolT64 {
113 pub isa: u64,
115 pub name: u64,
117 pub protocols: u64,
119 pub instance_methods: u64,
121 pub class_methods: u64,
123 pub optional_instance_methods: u64,
125 pub optional_class_methods: u64,
127 pub instance_properties: u64,
129 pub size: u32,
131 pub flags: u32,
133}
134
135#[derive(Debug, Clone, Copy, FromBytes, Immutable, KnownLayout)]
136#[repr(C)]
137pub struct RawCategoryT64 {
139 pub name: u64,
141 pub cls: u64,
143 pub instance_methods: u64,
145 pub class_methods: u64,
147 pub protocols: u64,
149}