!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux web25.us.cloudlogin.co 5.10.237-xeon-hst #1 SMP Mon May 5 15:10:04 UTC 2025 x86_64 

uid=233359(alpastrology) gid=888(tty) groups=888(tty),33(tape) 

Safe-mode: OFF (not secure)

/usr/include/llvm/Object/   drwxr-xr-x
Free 6181.91 GB of 6263.11 GB (98.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     GOFFObjectFile.h (5.79 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
//===- GOFFObjectFile.h - GOFF object file implementation -------*- 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 file declares the GOFFObjectFile class.
// Record classes and derivatives are also declared and implemented.
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_OBJECT_GOFFOBJECTFILE_H
#define LLVM_OBJECT_GOFFOBJECTFILE_H

#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/IndexedMap.h"
#include "llvm/BinaryFormat/GOFF.h"
#include "llvm/Object/ObjectFile.h"
#include "llvm/Support/ConvertEBCDIC.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TargetParser/SubtargetFeature.h"
#include "llvm/TargetParser/Triple.h"

namespace llvm {

namespace object {

class GOFFObjectFile : public ObjectFile {
  friend class GOFFSymbolRef;

  IndexedMap<const uint8_t *> EsdPtrs; // Indexed by EsdId.
  SmallVector<const uint8_t *, 256> TextPtrs;

  mutable DenseMap<uint32_t, std::pair<size_t, std::unique_ptr<char[]>>>
      EsdNamesCache;

  typedef DataRefImpl SectionEntryImpl;
  // (EDID, 0)               code, r/o data section
  // (EDID,PRID)             r/w data section
  SmallVector<SectionEntryImpl, 256> SectionList;
  mutable DenseMap<uint32_t, SmallVector<uint8_t>> SectionDataCache;

public:
  Expected<StringRef> getSymbolName(SymbolRef Symbol) const;

  GOFFObjectFile(MemoryBufferRef Object, Error &Err);
  static inline bool classof(const Binary *V) { return V->isGOFF(); }
  section_iterator section_begin() const override;
  section_iterator section_end() const override;

  uint8_t getBytesInAddress() const override { return 8; }

  StringRef getFileFormatName() const override { return "GOFF-SystemZ"; }

  Triple::ArchType getArch() const override { return Triple::systemz; }

  Expected<SubtargetFeatures> getFeatures() const override { return SubtargetFeatures(); }

  bool isRelocatableObject() const override { return true; }

  void moveSymbolNext(DataRefImpl &Symb) const override;
  basic_symbol_iterator symbol_begin() const override;
  basic_symbol_iterator symbol_end() const override;

  bool is64Bit() const override {
    return true;
  }

  bool isSectionNoLoad(DataRefImpl Sec) const;
  bool isSectionReadOnlyData(DataRefImpl Sec) const;
  bool isSectionZeroInit(DataRefImpl Sec) const;

private:
  // SymbolRef.
  Expected<StringRef> getSymbolName(DataRefImpl Symb) const override;
  Expected<uint64_t> getSymbolAddress(DataRefImpl Symb) const override;
  uint64_t getSymbolValueImpl(DataRefImpl Symb) const override;
  uint64_t getCommonSymbolSizeImpl(DataRefImpl Symb) const override;
  Expected<uint32_t> getSymbolFlags(DataRefImpl Symb) const override;
  Expected<SymbolRef::Type> getSymbolType(DataRefImpl Symb) const override;
  Expected<section_iterator> getSymbolSection(DataRefImpl Symb) const override;
  uint64_t getSymbolSize(DataRefImpl Symb) const;

  const uint8_t *getSymbolEsdRecord(DataRefImpl Symb) const;
  bool isSymbolUnresolved(DataRefImpl Symb) const;
  bool isSymbolIndirect(DataRefImpl Symb) const;

  // SectionRef.
  void moveSectionNext(DataRefImpl &Sec) const override;
  virtual Expected<StringRef> getSectionName(DataRefImpl Sec) const override;
  uint64_t getSectionAddress(DataRefImpl Sec) const override;
  uint64_t getSectionSize(DataRefImpl Sec) const override;
  virtual Expected<ArrayRef<uint8_t>>
  getSectionContents(DataRefImpl Sec) const override;
  uint64_t getSectionIndex(DataRefImpl Sec) const override { return Sec.d.a; }
  uint64_t getSectionAlignment(DataRefImpl Sec) const override;
  bool isSectionCompressed(DataRefImpl Sec) const override { return false; }
  bool isSectionText(DataRefImpl Sec) const override;
  bool isSectionData(DataRefImpl Sec) const override;
  bool isSectionBSS(DataRefImpl Sec) const override { return false; }
  bool isSectionVirtual(DataRefImpl Sec) const override { return false; }
  relocation_iterator section_rel_begin(DataRefImpl Sec) const override {
    return relocation_iterator(RelocationRef(Sec, this));
  }
  relocation_iterator section_rel_end(DataRefImpl Sec) const override {
    return relocation_iterator(RelocationRef(Sec, this));
  }

  const uint8_t *getSectionEdEsdRecord(DataRefImpl &Sec) const;
  const uint8_t *getSectionPrEsdRecord(DataRefImpl &Sec) const;
  const uint8_t *getSectionEdEsdRecord(uint32_t SectionIndex) const;
  const uint8_t *getSectionPrEsdRecord(uint32_t SectionIndex) const;
  uint32_t getSectionDefEsdId(DataRefImpl &Sec) const;

  // RelocationRef.
  void moveRelocationNext(DataRefImpl &Rel) const override {}
  uint64_t getRelocationOffset(DataRefImpl Rel) const override { return 0; }
  symbol_iterator getRelocationSymbol(DataRefImpl Rel) const override {
    DataRefImpl Temp;
    return basic_symbol_iterator(SymbolRef(Temp, this));
  }
  uint64_t getRelocationType(DataRefImpl Rel) const override { return 0; }
  void getRelocationTypeName(DataRefImpl Rel,
                             SmallVectorImpl<char> &Result) const override {}
};

class GOFFSymbolRef : public SymbolRef {
public:
  GOFFSymbolRef(const SymbolRef &B) : SymbolRef(B) {
    assert(isa<GOFFObjectFile>(SymbolRef::getObject()));
  }

  const GOFFObjectFile *getObject() const {
    return cast<GOFFObjectFile>(BasicSymbolRef::getObject());
  }

  Expected<uint32_t> getSymbolGOFFFlags() const {
    return getObject()->getSymbolFlags(getRawDataRefImpl());
  }

  Expected<SymbolRef::Type> getSymbolGOFFType() const {
    return getObject()->getSymbolType(getRawDataRefImpl());
  }

  uint64_t getSize() const {
    return getObject()->getSymbolSize(getRawDataRefImpl());
  }
};

} // namespace object

} // namespace llvm

#endif

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0199 ]--