rt

package
v0.0.0-...-871835f Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	F_direct    = 1 << 5
	F_kind_mask = (1 << 5) - 1
)

GoType.KindFlags const

View Source
const (
	MinInt48 int64 = -(1 << 47)
	MaxInt48 int64 = +(1 << 47) - 1
)

Variables

View Source
var StopProfiling = os.Getenv("SONIC_STOP_PROFILING") != ""

StopProfiling is used to stop traceback introduced by SIGPROF while native code is running. WARN: this option is only a workaround for traceback issue (https://github.com/goshafaq/sonic/issues/310), and will be dropped when the issue is fixed.

Functions

func BytesFrom

func BytesFrom(p unsafe.Pointer, n int, c int) (r []byte)

func FuncAddr

func FuncAddr(f interface{}) unsafe.Pointer

func GcwbAddr

func GcwbAddr() uintptr

func Get16

func Get16(v []byte) int16

func Get32

func Get32(v []byte) int32

func Get64

func Get64(v []byte) int64

func GuardSlice

func GuardSlice(buf *[]byte, n int)

func IndexByte

func IndexByte(ptr []byte, index int) unsafe.Pointer

func IndexChar

func IndexChar(src string, index int) unsafe.Pointer

func Mem2Str

func Mem2Str(v []byte) (s string)

func MoreStack

func MoreStack(size uintptr)

func NoEscape

func NoEscape(p unsafe.Pointer) unsafe.Pointer

NoEscape hides a pointer from escape analysis. NoEscape is the identity function but escape analysis doesn't think the output depends on the input. NoEscape is inlined and currently compiles down to zero instructions. USE CAREFULLY!

func PackInt

func PackInt(v int) uint64

func Ptr2SlicePtr

func Ptr2SlicePtr(s unsafe.Pointer, l int, c int) unsafe.Pointer

func StartProf

func StartProf()

func StopProf

func StopProf()

func Str2Mem

func Str2Mem(s string) (v []byte)

func StrFrom

func StrFrom(p unsafe.Pointer, n int64) (s string)

func StrPtr

func StrPtr(s string) unsafe.Pointer

func UnpackInt

func UnpackInt(v uint64) int

Types

type BitVec

type BitVec struct {
	N uintptr
	B unsafe.Pointer
}

func (BitVec) Bit

func (self BitVec) Bit(i uintptr) byte

func (BitVec) String

func (self BitVec) String() string

type Bitmap

type Bitmap struct {
	N int
	B []byte
}

func (*Bitmap) Append

func (self *Bitmap) Append(bv int)

func (*Bitmap) AppendMany

func (self *Bitmap) AppendMany(n int, bv int)

func (*Bitmap) Set

func (self *Bitmap) Set(i int, bv int)

type GoEface

type GoEface struct {
	Type  *GoType
	Value unsafe.Pointer
}

func UnpackEface

func UnpackEface(v interface{}) GoEface

func (GoEface) Pack

func (self GoEface) Pack() (v interface{})

type GoIface

type GoIface struct {
	Itab  *GoItab
	Value unsafe.Pointer
}

func UnpackIface

func UnpackIface(v interface{}) GoIface

type GoInterfaceMethod

type GoInterfaceMethod struct {
	Name int32
	Type int32
}

type GoInterfaceType

type GoInterfaceType struct {
	GoType
	PkgPath *byte
	Methods []GoInterfaceMethod
}

func IfaceType

func IfaceType(t *GoType) *GoInterfaceType

type GoItab

type GoItab struct {
	Vt *GoType
	// contains filtered or unexported fields
}

type GoMap

type GoMap struct {
	Count      int
	Flags      uint8
	B          uint8
	Overflow   uint16
	Hash0      uint32
	Buckets    unsafe.Pointer
	OldBuckets unsafe.Pointer
	Evacuate   uintptr
	Extra      unsafe.Pointer
}

type GoMapIterator

type GoMapIterator struct {
	K           unsafe.Pointer
	V           unsafe.Pointer
	T           *GoMapType
	H           *GoMap
	Buckets     unsafe.Pointer
	Bptr        *unsafe.Pointer
	Overflow    *[]unsafe.Pointer
	OldOverflow *[]unsafe.Pointer
	StartBucket uintptr
	Offset      uint8
	Wrapped     bool
	B           uint8
	I           uint8
	Bucket      uintptr
	CheckBucket uintptr
}

type GoMapType

type GoMapType struct {
	GoType
	Key        *GoType
	Elem       *GoType
	Bucket     *GoType
	Hasher     func(unsafe.Pointer, uintptr) uintptr
	KeySize    uint8
	ElemSize   uint8
	BucketSize uint16
	Flags      uint32
}

func MapType

func MapType(t *GoType) *GoMapType

func (*GoMapType) IndirectElem

func (self *GoMapType) IndirectElem() bool

type GoPtrType

type GoPtrType struct {
	GoType
	Elem *GoType
}

type GoSlice

type GoSlice struct {
	Ptr unsafe.Pointer
	Len int
	Cap int
}

type GoString

type GoString struct {
	Ptr unsafe.Pointer
	Len int
}

type GoStructField

type GoStructField struct {
	Name     *byte
	Type     *GoType
	OffEmbed uintptr
}

type GoStructType

type GoStructType struct {
	GoType
	Pkg    *byte
	Fields []GoStructField
}

type GoType

type GoType struct {
	Size       uintptr
	PtrData    uintptr
	Hash       uint32
	Flags      uint8
	Align      uint8
	FieldAlign uint8
	KindFlags  uint8
	Traits     unsafe.Pointer
	GCData     *byte
	Str        int32
	PtrToSelf  int32
}

func PtrElem

func PtrElem(t *GoType) *GoType

func UnpackType

func UnpackType(t reflect.Type) *GoType

func (*GoType) Indirect

func (self *GoType) Indirect() bool

func (*GoType) IsNamed

func (self *GoType) IsNamed() bool

func (*GoType) Kind

func (self *GoType) Kind() reflect.Kind

func (*GoType) Pack

func (self *GoType) Pack() (t reflect.Type)

func (*GoType) String

func (self *GoType) String() string

type StackMap

type StackMap struct {
	N int32
	L int32
	B [1]byte
}

func (*StackMap) Get

func (self *StackMap) Get(i int32) BitVec

func (*StackMap) MarshalBinary

func (self *StackMap) MarshalBinary() ([]byte, error)

func (*StackMap) Pin

func (self *StackMap) Pin() uintptr

func (*StackMap) String

func (self *StackMap) String() string

type StackMapBuilder

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

func (*StackMapBuilder) AddField

func (self *StackMapBuilder) AddField(ptr bool)

func (*StackMapBuilder) AddFields

func (self *StackMapBuilder) AddFields(n int, ptr bool)

func (*StackMapBuilder) Build

func (self *StackMapBuilder) Build() (p *StackMap)

Jump to

Keyboard shortcuts

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