rt

package
v1.11.6 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 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/bytedance/sonic/issues/310), and will be dropped when the issue is fixed.

Functions

func BytesFrom added in v1.0.2

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

func FuncAddr added in v1.0.2

func FuncAddr(f interface{}) unsafe.Pointer

func GcwbAddr added in v1.0.2

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 GetFuncPC added in v1.11.4

func GetFuncPC(fn interface{}) uintptr

func GuardSlice added in v1.6.1

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

func IndexByte added in v1.6.1

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

func IndexChar added in v1.6.1

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

func Mem2Str

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

func MoreStack

func MoreStack(size uintptr)

func NoEscape added in v1.10.0

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 added in v1.7.1

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

func StartProf added in v1.6.1

func StartProf()

func StopProf added in v1.6.1

func StopProf()

func Str2Mem

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

func StrFrom added in v1.7.1

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

func StrPtr added in v1.7.1

func StrPtr(s string) unsafe.Pointer

func UnpackInt

func UnpackInt(v uint64) int

Types

type BitVec added in v1.7.1

type BitVec struct {
	N uintptr
	B unsafe.Pointer
}

func (BitVec) Bit added in v1.7.1

func (self BitVec) Bit(i uintptr) byte

func (BitVec) String added in v1.7.1

func (self BitVec) String() string

type Bitmap added in v1.7.1

type Bitmap struct {
	N int
	B []byte
}

func (*Bitmap) Append added in v1.7.1

func (self *Bitmap) Append(bv int)

func (*Bitmap) AppendMany added in v1.7.1

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

func (*Bitmap) Set added in v1.7.1

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 AssertI2I2 added in v1.11.0

func AssertI2I2(t *GoType, i GoIface) (r GoIface)

func UnpackIface added in v1.1.0

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
}

func Getitab added in v1.11.0

func Getitab(inter *GoInterfaceType, typ *GoType, canfail bool) *GoItab

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 added in v1.6.1

func (self *GoType) Indirect() bool

func (*GoType) IsNamed added in v1.8.7

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 added in v1.7.1

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

func (*StackMap) Get added in v1.7.1

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

func (*StackMap) MarshalBinary added in v1.7.1

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

func (*StackMap) Pin added in v1.7.1

func (self *StackMap) Pin() uintptr

func (*StackMap) String added in v1.7.1

func (self *StackMap) String() string

type StackMapBuilder added in v1.7.1

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

func (*StackMapBuilder) AddField added in v1.7.1

func (self *StackMapBuilder) AddField(ptr bool)

func (*StackMapBuilder) AddFields added in v1.7.1

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

func (*StackMapBuilder) Build added in v1.7.1

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

Jump to

Keyboard shortcuts

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