plan9obj

package
v0.0.0-...-c6f61ee Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2014 License: BSD-3-Clause Imports: 6 Imported by: 0

Documentation

Overview

Package plan9obj implements access to Plan 9 a.out object files.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ExecTable

type ExecTable struct {
	Magic string
	Ptrsz int
	Hsize uint32
}

type File

type File struct {
	FileHeader
	Sections []*Section
	// contains filtered or unexported fields
}

A File represents an open Plan 9 a.out file.

func NewFile

func NewFile(r io.ReaderAt) (*File, error)

NewFile creates a new File for accessing an Plan 9 binary in an underlying reader. The Plan 9 binary is expected to start at position 0 in the ReaderAt.

func Open

func Open(name string) (*File, error)

Open opens the named file using os.Open and prepares it for use as an Plan 9 a.out binary.

func (*File) Close

func (f *File) Close() error

Close closes the File. If the File was created using NewFile directly instead of Open, Close has no effect.

func (*File) Section

func (f *File) Section(name string) *Section

Section returns a section with the given name, or nil if no such section exists.

func (*File) Symbols

func (f *File) Symbols() ([]Sym, error)

Symbols returns the symbol table for f.

type FileHeader

type FileHeader struct {
	Ptrsz int
}

A FileHeader represents an Plan 9 a.out file header.

type FormatError

type FormatError struct {
	// contains filtered or unexported fields
}

func (*FormatError) Error

func (e *FormatError) Error() string

type Prog

type Prog struct {
	ProgHeader

	// Embed ReaderAt for ReadAt method.
	// Do not embed SectionReader directly
	// to avoid having Read and Seek.
	// If a client wants Read and Seek it must use
	// Open() to avoid fighting over the seek offset
	// with other clients.
	io.ReaderAt
	// contains filtered or unexported fields
}

A Prog represents the program header in an Plan 9 a.out binary.

func (*Prog) Open

func (p *Prog) Open() io.ReadSeeker

Open returns a new ReadSeeker reading the Plan 9 a.out program body.

type ProgHeader

type ProgHeader struct {
	Magic uint32
	Text  uint32
	Data  uint32
	Bss   uint32
	Syms  uint32
	Entry uint64
	Spsz  uint32
	Pcsz  uint32
}

A ProgHeader represents a single Plan 9 a.out program header.

type Section

type Section struct {
	SectionHeader

	// Embed ReaderAt for ReadAt method.
	// Do not embed SectionReader directly
	// to avoid having Read and Seek.
	// If a client wants Read and Seek it must use
	// Open() to avoid fighting over the seek offset
	// with other clients.
	io.ReaderAt
	// contains filtered or unexported fields
}

A Section represents a single section in an Plan 9 a.out file.

func (*Section) Data

func (s *Section) Data() ([]byte, error)

Data reads and returns the contents of the Plan 9 a.out section.

func (*Section) Open

func (s *Section) Open() io.ReadSeeker

Open returns a new ReadSeeker reading the Plan 9 a.out section.

type SectionHeader

type SectionHeader struct {
	Name   string
	Size   uint32
	Offset uint32
}

type Sym

type Sym struct {
	Value uint64
	Type  rune
	Name  string
}

A Symbol represents an entry in a Plan 9 a.out symbol table section.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL