| ... | @@ -1257,6 +1257,24 @@ pub const VM_PROT_WRITE: vm_prot_t = 0x2; | ... | @@ -1257,6 +1257,24 @@ pub const VM_PROT_WRITE: vm_prot_t = 0x2; |
| 1257 | /// VM execute permission | 1257 | /// VM execute permission |
| 1258 | pub const VM_PROT_EXECUTE: vm_prot_t = 0x4; | 1258 | pub const VM_PROT_EXECUTE: vm_prot_t = 0x4; |
| 1259 | | 1259 | |
| | 1260 | // The following are used to encode rebasing information |
| | 1261 | pub const REBASE_TYPE_POINTER: u8 = 1; |
| | 1262 | pub const REBASE_TYPE_TEXT_ABSOLUTE32: u8 = 2; |
| | 1263 | pub const REBASE_TYPE_TEXT_PCREL32: u8 = 3; |
| | 1264 | |
| | 1265 | pub const REBASE_OPCODE_MASK: u8 = 0xF0; |
| | 1266 | pub const REBASE_IMMEDIATE_MASK: u8 = 0x0F; |
| | 1267 | pub const REBASE_OPCODE_DONE: u8 = 0x00; |
| | 1268 | pub const REBASE_OPCODE_SET_TYPE_IMM: u8 = 0x10; |
| | 1269 | pub const REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB: u8 = 0x20; |
| | 1270 | pub const REBASE_OPCODE_ADD_ADDR_ULEB: u8 = 0x30; |
| | 1271 | pub const REBASE_OPCODE_ADD_ADDR_IMM_SCALED: u8 = 0x40; |
| | 1272 | pub const REBASE_OPCODE_DO_REBASE_IMM_TIMES: u8 = 0x50; |
| | 1273 | pub const REBASE_OPCODE_DO_REBASE_ULEB_TIMES: u8 = 0x60; |
| | 1274 | pub const REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: u8 = 0x70; |
| | 1275 | pub const REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB: u8 = 0x80; |
| | 1276 | |
| | 1277 | // The following are used to encode binding information |
| 1260 | pub const BIND_TYPE_POINTER: u8 = 1; | 1278 | pub const BIND_TYPE_POINTER: u8 = 1; |
| 1261 | pub const BIND_TYPE_TEXT_ABSOLUTE32: u8 = 2; | 1279 | pub const BIND_TYPE_TEXT_ABSOLUTE32: u8 = 2; |
| 1262 | pub const BIND_TYPE_TEXT_PCREL32: u8 = 3; | 1280 | pub const BIND_TYPE_TEXT_PCREL32: u8 = 3; |
| ... | @@ -1360,7 +1378,7 @@ pub const N_WEAK_DEF: u16 = 0x80; | ... | @@ -1360,7 +1378,7 @@ pub const N_WEAK_DEF: u16 = 0x80; |
| 1360 | /// This bit is only available in .o files (MH_OBJECT filetype) | 1378 | /// This bit is only available in .o files (MH_OBJECT filetype) |
| 1361 | pub const N_SYMBOL_RESOLVER: u16 = 0x100; | 1379 | pub const N_SYMBOL_RESOLVER: u16 = 0x100; |
| 1362 | | 1380 | |
| 1363 | // The following are used on the flags byte of a terminal node // in the export information. | 1381 | // The following are used on the flags byte of a terminal node in the export information. |
| 1364 | pub const EXPORT_SYMBOL_FLAGS_KIND_MASK: u8 = 0x03; | 1382 | pub const EXPORT_SYMBOL_FLAGS_KIND_MASK: u8 = 0x03; |
| 1365 | pub const EXPORT_SYMBOL_FLAGS_KIND_REGULAR: u8 = 0x00; | 1383 | pub const EXPORT_SYMBOL_FLAGS_KIND_REGULAR: u8 = 0x00; |
| 1366 | pub const EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL: u8 = 0x01; | 1384 | pub const EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL: u8 = 0x01; |