package rttype
import "cmd/compile/internal/rttype"
Package rttype allows the compiler to share type information with the runtime. The shared type information is stored in internal/abi. This package translates those types from the host machine on which the compiler runs to the target machine on which the compiled program will run. In particular, this package handles layout differences between e.g. a 64 bit compiler and 32 bit target.
Index ¶
- Variables
- func Init()
- type ArrayCursor
- func NewArrayCursor(lsym *obj.LSym, off int64, t *types.Type, n int) ArrayCursor
- func (a ArrayCursor) Elem(i int) Cursor
- type Cursor
- func NewCursor(lsym *obj.LSym, off int64, t *types.Type) Cursor
- func (c Cursor) Elem(i int64) Cursor
- func (c Cursor) Field(name string) Cursor
- func (c Cursor) ModifyArray(n int) (ArrayCursor, int64)
- func (c Cursor) Reloc(rel obj.Reloc)
- func (c Cursor) WriteBool(val bool)
- func (c Cursor) WriteInt(val int64)
- func (c Cursor) WriteInt32(val int32)
- func (c Cursor) WritePtr(target *obj.LSym)
- func (c Cursor) WritePtrWeak(target *obj.LSym)
- func (c Cursor) WriteSlice(target *obj.LSym, off, len, cap int64)
- func (c Cursor) WriteSymPtrOff(target *obj.LSym, weak bool)
- func (c Cursor) WriteUint16(val uint16)
- func (c Cursor) WriteUint32(val uint32)
- func (c Cursor) WriteUint8(val uint8)
- func (c Cursor) WriteUintptr(val uint64)
Variables ¶
Types that are parts of the types above.
Interface tables (itabs)
Type switches and asserts
The type structures shared with the runtime.
Functions ¶
func Init ¶
func Init()
Types ¶
type ArrayCursor ¶
type ArrayCursor struct {
// contains filtered or unexported fields
}
func NewArrayCursor ¶
NewArrayCursor returns a cursor starting at lsym+off and having n copies of type t.
func (ArrayCursor) Elem ¶
func (a ArrayCursor) Elem(i int) Cursor
Elem selects element i of the array pointed to by c.
type Cursor ¶
type Cursor struct {
// contains filtered or unexported fields
}
A Cursor represents a typed location inside a static variable where we are going to write.
func NewCursor ¶
NewCursor returns a cursor starting at lsym+off and having type t.
func (Cursor) Elem ¶
func (Cursor) Field ¶
Field selects the field with the given name from the struct pointed to by c.
func (Cursor) ModifyArray ¶
func (c Cursor) ModifyArray(n int) (ArrayCursor, int64)
ModifyArray converts a cursor pointing at a type [k]T to a cursor pointing at a type [n]T. Also returns the size delta, aka (n-k)*sizeof(T).
func (Cursor) Reloc ¶
Reloc adds a relocation from the current cursor position. Reloc fills in Off and Siz fields. Caller should fill in the rest (Type, others).
func (Cursor) WriteBool ¶
func (Cursor) WriteInt ¶
func (Cursor) WriteInt32 ¶
func (Cursor) WritePtr ¶
WritePtr writes a pointer "target" to the component at the location specified by c.
func (Cursor) WritePtrWeak ¶
func (Cursor) WriteSlice ¶
WriteSlice writes a slice header to c. The pointer is target+off, the len and cap fields are given.
func (Cursor) WriteSymPtrOff ¶
WriteSymPtrOff writes a "pointer" to the given symbol. The symbol is encoded as a uint32 offset from the start of the section.
func (Cursor) WriteUint16 ¶
func (Cursor) WriteUint32 ¶
func (Cursor) WriteUint8 ¶
func (Cursor) WriteUintptr ¶
Source Files ¶
- Version
- v1.24.0 (latest)
- Published
- Feb 10, 2025
- Platform
- linux/amd64
- Imports
- 6 packages
- Last checked
- 1 minute ago –
Tools for package owners.