Retro68/gcc/libgo/go/runtime/export_test.go

184 lines
3.8 KiB
Go
Raw Normal View History

2012-03-27 23:13:14 +00:00
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Export guts for testing.
package runtime
2017-04-10 11:32:00 +00:00
import (
"unsafe"
)
//var Fadd64 = fadd64
//var Fsub64 = fsub64
//var Fmul64 = fmul64
//var Fdiv64 = fdiv64
//var F64to32 = f64to32
//var F32to64 = f32to64
//var Fcmp64 = fcmp64
//var Fintto64 = fintto64
//var F64toint = f64toint
//var Sqrt = sqrt
func entersyscall(int32)
func exitsyscall(int32)
2012-03-27 23:13:14 +00:00
func golockedOSThread() bool
var Entersyscall = entersyscall
var Exitsyscall = exitsyscall
var LockedOSThread = golockedOSThread
2014-09-21 17:33:12 +00:00
2017-04-10 11:32:00 +00:00
// var Xadduintptr = xadduintptr
// var FuncPC = funcPC
2014-09-21 17:33:12 +00:00
type LFNode struct {
2017-04-10 11:32:00 +00:00
Next uint64
2014-09-21 17:33:12 +00:00
Pushcnt uintptr
}
2015-08-28 15:33:40 +00:00
func lfstackpush_go(head *uint64, node *LFNode)
func lfstackpop_go(head *uint64) *LFNode
2014-09-21 17:33:12 +00:00
2015-08-28 15:33:40 +00:00
var LFStackPush = lfstackpush_go
var LFStackPop = lfstackpop_go
2014-09-21 17:33:12 +00:00
type ParFor struct {
2017-04-10 11:32:00 +00:00
body func(*ParFor, uint32)
done uint32
Nthr uint32
thrseq uint32
Cnt uint32
wait bool
2014-09-21 17:33:12 +00:00
}
2015-08-28 15:33:40 +00:00
func newParFor(nthrmax uint32) *ParFor
2017-04-10 11:32:00 +00:00
func parForSetup(desc *ParFor, nthr, n uint32, wait bool, body func(*ParFor, uint32))
2015-08-28 15:33:40 +00:00
func parForDo(desc *ParFor)
func parForIters(desc *ParFor, tid uintptr) (uintptr, uintptr)
2014-09-21 17:33:12 +00:00
2015-08-28 15:33:40 +00:00
var NewParFor = newParFor
var ParForSetup = parForSetup
var ParForDo = parForDo
2014-09-21 17:33:12 +00:00
func ParForIters(desc *ParFor, tid uint32) (uint32, uint32) {
2015-08-28 15:33:40 +00:00
begin, end := parForIters(desc, uintptr(tid))
2014-09-21 17:33:12 +00:00
return uint32(begin), uint32(end)
}
2017-04-10 11:32:00 +00:00
func GCMask(x interface{}) (ret []byte) {
return nil
}
//func testSchedLocalQueue()
//func testSchedLocalQueueSteal()
//
//func RunSchedLocalQueueTest() {
// testSchedLocalQueue()
//}
//
//func RunSchedLocalQueueStealTest() {
// testSchedLocalQueueSteal()
//}
//var StringHash = stringHash
//var BytesHash = bytesHash
//var Int32Hash = int32Hash
//var Int64Hash = int64Hash
//var EfaceHash = efaceHash
//var IfaceHash = ifaceHash
//var MemclrBytes = memclrBytes
// var HashLoad = &hashLoad
// entry point for testing
//func GostringW(w []uint16) (s string) {
// s = gostringw(&w[0])
// return
//}
//var Gostringnocopy = gostringnocopy
//var Maxstring = &maxstring
//type Uintreg uintreg
//extern __go_open
func open(path *byte, mode int32, perm int32) int32
func Open(path *byte, mode int32, perm int32) int32 {
return open(path, mode, perm)
}
//extern close
func close(int32) int32
2014-09-21 17:33:12 +00:00
2017-04-10 11:32:00 +00:00
func Close(fd int32) int32 {
return close(fd)
}
//extern read
func read(fd int32, buf unsafe.Pointer, size int32) int32
func Read(fd int32, buf unsafe.Pointer, size int32) int32 {
return read(fd, buf, size)
}
2014-09-21 17:33:12 +00:00
2017-04-10 11:32:00 +00:00
//extern write
func write(fd int32, buf unsafe.Pointer, size int32) int32
2014-09-21 17:33:12 +00:00
2017-04-10 11:32:00 +00:00
func Write(fd uintptr, buf unsafe.Pointer, size int32) int32 {
return write(int32(fd), buf, size)
}
2014-09-21 17:33:12 +00:00
2017-04-10 11:32:00 +00:00
func envs() []string
func setenvs([]string)
var Envs = envs
var SetEnvs = setenvs
//var BigEndian = sys.BigEndian
// For benchmarking.
/*
func BenchSetType(n int, x interface{}) {
e := *efaceOf(&x)
t := e._type
var size uintptr
var p unsafe.Pointer
switch t.kind & kindMask {
case kindPtr:
t = (*ptrtype)(unsafe.Pointer(t)).elem
size = t.size
p = e.data
case kindSlice:
slice := *(*struct {
ptr unsafe.Pointer
len, cap uintptr
})(e.data)
t = (*slicetype)(unsafe.Pointer(t)).elem
size = t.size * slice.len
p = slice.ptr
}
allocSize := roundupsize(size)
systemstack(func() {
for i := 0; i < n; i++ {
heapBitsSetType(uintptr(p), allocSize, size, t)
}
})
}
2015-08-28 15:33:40 +00:00
2017-04-10 11:32:00 +00:00
const PtrSize = sys.PtrSize
2015-08-28 15:33:40 +00:00
2017-04-10 11:32:00 +00:00
var TestingAssertE2I2GC = &testingAssertE2I2GC
var TestingAssertE2T2GC = &testingAssertE2T2GC
2015-08-28 15:33:40 +00:00
2017-04-10 11:32:00 +00:00
var ForceGCPeriod = &forcegcperiod
*/
2015-08-28 15:33:40 +00:00
2017-04-10 11:32:00 +00:00
// SetTracebackEnv is like runtime/debug.SetTraceback, but it raises
// the "environment" traceback level, so later calls to
// debug.SetTraceback (e.g., from testing timeouts) can't lower it.
func SetTracebackEnv(level string)