blob: 42390a2cc15bae67b2ed95f56a5cdafffbcb735b [file] [log] [blame]
Jez Ng1e1a3f62020-05-21 22:26:351//===- MachOStructs.h -------------------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file defines structures used in the MachO object file format. Note that
10// unlike llvm/BinaryFormat/MachO.h, the structs here are defined in terms of
11// endian- and alignment-compatibility wrappers.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLD_MACHO_MACHO_STRUCTS_H
16#define LLD_MACHO_MACHO_STRUCTS_H
17
18#include "llvm/Support/Endian.h"
19
Nico Weberbf20d432022-08-07 14:37:4920namespace lld::structs {
Jez Ng1e1a3f62020-05-21 22:26:3521
22struct nlist_64 {
23 llvm::support::ulittle32_t n_strx;
24 uint8_t n_type;
25 uint8_t n_sect;
26 llvm::support::ulittle16_t n_desc;
27 llvm::support::ulittle64_t n_value;
28};
29
Jez Ng817d98d2021-04-02 22:46:1830struct nlist {
31 llvm::support::ulittle32_t n_strx;
32 uint8_t n_type;
33 uint8_t n_sect;
34 llvm::support::ulittle16_t n_desc;
35 llvm::support::ulittle32_t n_value;
36};
37
Jez Ng3bc88eb2021-04-16 01:14:3238struct entry_point_command {
39 llvm::support::ulittle32_t cmd;
40 llvm::support::ulittle32_t cmdsize;
41 llvm::support::ulittle64_t entryoff;
42 llvm::support::ulittle64_t stacksize;
43};
44
Nico Weberbf20d432022-08-07 14:37:4945} // namespace lld::structs
Jez Ng1e1a3f62020-05-21 22:26:3546
47#endif