//===-- llvm/BinaryFormat/GOFF.h - GOFF definitions --------------*- C++-*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This header contains common, non-processor-specific data structures and // constants for the GOFF file format. // // GOFF specifics can be found in MVS Program Management: Advanced Facilities. // See // https://www.ibm.com/docs/en/zos/3.1.0?topic=facilities-generalized-object-file-format-goff // //===----------------------------------------------------------------------===// #ifndef LLVM_BINARYFORMAT_GOFF_H #define LLVM_BINARYFORMAT_GOFF_H #include "llvm/Support/DataTypes.h" namespace llvm { namespace GOFF { /// \brief Length of the parts of a physical GOFF record. constexpr uint8_t RecordLength = …; constexpr uint8_t RecordPrefixLength = …; constexpr uint8_t PayloadLength = …; constexpr uint8_t RecordContentLength = …; /// \brief Maximum data length before starting a new card for RLD and TXT data. /// /// The maximum number of bytes that can be included in an RLD or TXT record and /// their continuations is a SIGNED 16 bit int despite what the spec says. The /// number of bytes we allow ourselves to attach to a card is thus arbitrarily /// limited to 32K-1 bytes. constexpr uint16_t MaxDataLength = …; /// \brief Prefix byte on every record. This indicates GOFF format. constexpr uint8_t PTVPrefix = …; enum RecordType : uint8_t { … }; enum ESDSymbolType : uint8_t { … }; enum ESDNameSpaceId : uint8_t { … }; enum ESDReserveQwords : uint8_t { … }; enum ESDAmode : uint8_t { … }; enum ESDRmode : uint8_t { … }; enum ESDTextStyle : uint8_t { … }; enum ESDBindingAlgorithm : uint8_t { … }; enum ESDTaskingBehavior : uint8_t { … }; enum ESDExecutable : uint8_t { … }; enum ESDDuplicateSymbolSeverity : uint8_t { … }; enum ESDBindingStrength : uint8_t { … }; enum ESDLoadingBehavior : uint8_t { … }; enum ESDBindingScope : uint8_t { … }; enum ESDLinkageType : uint8_t { … }; enum ESDAlignment : uint8_t { … }; enum ENDEntryPointRequest : uint8_t { … }; // \brief Subsections of the primary C_CODE section in the object file. enum SubsectionKind : uint8_t { … }; } // end namespace GOFF } // end namespace llvm #endif // LLVM_BINARYFORMAT_GOFF_H