github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/third_party/gofrontend/libgo/go/runtime/export_test.go (about)

     1  // Copyright 2010 The Go Authors.  All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Export guts for testing.
     6  
     7  package runtime
     8  
     9  import "unsafe"
    10  
    11  //var Fadd64 = fadd64
    12  //var Fsub64 = fsub64
    13  //var Fmul64 = fmul64
    14  //var Fdiv64 = fdiv64
    15  //var F64to32 = f64to32
    16  //var F32to64 = f32to64
    17  //var Fcmp64 = fcmp64
    18  //var Fintto64 = fintto64
    19  //var F64toint = f64toint
    20  //var Sqrt = sqrt
    21  
    22  func entersyscall(int32)
    23  func exitsyscall(int32)
    24  func golockedOSThread() bool
    25  
    26  var Entersyscall = entersyscall
    27  var Exitsyscall = exitsyscall
    28  var LockedOSThread = golockedOSThread
    29  
    30  // var Xadduintptr = xadduintptr
    31  
    32  // var FuncPC = funcPC
    33  
    34  type LFNode struct {
    35  	Next    uint64
    36  	Pushcnt uintptr
    37  }
    38  
    39  func lfstackpush_go(head *uint64, node *LFNode)
    40  func lfstackpop_go(head *uint64) *LFNode
    41  
    42  var LFStackPush = lfstackpush_go
    43  var LFStackPop = lfstackpop_go
    44  
    45  type ParFor struct {
    46  	body   func(*ParFor, uint32)
    47  	done   uint32
    48  	Nthr   uint32
    49  	thrseq uint32
    50  	Cnt    uint32
    51  	wait   bool
    52  }
    53  
    54  func newParFor(nthrmax uint32) *ParFor
    55  func parForSetup(desc *ParFor, nthr, n uint32, wait bool, body func(*ParFor, uint32))
    56  func parForDo(desc *ParFor)
    57  func parForIters(desc *ParFor, tid uintptr) (uintptr, uintptr)
    58  
    59  var NewParFor = newParFor
    60  var ParForSetup = parForSetup
    61  var ParForDo = parForDo
    62  
    63  func ParForIters(desc *ParFor, tid uint32) (uint32, uint32) {
    64  	begin, end := parForIters(desc, uintptr(tid))
    65  	return uint32(begin), uint32(end)
    66  }
    67  
    68  func GCMask(x interface{}) (ret []byte) {
    69  	return nil
    70  }
    71  
    72  //func testSchedLocalQueue()
    73  //func testSchedLocalQueueSteal()
    74  //
    75  //func RunSchedLocalQueueTest() {
    76  //	testSchedLocalQueue()
    77  //}
    78  //
    79  //func RunSchedLocalQueueStealTest() {
    80  //	testSchedLocalQueueSteal()
    81  //}
    82  
    83  //var StringHash = stringHash
    84  //var BytesHash = bytesHash
    85  //var Int32Hash = int32Hash
    86  //var Int64Hash = int64Hash
    87  //var EfaceHash = efaceHash
    88  //var IfaceHash = ifaceHash
    89  //var MemclrBytes = memclrBytes
    90  
    91  // var HashLoad = &hashLoad
    92  
    93  // entry point for testing
    94  //func GostringW(w []uint16) (s string) {
    95  //	s = gostringw(&w[0])
    96  //	return
    97  //}
    98  
    99  //var Gostringnocopy = gostringnocopy
   100  //var Maxstring = &maxstring
   101  
   102  //type Uintreg uintreg
   103  
   104  //extern __go_open
   105  func open(path *byte, mode int32, perm int32) int32
   106  
   107  func Open(path *byte, mode int32, perm int32) int32 {
   108  	return open(path, mode, perm)
   109  }
   110  
   111  //extern close
   112  func close(int32) int32
   113  
   114  func Close(fd int32) int32 {
   115  	return close(fd)
   116  }
   117  
   118  //extern read
   119  func read(fd int32, buf unsafe.Pointer, size int32) int32
   120  
   121  func Read(fd int32, buf unsafe.Pointer, size int32) int32 {
   122  	return read(fd, buf, size)
   123  }
   124  
   125  //extern write
   126  func write(fd int32, buf unsafe.Pointer, size int32) int32
   127  
   128  func Write(fd uintptr, buf unsafe.Pointer, size int32) int32 {
   129  	return write(int32(fd), buf, size)
   130  }
   131  
   132  func envs() []string
   133  func setenvs([]string)
   134  
   135  var Envs = envs
   136  var SetEnvs = setenvs
   137  
   138  //var BigEndian = _BigEndian
   139  
   140  // For benchmarking.
   141  
   142  /*
   143  func BenchSetType(n int, x interface{}) {
   144  	e := *(*eface)(unsafe.Pointer(&x))
   145  	t := e._type
   146  	var size uintptr
   147  	var p unsafe.Pointer
   148  	switch t.kind & kindMask {
   149  	case _KindPtr:
   150  		t = (*ptrtype)(unsafe.Pointer(t)).elem
   151  		size = t.size
   152  		p = e.data
   153  	case _KindSlice:
   154  		slice := *(*struct {
   155  			ptr      unsafe.Pointer
   156  			len, cap uintptr
   157  		})(e.data)
   158  		t = (*slicetype)(unsafe.Pointer(t)).elem
   159  		size = t.size * slice.len
   160  		p = slice.ptr
   161  	}
   162  	allocSize := roundupsize(size)
   163  	systemstack(func() {
   164  		for i := 0; i < n; i++ {
   165  			heapBitsSetType(uintptr(p), allocSize, size, t)
   166  		}
   167  	})
   168  }
   169  
   170  const PtrSize = ptrSize
   171  
   172  var TestingAssertE2I2GC = &testingAssertE2I2GC
   173  var TestingAssertE2T2GC = &testingAssertE2T2GC
   174  */