some deletions
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201028153306-37f0764111ff / cmd / splitdwarf / internal / macho / macho.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.0.0-20201028153306-37f0764111ff/cmd/splitdwarf/internal/macho/macho.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.0.0-20201028153306-37f0764111ff/cmd/splitdwarf/internal/macho/macho.go
deleted file mode 100644 (file)
index 22f6022..0000000
+++ /dev/null
@@ -1,468 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Mach-O header data structures
-// http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html
-
-package macho
-
-import (
-       "encoding/binary"
-       "strconv"
-)
-
-// A FileHeader represents a Mach-O file header.
-type FileHeader struct {
-       Magic        uint32
-       Cpu          Cpu
-       SubCpu       uint32
-       Type         HdrType
-       NCommands    uint32 // number of load commands
-       SizeCommands uint32 // size of all the load commands, not including this header.
-       Flags        HdrFlags
-}
-
-func (h *FileHeader) Put(b []byte, o binary.ByteOrder) int {
-       o.PutUint32(b[0:], h.Magic)
-       o.PutUint32(b[4:], uint32(h.Cpu))
-       o.PutUint32(b[8:], h.SubCpu)
-       o.PutUint32(b[12:], uint32(h.Type))
-       o.PutUint32(b[16:], h.NCommands)
-       o.PutUint32(b[20:], h.SizeCommands)
-       o.PutUint32(b[24:], uint32(h.Flags))
-       if h.Magic == Magic32 {
-               return 28
-       }
-       o.PutUint32(b[28:], 0)
-       return 32
-}
-
-const (
-       fileHeaderSize32 = 7 * 4
-       fileHeaderSize64 = 8 * 4
-)
-
-const (
-       Magic32  uint32 = 0xfeedface
-       Magic64  uint32 = 0xfeedfacf
-       MagicFat uint32 = 0xcafebabe
-)
-
-type HdrFlags uint32
-type SegFlags uint32
-type SecFlags uint32
-
-// A HdrType is the Mach-O file type, e.g. an object file, executable, or dynamic library.
-type HdrType uint32
-
-const ( // SNAKE_CASE to CamelCase translation from C names
-       MhObject  HdrType = 1
-       MhExecute HdrType = 2
-       MhCore    HdrType = 4
-       MhDylib   HdrType = 6
-       MhBundle  HdrType = 8
-       MhDsym    HdrType = 0xa
-)
-
-var typeStrings = []intName{
-       {uint32(MhObject), "Obj"},
-       {uint32(MhExecute), "Exec"},
-       {uint32(MhDylib), "Dylib"},
-       {uint32(MhBundle), "Bundle"},
-       {uint32(MhDsym), "Dsym"},
-}
-
-func (t HdrType) String() string   { return stringName(uint32(t), typeStrings, false) }
-func (t HdrType) GoString() string { return stringName(uint32(t), typeStrings, true) }
-
-// A Cpu is a Mach-O cpu type.
-type Cpu uint32
-
-const cpuArch64 = 0x01000000
-
-const (
-       Cpu386   Cpu = 7
-       CpuAmd64 Cpu = Cpu386 | cpuArch64
-       CpuArm   Cpu = 12
-       CpuArm64 Cpu = CpuArm | cpuArch64
-       CpuPpc   Cpu = 18
-       CpuPpc64 Cpu = CpuPpc | cpuArch64
-)
-
-var cpuStrings = []intName{
-       {uint32(Cpu386), "Cpu386"},
-       {uint32(CpuAmd64), "CpuAmd64"},
-       {uint32(CpuArm), "CpuArm"},
-       {uint32(CpuArm64), "CpuArm64"},
-       {uint32(CpuPpc), "CpuPpc"},
-       {uint32(CpuPpc64), "CpuPpc64"},
-}
-
-func (i Cpu) String() string   { return stringName(uint32(i), cpuStrings, false) }
-func (i Cpu) GoString() string { return stringName(uint32(i), cpuStrings, true) }
-
-// A LoadCmd is a Mach-O load command.
-type LoadCmd uint32
-
-func (c LoadCmd) Command() LoadCmd { return c }
-
-const ( // SNAKE_CASE to CamelCase translation from C names
-       // Note 3 and 8 are obsolete
-       LcSegment            LoadCmd = 0x1
-       LcSymtab             LoadCmd = 0x2
-       LcThread             LoadCmd = 0x4
-       LcUnixthread         LoadCmd = 0x5 // thread+stack
-       LcDysymtab           LoadCmd = 0xb
-       LcDylib              LoadCmd = 0xc // load dylib command
-       LcIdDylib            LoadCmd = 0xd // dynamically linked shared lib ident
-       LcLoadDylinker       LoadCmd = 0xe // load a dynamic linker
-       LcIdDylinker         LoadCmd = 0xf // id dylinker command (not load dylinker command)
-       LcSegment64          LoadCmd = 0x19
-       LcUuid               LoadCmd = 0x1b
-       LcCodeSignature      LoadCmd = 0x1d
-       LcSegmentSplitInfo   LoadCmd = 0x1e
-       LcRpath              LoadCmd = 0x8000001c
-       LcEncryptionInfo     LoadCmd = 0x21
-       LcDyldInfo           LoadCmd = 0x22
-       LcDyldInfoOnly       LoadCmd = 0x80000022
-       LcVersionMinMacosx   LoadCmd = 0x24
-       LcVersionMinIphoneos LoadCmd = 0x25
-       LcFunctionStarts     LoadCmd = 0x26
-       LcDyldEnvironment    LoadCmd = 0x27
-       LcMain               LoadCmd = 0x80000028 // replacement for UnixThread
-       LcDataInCode         LoadCmd = 0x29       // There are non-instructions in text
-       LcSourceVersion      LoadCmd = 0x2a       // Source version used to build binary
-       LcDylibCodeSignDrs   LoadCmd = 0x2b
-       LcEncryptionInfo64   LoadCmd = 0x2c
-       LcVersionMinTvos     LoadCmd = 0x2f
-       LcVersionMinWatchos  LoadCmd = 0x30
-)
-
-var cmdStrings = []intName{
-       {uint32(LcSegment), "LoadCmdSegment"},
-       {uint32(LcThread), "LoadCmdThread"},
-       {uint32(LcUnixthread), "LoadCmdUnixThread"},
-       {uint32(LcDylib), "LoadCmdDylib"},
-       {uint32(LcIdDylib), "LoadCmdIdDylib"},
-       {uint32(LcLoadDylinker), "LoadCmdLoadDylinker"},
-       {uint32(LcIdDylinker), "LoadCmdIdDylinker"},
-       {uint32(LcSegment64), "LoadCmdSegment64"},
-       {uint32(LcUuid), "LoadCmdUuid"},
-       {uint32(LcRpath), "LoadCmdRpath"},
-       {uint32(LcDyldEnvironment), "LoadCmdDyldEnv"},
-       {uint32(LcMain), "LoadCmdMain"},
-       {uint32(LcDataInCode), "LoadCmdDataInCode"},
-       {uint32(LcSourceVersion), "LoadCmdSourceVersion"},
-       {uint32(LcDyldInfo), "LoadCmdDyldInfo"},
-       {uint32(LcDyldInfoOnly), "LoadCmdDyldInfoOnly"},
-       {uint32(LcVersionMinMacosx), "LoadCmdMinOsx"},
-       {uint32(LcFunctionStarts), "LoadCmdFunctionStarts"},
-}
-
-func (i LoadCmd) String() string   { return stringName(uint32(i), cmdStrings, false) }
-func (i LoadCmd) GoString() string { return stringName(uint32(i), cmdStrings, true) }
-
-type (
-       // A Segment32 is a 32-bit Mach-O segment load command.
-       Segment32 struct {
-               LoadCmd
-               Len     uint32
-               Name    [16]byte
-               Addr    uint32
-               Memsz   uint32
-               Offset  uint32
-               Filesz  uint32
-               Maxprot uint32
-               Prot    uint32
-               Nsect   uint32
-               Flag    SegFlags
-       }
-
-       // A Segment64 is a 64-bit Mach-O segment load command.
-       Segment64 struct {
-               LoadCmd
-               Len     uint32
-               Name    [16]byte
-               Addr    uint64
-               Memsz   uint64
-               Offset  uint64
-               Filesz  uint64
-               Maxprot uint32
-               Prot    uint32
-               Nsect   uint32
-               Flag    SegFlags
-       }
-
-       // A SymtabCmd is a Mach-O symbol table command.
-       SymtabCmd struct {
-               LoadCmd
-               Len     uint32
-               Symoff  uint32
-               Nsyms   uint32
-               Stroff  uint32
-               Strsize uint32
-       }
-
-       // A DysymtabCmd is a Mach-O dynamic symbol table command.
-       DysymtabCmd struct {
-               LoadCmd
-               Len            uint32
-               Ilocalsym      uint32
-               Nlocalsym      uint32
-               Iextdefsym     uint32
-               Nextdefsym     uint32
-               Iundefsym      uint32
-               Nundefsym      uint32
-               Tocoffset      uint32
-               Ntoc           uint32
-               Modtaboff      uint32
-               Nmodtab        uint32
-               Extrefsymoff   uint32
-               Nextrefsyms    uint32
-               Indirectsymoff uint32
-               Nindirectsyms  uint32
-               Extreloff      uint32
-               Nextrel        uint32
-               Locreloff      uint32
-               Nlocrel        uint32
-       }
-
-       // A DylibCmd is a Mach-O load dynamic library command.
-       DylibCmd struct {
-               LoadCmd
-               Len            uint32
-               Name           uint32
-               Time           uint32
-               CurrentVersion uint32
-               CompatVersion  uint32
-       }
-
-       // A DylinkerCmd is a Mach-O load dynamic linker or environment command.
-       DylinkerCmd struct {
-               LoadCmd
-               Len  uint32
-               Name uint32
-       }
-
-       // A RpathCmd is a Mach-O rpath command.
-       RpathCmd struct {
-               LoadCmd
-               Len  uint32
-               Path uint32
-       }
-
-       // A Thread is a Mach-O thread state command.
-       Thread struct {
-               LoadCmd
-               Len  uint32
-               Type uint32
-               Data []uint32
-       }
-
-       // LC_DYLD_INFO, LC_DYLD_INFO_ONLY
-       DyldInfoCmd struct {
-               LoadCmd
-               Len                      uint32
-               RebaseOff, RebaseLen     uint32 // file offset and length; data contains segment indices
-               BindOff, BindLen         uint32 // file offset and length; data contains segment indices
-               WeakBindOff, WeakBindLen uint32 // file offset and length
-               LazyBindOff, LazyBindLen uint32 // file offset and length
-               ExportOff, ExportLen     uint32 // file offset and length
-       }
-
-       // LC_CODE_SIGNATURE, LC_SEGMENT_SPLIT_INFO, LC_FUNCTION_STARTS, LC_DATA_IN_CODE, LC_DYLIB_CODE_SIGN_DRS
-       LinkEditDataCmd struct {
-               LoadCmd
-               Len              uint32
-               DataOff, DataLen uint32 // file offset and length
-       }
-
-       // LC_ENCRYPTION_INFO, LC_ENCRYPTION_INFO_64
-       EncryptionInfoCmd struct {
-               LoadCmd
-               Len                uint32
-               CryptOff, CryptLen uint32 // file offset and length
-               CryptId            uint32
-       }
-
-       UuidCmd struct {
-               LoadCmd
-               Len uint32
-               Id  [16]byte
-       }
-
-       // TODO Commands below not fully supported yet.
-
-       EntryPointCmd struct {
-               LoadCmd
-               Len       uint32
-               EntryOff  uint64 // file offset
-               StackSize uint64 // if not zero, initial stack size
-       }
-
-       NoteCmd struct {
-               LoadCmd
-               Len            uint32
-               Name           [16]byte
-               Offset, Filesz uint64 // file offset and length
-       }
-)
-
-const (
-       FlagNoUndefs              HdrFlags = 0x1
-       FlagIncrLink              HdrFlags = 0x2
-       FlagDyldLink              HdrFlags = 0x4
-       FlagBindAtLoad            HdrFlags = 0x8
-       FlagPrebound              HdrFlags = 0x10
-       FlagSplitSegs             HdrFlags = 0x20
-       FlagLazyInit              HdrFlags = 0x40
-       FlagTwoLevel              HdrFlags = 0x80
-       FlagForceFlat             HdrFlags = 0x100
-       FlagNoMultiDefs           HdrFlags = 0x200
-       FlagNoFixPrebinding       HdrFlags = 0x400
-       FlagPrebindable           HdrFlags = 0x800
-       FlagAllModsBound          HdrFlags = 0x1000
-       FlagSubsectionsViaSymbols HdrFlags = 0x2000
-       FlagCanonical             HdrFlags = 0x4000
-       FlagWeakDefines           HdrFlags = 0x8000
-       FlagBindsToWeak           HdrFlags = 0x10000
-       FlagAllowStackExecution   HdrFlags = 0x20000
-       FlagRootSafe              HdrFlags = 0x40000
-       FlagSetuidSafe            HdrFlags = 0x80000
-       FlagNoReexportedDylibs    HdrFlags = 0x100000
-       FlagPIE                   HdrFlags = 0x200000
-       FlagDeadStrippableDylib   HdrFlags = 0x400000
-       FlagHasTLVDescriptors     HdrFlags = 0x800000
-       FlagNoHeapExecution       HdrFlags = 0x1000000
-       FlagAppExtensionSafe      HdrFlags = 0x2000000
-)
-
-// A Section32 is a 32-bit Mach-O section header.
-type Section32 struct {
-       Name     [16]byte
-       Seg      [16]byte
-       Addr     uint32
-       Size     uint32
-       Offset   uint32
-       Align    uint32
-       Reloff   uint32
-       Nreloc   uint32
-       Flags    SecFlags
-       Reserve1 uint32
-       Reserve2 uint32
-}
-
-// A Section64 is a 64-bit Mach-O section header.
-type Section64 struct {
-       Name     [16]byte
-       Seg      [16]byte
-       Addr     uint64
-       Size     uint64
-       Offset   uint32
-       Align    uint32
-       Reloff   uint32
-       Nreloc   uint32
-       Flags    SecFlags
-       Reserve1 uint32
-       Reserve2 uint32
-       Reserve3 uint32
-}
-
-// An Nlist32 is a Mach-O 32-bit symbol table entry.
-type Nlist32 struct {
-       Name  uint32
-       Type  uint8
-       Sect  uint8
-       Desc  uint16
-       Value uint32
-}
-
-// An Nlist64 is a Mach-O 64-bit symbol table entry.
-type Nlist64 struct {
-       Name  uint32
-       Type  uint8
-       Sect  uint8
-       Desc  uint16
-       Value uint64
-}
-
-func (n *Nlist64) Put64(b []byte, o binary.ByteOrder) uint32 {
-       o.PutUint32(b[0:], n.Name)
-       b[4] = byte(n.Type)
-       b[5] = byte(n.Sect)
-       o.PutUint16(b[6:], n.Desc)
-       o.PutUint64(b[8:], n.Value)
-       return 8 + 8
-}
-
-func (n *Nlist64) Put32(b []byte, o binary.ByteOrder) uint32 {
-       o.PutUint32(b[0:], n.Name)
-       b[4] = byte(n.Type)
-       b[5] = byte(n.Sect)
-       o.PutUint16(b[6:], n.Desc)
-       o.PutUint32(b[8:], uint32(n.Value))
-       return 8 + 4
-}
-
-// Regs386 is the Mach-O 386 register structure.
-type Regs386 struct {
-       AX    uint32
-       BX    uint32
-       CX    uint32
-       DX    uint32
-       DI    uint32
-       SI    uint32
-       BP    uint32
-       SP    uint32
-       SS    uint32
-       FLAGS uint32
-       IP    uint32
-       CS    uint32
-       DS    uint32
-       ES    uint32
-       FS    uint32
-       GS    uint32
-}
-
-// RegsAMD64 is the Mach-O AMD64 register structure.
-type RegsAMD64 struct {
-       AX    uint64
-       BX    uint64
-       CX    uint64
-       DX    uint64
-       DI    uint64
-       SI    uint64
-       BP    uint64
-       SP    uint64
-       R8    uint64
-       R9    uint64
-       R10   uint64
-       R11   uint64
-       R12   uint64
-       R13   uint64
-       R14   uint64
-       R15   uint64
-       IP    uint64
-       FLAGS uint64
-       CS    uint64
-       FS    uint64
-       GS    uint64
-}
-
-type intName struct {
-       i uint32
-       s string
-}
-
-func stringName(i uint32, names []intName, goSyntax bool) string {
-       for _, n := range names {
-               if n.i == i {
-                       if goSyntax {
-                               return "macho." + n.s
-                       }
-                       return n.s
-               }
-       }
-       return "0x" + strconv.FormatUint(uint64(i), 16)
-}