mirror of
https://github.com/thunderbrewhq/binana.git
synced 2025-12-12 01:42:29 +00:00
43 lines
765 B
Go
43 lines
765 B
Go
package symfile
|
|
|
|
import (
|
|
"io"
|
|
)
|
|
|
|
// What kind of Entry is this?
|
|
type EntryKind uint8
|
|
|
|
const (
|
|
// Something that can be executed
|
|
Function EntryKind = 'f'
|
|
// Something that is read or written to
|
|
DataLabel EntryKind = 'l'
|
|
)
|
|
|
|
var (
|
|
valid_kinds = []EntryKind{Function, DataLabel}
|
|
)
|
|
|
|
// An entry in the table
|
|
type Entry struct {
|
|
// Undecorated, raw name
|
|
Name string
|
|
// Offset to the start of the function or data
|
|
StartAddress uint64
|
|
// What kind of Entry is this?
|
|
Kind EntryKind
|
|
// Any table entry can have a comment after a ';' column
|
|
Comment string
|
|
// Attributes
|
|
// end=AABBCCEEDD
|
|
EndAddress uint64
|
|
}
|
|
|
|
type Table interface {
|
|
Insert(entry *Entry) (err error)
|
|
}
|
|
|
|
func Load(table Table, text io.Reader) (err error) {
|
|
err = load(text, table)
|
|
return
|
|
}
|