"runtime.cgocallbackg1",
"runtime.cgocallbackg",
"runtime.cgocallback_gofunc",
- "asmcgocall",
- "runtime.asmcgocall_errno",
- "runtime.cgocall_errno",
+ "runtime.asmcgocall",
+ "runtime.cgocall",
"test._Cfunc_callback",
"test.nestedCall",
"test.testCallbackCallers",
go issue7978go()
// test in c code, before callback
issue7978wait(0, 1)
- issue7978check(t, "runtime.cgocall_errno(", "", 1)
+ issue7978check(t, "runtime.cgocall(", "", 1)
// test in go code, during callback
issue7978wait(2, 3)
issue7978check(t, "test.issue7978cb(", "test.issue7978go", 3)
// test in c code, after callback
issue7978wait(4, 5)
- issue7978check(t, "runtime.cgocall_errno(", "runtime.cgocallback", 1)
+ issue7978check(t, "runtime.cgocall(", "runtime.cgocallback", 1)
// test in go code, after return from cgo
issue7978wait(6, 7)
issue7978check(t, "test.issue7978go(", "", 3)
var _cgo_be59f0f25121_Cfunc_puts = unsafe.Pointer(&__cgofn__cgo_be59f0f25121_Cfunc_puts)
func _Cfunc_puts(p0 *_Ctype_char) (r1 _Ctype_int) {
- _cgo_runtime_cgocall_errno(_cgo_be59f0f25121_Cfunc_puts, uintptr(unsafe.Pointer(&p0)))
+ _cgo_runtime_cgocall(_cgo_be59f0f25121_Cfunc_puts, uintptr(unsafe.Pointer(&p0)))
return
}
var _cgo_gcc_Cfunc_sin = unsafe.Pointer(&__cgo_gcc_Cfunc_sin)
func _Cfunc_sin(p0 _Ctype_double) (r1 _Ctype_double) {
- _cgo_runtime_cgocall_errno(_cgo_gcc_Cfunc_sin, uintptr(unsafe.Pointer(&p0)))
+ _cgo_runtime_cgocall(_cgo_gcc_Cfunc_sin, uintptr(unsafe.Pointer(&p0)))
return
}
if n.AddError {
prefix = "errno := "
}
- fmt.Fprintf(fgo2, "\t%s_cgo_runtime_cgocall_errno(%s, %s)\n", prefix, cname, arg)
+ fmt.Fprintf(fgo2, "\t%s_cgo_runtime_cgocall(%s, %s)\n", prefix, cname, arg)
if n.AddError {
fmt.Fprintf(fgo2, "\tif errno != 0 { r2 = syscall.Errno(errno) }\n")
}
`
const goProlog = `
-//go:linkname _cgo_runtime_cgocall_errno runtime.cgocall_errno
-func _cgo_runtime_cgocall_errno(unsafe.Pointer, uintptr) int32
+//go:linkname _cgo_runtime_cgocall runtime.cgocall
+func _cgo_runtime_cgocall(unsafe.Pointer, uintptr) int32
//go:linkname _cgo_runtime_cmalloc runtime.cmalloc
func _cgo_runtime_cmalloc(uintptr) unsafe.Pointer
POPL AX
RET
-// asmcgocall(void(*fn)(void*), void *arg)
+// func asmcgocall(fn, arg unsafe.Pointer) int32
// Call fn(arg) on the scheduler stack,
// aligned appropriately for the gcc ABI.
-// See cgocall.c for more details.
-TEXT ·asmcgocall_errno(SB),NOSPLIT,$0-12
+// See cgocall.go for more details.
+TEXT ·asmcgocall(SB),NOSPLIT,$0-12
MOVL fn+0(FP), AX
MOVL arg+4(FP), BX
- CALL asmcgocall<>(SB)
- MOVL AX, ret+8(FP)
- RET
-TEXT asmcgocall<>(SB),NOSPLIT,$0-0
- // fn in AX, arg in BX
MOVL SP, DX
// Figure out if we need to switch to m->g0 stack.
SUBL 4(SP), SI
MOVL DI, g(CX)
MOVL SI, SP
+
+ MOVL AX, ret+8(FP)
RET
// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)
RET
// cgocallback_gofunc(FuncVal*, void *frame, uintptr framesize)
-// See cgocall.c for more details.
+// See cgocall.go for more details.
TEXT ·cgocallback_gofunc(SB),NOSPLIT,$12-12
NO_LOCAL_POINTERS
MOVQ BP, (g_sched+gobuf_bp)(R8)
RET
-// asmcgocall(void(*fn)(void*), void *arg)
+// func asmcgocall(fn, arg unsafe.Pointer) int32
// Call fn(arg) on the scheduler stack,
// aligned appropriately for the gcc ABI.
-// See cgocall.c for more details.
-TEXT ·asmcgocall_errno(SB),NOSPLIT,$0-20
+// See cgocall.go for more details.
+TEXT ·asmcgocall(SB),NOSPLIT,$0-20
MOVQ fn+0(FP), AX
MOVQ arg+8(FP), BX
- CALL asmcgocall<>(SB)
- MOVL AX, ret+16(FP)
- RET
-// asmcgocall common code. fn in AX, arg in BX. returns errno in AX.
-TEXT asmcgocall<>(SB),NOSPLIT,$0-0
MOVQ SP, DX
// Figure out if we need to switch to m->g0 stack.
SUBQ 40(SP), SI
MOVQ DI, g(CX)
MOVQ SI, SP
+
+ MOVL AX, ret+16(FP)
RET
// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)
RET
// cgocallback_gofunc(FuncVal*, void *frame, uintptr framesize)
-// See cgocall.c for more details.
+// See cgocall.go for more details.
TEXT ·cgocallback_gofunc(SB),NOSPLIT,$8-24
NO_LOCAL_POINTERS
MOVL 0(DX), BX
JMP BX // but first run the deferred function
-// asmcgocall(void(*fn)(void*), void *arg)
+// func asmcgocall(fn, arg unsafe.Pointer) int32
// Not implemented.
-TEXT runtime·asmcgocall_errno(SB),NOSPLIT,$0-12
+TEXT runtime·asmcgocall(SB),NOSPLIT,$0-12
MOVL 0, AX
RET
MOVW R11, (g_sched+gobuf_ctxt)(g)
RET
-// asmcgocall(void(*fn)(void*), void *arg)
+// func asmcgocall(fn, arg unsafe.Pointer) int32
// Call fn(arg) on the scheduler stack,
// aligned appropriately for the gcc ABI.
-// See cgocall.c for more details.
-TEXT ·asmcgocall_errno(SB),NOSPLIT,$0-12
+// See cgocall.go for more details.
+TEXT ·asmcgocall(SB),NOSPLIT,$0-12
MOVW fn+0(FP), R1
MOVW arg+4(FP), R0
- BL asmcgocall<>(SB)
- MOVW R0, ret+8(FP)
- RET
-TEXT asmcgocall<>(SB),NOSPLIT,$0-0
- // fn in R1, arg in R0.
MOVW R13, R2
MOVW g, R4
SUB R2, R1
MOVW R5, R0
MOVW R1, R13
+
+ MOVW R0, ret+8(FP)
RET
// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)
RET
// cgocallback_gofunc(void (*fn)(void*), void *frame, uintptr framesize)
-// See cgocall.c for more details.
+// See cgocall.go for more details.
TEXT ·cgocallback_gofunc(SB),NOSPLIT,$8-12
NO_LOCAL_POINTERS
MOVD $0, (g_sched+gobuf_ctxt)(g)
RET
-// asmcgocall(void(*fn)(void*), void *arg)
+// func asmcgocall(fn, arg unsafe.Pointer) int32
// Call fn(arg) on the scheduler stack,
// aligned appropriately for the gcc ABI.
// See cgocall.go for more details.
-TEXT ·asmcgocall_errno(SB),NOSPLIT,$0-20
+TEXT ·asmcgocall(SB),NOSPLIT,$0-20
MOVD fn+0(FP), R1
MOVD arg+8(FP), R0
- BL asmcgocall<>(SB)
- MOVW R0, ret+16(FP)
- RET
-// asmcgocall common code. fn in R1, arg in R0. returns errno in R0.
-TEXT asmcgocall<>(SB),NOSPLIT,$0-0
MOVD RSP, R2 // save original stack pointer
MOVD g, R4
SUB R6, R5
MOVD R9, R0
MOVD R5, RSP
+
+ MOVW R0, ret+16(FP)
RET
// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)
MOVD R0, (g_sched+gobuf_ctxt)(g)
RET
-// asmcgocall(void(*fn)(void*), void *arg)
+// func asmcgocall(fn, arg unsafe.Pointer) int32
// Call fn(arg) on the scheduler stack,
// aligned appropriately for the gcc ABI.
-// See cgocall.c for more details.
-TEXT ·asmcgocall_errno(SB),NOSPLIT,$0-20
+// See cgocall.go for more details.
+TEXT ·asmcgocall(SB),NOSPLIT,$0-20
MOVD fn+0(FP), R3
MOVD arg+8(FP), R4
- BL asmcgocall<>(SB)
- MOVW R3, ret+16(FP)
- RET
-// asmcgocall common code. fn in R3, arg in R4. returns errno in R3.
-TEXT asmcgocall<>(SB),NOSPLIT,$0-0
MOVD R1, R2 // save original stack pointer
MOVD g, R5
MOVD 32(R1), R6
SUB R6, R5
MOVD R5, R1
+
+ MOVW R3, ret+16(FP)
RET
// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)
RET
// cgocallback_gofunc(FuncVal*, void *frame, uintptr framesize)
-// See cgocall.c for more details.
+// See cgocall.go for more details.
TEXT ·cgocallback_gofunc(SB),NOSPLIT,$16-24
NO_LOCAL_POINTERS
// Call from Go to C.
//go:nosplit
-func cgocall_errno(fn, arg unsafe.Pointer) int32 {
+func cgocall(fn, arg unsafe.Pointer) int32 {
if !iscgo && GOOS != "solaris" && GOOS != "windows" {
throw("cgocall unavailable")
}
* the $GOMAXPROCS accounting.
*/
entersyscall(0)
- errno := asmcgocall_errno(fn, arg)
+ errno := asmcgocall(fn, arg)
exitsyscall(0)
return errno
ret unsafe.Pointer
}
args.n = uint64(n)
- cgocall_errno(_cgo_malloc, unsafe.Pointer(&args))
+ cgocall(_cgo_malloc, unsafe.Pointer(&args))
if args.ret == nil {
throw("C malloc failed")
}
}
func cfree(p unsafe.Pointer) {
- cgocall_errno(_cgo_free, p)
+ cgocall(_cgo_free, p)
}
// Call from C back to Go.
return
}
arg := [2]unsafe.Pointer{cstring(k), cstring(v)}
- asmcgocall_errno(unsafe.Pointer(_cgo_setenv), unsafe.Pointer(&arg))
+ asmcgocall(unsafe.Pointer(_cgo_setenv), unsafe.Pointer(&arg))
}
// Update the C environment if cgo is loaded.
return
}
arg := [1]unsafe.Pointer{cstring(k)}
- asmcgocall_errno(unsafe.Pointer(_cgo_unsetenv), unsafe.Pointer(&arg))
+ asmcgocall(unsafe.Pointer(_cgo_unsetenv), unsafe.Pointer(&arg))
}
func cstring(s string) unsafe.Pointer {
// all three values to be non-zero, it will use them
mp.libcallsp = getcallersp(unsafe.Pointer(&fn))
}
- asmcgocall_errno(asmstdcallAddr, unsafe.Pointer(&mp.libcall))
+ asmcgocall(asmstdcallAddr, unsafe.Pointer(&mp.libcall))
mp.libcallsp = 0
return mp.libcall.r1
}
// Called on the new thread, can not allocate memory.
func minit() {
_g_ := getg()
- asmcgocall_errno(unsafe.Pointer(funcPC(miniterrno)), unsafe.Pointer(&libc____errno))
+ asmcgocall(unsafe.Pointer(funcPC(miniterrno)), unsafe.Pointer(&libc____errno))
// Initialize signal handling
signalstack(&_g_.m.gsignal.stack)
memclr(unsafe.Pointer(&_g_.m.scratch), uintptr(len(_g_.m.scratch.v)))
_g_.m.scratch.v[0] = unsafe.Sizeof(*sem)
_g_.m.libcall.args = uintptr(unsafe.Pointer(&_g_.m.scratch))
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_g_.m.libcall))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_g_.m.libcall))
sem = (*semt)(unsafe.Pointer(_g_.m.libcall.r1))
if sem_init(sem, 0, 0) != 0 {
throw("sem_init")
_m_.scratch.v[0] = _m_.waitsema
_m_.scratch.v[1] = uintptr(unsafe.Pointer(&_m_.ts))
_m_.libcall.args = uintptr(unsafe.Pointer(&_m_.scratch))
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_m_.libcall))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_m_.libcall))
if *_m_.perrno != 0 {
if *_m_.perrno == _ETIMEDOUT || *_m_.perrno == _EAGAIN || *_m_.perrno == _EINTR {
return -1
memclr(unsafe.Pointer(&_m_.scratch), uintptr(len(_m_.scratch.v)))
_m_.scratch.v[0] = _m_.waitsema
_m_.libcall.args = uintptr(unsafe.Pointer(&_m_.scratch))
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_m_.libcall))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_m_.libcall))
if _m_.libcall.r1 == 0 {
break
}
libcall.fn = uintptr(unsafe.Pointer(fn))
libcall.n = 0
libcall.args = uintptr(unsafe.Pointer(fn)) // it's unused but must be non-nil, otherwise crashes
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
return libcall.r1
}
libcall.n = 1
// TODO(rsc): Why is noescape necessary here and below?
libcall.args = uintptr(noescape(unsafe.Pointer(&a1)))
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
return libcall.r1
}
libcall.fn = uintptr(unsafe.Pointer(fn))
libcall.n = 2
libcall.args = uintptr(noescape(unsafe.Pointer(&a1)))
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
return libcall.r1
}
libcall.fn = uintptr(unsafe.Pointer(fn))
libcall.n = 3
libcall.args = uintptr(noescape(unsafe.Pointer(&a1)))
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
return libcall.r1
}
libcall.fn = uintptr(unsafe.Pointer(fn))
libcall.n = 4
libcall.args = uintptr(noescape(unsafe.Pointer(&a1)))
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
return libcall.r1
}
libcall.fn = uintptr(unsafe.Pointer(fn))
libcall.n = 5
libcall.args = uintptr(noescape(unsafe.Pointer(&a1)))
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
return libcall.r1
}
libcall.fn = uintptr(unsafe.Pointer(fn))
libcall.n = 6
libcall.args = uintptr(noescape(unsafe.Pointer(&a1)))
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(libcall))
return libcall.r1
}
if _cgo_notify_runtime_init_done == nil {
throw("_cgo_notify_runtime_init_done missing")
}
- cgocall_errno(_cgo_notify_runtime_init_done, nil)
+ cgocall(_cgo_notify_runtime_init_done, nil)
}
main_init()
ts.g.set(mp.g0)
ts.tls = (*uint64)(unsafe.Pointer(&mp.tls[0]))
ts.fn = unsafe.Pointer(funcPC(mstart))
- asmcgocall_errno(_cgo_thread_start, unsafe.Pointer(&ts))
+ asmcgocall(_cgo_thread_start, unsafe.Pointer(&ts))
return
}
newosproc(mp, unsafe.Pointer(mp.g0.stack.hi))
func getcallersp(argp unsafe.Pointer) uintptr
//go:noescape
-func asmcgocall_errno(fn, arg unsafe.Pointer) int32
+func asmcgocall(fn, arg unsafe.Pointer) int32
// argp used in Defer structs when there is no argp.
const _NoArgs = ^uintptr(0)
args: uintptr(unsafe.Pointer(&a1)),
}
entersyscallblock(0)
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
exitsyscall(0)
return call.r1, call.r2, call.err
}
n: nargs,
args: uintptr(unsafe.Pointer(&a1)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.r1, call.r2, call.err
}
n: 1,
args: uintptr(unsafe.Pointer(&path)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.err
}
n: 1,
args: uintptr(unsafe.Pointer(&path)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.err
}
n: 3,
args: uintptr(unsafe.Pointer(&path)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.err
}
n: 3,
args: uintptr(unsafe.Pointer(&fd)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.r1, call.err
}
n: 1,
args: uintptr(unsafe.Pointer(&flags)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.r1, call.err
}
args: uintptr(unsafe.Pointer(&args[0])),
}
entersyscallblock(0)
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
exitsyscall(0)
if call.r1 != 0 {
return "", call.err
n: 0,
args: uintptr(unsafe.Pointer(&libc_getpid)), // it's unused but must be non-nil, otherwise crashes
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.r1, call.err
}
n: 3,
args: uintptr(unsafe.Pointer(&fd)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.err
}
args: uintptr(unsafe.Pointer(&pipe1)), // it's unused but must be non-nil, otherwise crashes
}
entersyscallblock(0)
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
exitsyscall(0)
return call.r1, call.r2, call.err
}
n: 4,
args: uintptr(unsafe.Pointer(&trap)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.r1, call.r2, call.err
}
n: 1,
args: uintptr(unsafe.Pointer(&gid)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.err
}
n: 2,
args: uintptr(unsafe.Pointer(&ngid)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.err
}
n: 0,
args: uintptr(unsafe.Pointer(&libc_setsid)), // it's unused but must be non-nil, otherwise crashes
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.r1, call.err
}
n: 1,
args: uintptr(unsafe.Pointer(&uid)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.err
}
n: 2,
args: uintptr(unsafe.Pointer(&pid)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.err
}
args: uintptr(unsafe.Pointer(&trap)),
}
entersyscallblock(0)
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
exitsyscall(0)
return call.r1, call.r2, call.err
}
args: uintptr(unsafe.Pointer(&pid)),
}
entersyscallblock(0)
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
exitsyscall(0)
return int(call.r1), call.err
}
n: 3,
args: uintptr(unsafe.Pointer(&fd)),
}
- asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
+ asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&call))
return call.r1, call.err
}
c.fn = getLoadLibrary()
c.n = 1
c.args = uintptr(unsafe.Pointer(&filename))
- cgocall_errno(asmstdcallAddr, unsafe.Pointer(&c))
+ cgocall(asmstdcallAddr, unsafe.Pointer(&c))
handle = c.r1
if handle == 0 {
err = c.err
c.fn = getGetProcAddress()
c.n = 2
c.args = uintptr(unsafe.Pointer(&handle))
- cgocall_errno(asmstdcallAddr, unsafe.Pointer(&c))
+ cgocall(asmstdcallAddr, unsafe.Pointer(&c))
outhandle = c.r1
if outhandle == 0 {
err = c.err
c.fn = fn
c.n = nargs
c.args = uintptr(unsafe.Pointer(&a1))
- cgocall_errno(asmstdcallAddr, unsafe.Pointer(&c))
+ cgocall(asmstdcallAddr, unsafe.Pointer(&c))
return c.r1, c.r2, c.err
}
c.fn = fn
c.n = nargs
c.args = uintptr(unsafe.Pointer(&a1))
- cgocall_errno(asmstdcallAddr, unsafe.Pointer(&c))
+ cgocall(asmstdcallAddr, unsafe.Pointer(&c))
return c.r1, c.r2, c.err
}
c.fn = fn
c.n = nargs
c.args = uintptr(unsafe.Pointer(&a1))
- cgocall_errno(asmstdcallAddr, unsafe.Pointer(&c))
+ cgocall(asmstdcallAddr, unsafe.Pointer(&c))
return c.r1, c.r2, c.err
}
c.fn = fn
c.n = nargs
c.args = uintptr(unsafe.Pointer(&a1))
- cgocall_errno(asmstdcallAddr, unsafe.Pointer(&c))
+ cgocall(asmstdcallAddr, unsafe.Pointer(&c))
return c.r1, c.r2, c.err
}
c.fn = fn
c.n = nargs
c.args = uintptr(unsafe.Pointer(&a1))
- cgocall_errno(asmstdcallAddr, unsafe.Pointer(&c))
+ cgocall(asmstdcallAddr, unsafe.Pointer(&c))
return c.r1, c.r2, c.err
}