/ go / pdbconv / db.go
db.go
  1  package pdbconv
  2  
  3  type ClassMember struct {
  4  	Datatype string `json:"datatype,omitempty"`
  5  	Kind     string `json:"kind,omitempty"`
  6  	Length   uint64 `json:"length,omitempty"`
  7  	Name     string `json:"name,omitempty"`
  8  	Offset   uint64 `json:"offset,omitempty"`
  9  }
 10  
 11  type Class struct {
 12  	Length  string        `json:"length,omitempty"`
 13  	Name    string        `json:"name,omitempty"`
 14  	Members []ClassMember `json:"member,omitempty"`
 15  }
 16  
 17  type DatatypeMember struct {
 18  	Datatype string `json:"datatype,omitempty"`
 19  	Kind     string `json:"kind,omitempty"`
 20  	Length   uint64 `json:"length,omitempty"`
 21  	Name     string `json:"name,omitempty"`
 22  	Offset   uint64 `json:"offset,omitempty"`
 23  }
 24  
 25  type Datatype struct {
 26  	Kind    string           `json:"kind,omitempty"`
 27  	Length  string           `json:"length,omitempty"`
 28  	Name    string           `json:"name,omitempty"`
 29  	Members []DatatypeMember `json:"member,omitempty"`
 30  }
 31  
 32  type EnumMember struct {
 33  	Name  string `json:"name,omitempty"`
 34  	Value int    `json:"value,omitempty"`
 35  }
 36  
 37  type Enum struct {
 38  	Length  uint64       `json:"length,omitempty"`
 39  	Name    string       `json:"name,omitempty"`
 40  	Type    string       `json:"type,omitempty"`
 41  	Members []EnumMember `json:"member,omitempty"`
 42  }
 43  
 44  type FunctionLineNumber struct {
 45  	Address    string `json:"addr,omitempty"`
 46  	End        int    `json:"end,omitempty"`
 47  	Length     int    `json:"length,omitempty"`
 48  	SourceFile string `json:"source_file,omitempty"`
 49  	Start      int    `json:"start,omitempty"`
 50  }
 51  
 52  type FunctionStackVariable struct {
 53  	Datatype string `json:"datatype,omitempty"`
 54  	Kind     string `json:"kind,omitempty"`
 55  	Length   uint64 `json:"length,omitempty"`
 56  	Name     string `json:"name,omitempty"`
 57  	Offset   uint64 `json:"offset,omitempty"`
 58  }
 59  
 60  type Function struct {
 61  	Address        string                  `json:"address,omitempty"`
 62  	Length         uint64                  `json:"length,omitempty"`
 63  	Name           string                  `json:"name,omitempty"`
 64  	LineNumbers    []FunctionLineNumber    `json:"line_numbers,omitempty"`
 65  	StackVariables []FunctionStackVariable `json:"stack_variables,omitempty"`
 66  }
 67  
 68  type TableSegment struct {
 69  	Address string `json:"address,omitempty"`
 70  	Number  int    `json:"number,omitempty"`
 71  }
 72  
 73  type TableSourceFile struct {
 74  	ID   string `json:"id,omitempty"`
 75  	Name string `json:"name,omitempty"`
 76  }
 77  
 78  type TableSymbol struct {
 79  	Address     string `json:"address,omitempty"`
 80  	Datatype    string `json:"datatype,omitempty"`
 81  	Index       uint64 `json:"index,omitempty"`
 82  	Kind        string `json:"kind,omitempty"`
 83  	Length      uint64 `json:"length,omitempty"`
 84  	Name        string `json:"name,omitempty"`
 85  	Tag         string `json:"tag,omitempty"`
 86  	Undecorated string `json:"undecorated,omitempty"`
 87  	Value       string `json:"value,omitempty"`
 88  }
 89  
 90  type Table struct {
 91  	Name        string            `json:"name,omitempty"`
 92  	Segments    []TableSegment    `json:"segments,omitempty"`
 93  	SourceFiles []TableSourceFile `json:"source_files,omitempty"`
 94  	Symbols     []TableSymbol     `json:"symbols,omitempty"`
 95  }
 96  
 97  type Typedef struct {
 98  	Basetype string `json:"basetype,omitempty"`
 99  	Name     string `json:"name,omitempty"`
100  }
101  
102  type ProgramDatabase struct {
103  	Classes   []Class    `json:"classes,omitempty"`
104  	Datatypes []Datatype `json:"datatypes,omitempty"`
105  	Enums     []Enum     `json:"enums,omitempty"`
106  	Functions []Function `json:"functions,omitempty"`
107  	Tables    []Table    `json:"tables,omitempty"`
108  	Typedefs  []Typedef  `json:"typedefs,omitempty"`
109  }