Skip to content

Commit 9d968cb

Browse files
committed
runtime: rename cgocall_errno and asmcgocall_errno into cgocall and asmcgocall
Change-Id: I5917bea8bb35b0e725dcc56a68f3a70137cfc180 Reviewed-on: https://go-review.googlesource.com/9387 Reviewed-by: Ian Lance Taylor <[email protected]>
1 parent 1a040c9 commit 9d968cb

20 files changed

+87
-103
lines changed

misc/cgo/test/callback.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,8 @@ func testCallbackCallers(t *testing.T) {
156156
"runtime.cgocallbackg1",
157157
"runtime.cgocallbackg",
158158
"runtime.cgocallback_gofunc",
159-
"asmcgocall",
160-
"runtime.asmcgocall_errno",
161-
"runtime.cgocall_errno",
159+
"runtime.asmcgocall",
160+
"runtime.cgocall",
162161
"test._Cfunc_callback",
163162
"test.nestedCall",
164163
"test.testCallbackCallers",

misc/cgo/test/issue7978.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,13 @@ func test7978(t *testing.T) {
110110
go issue7978go()
111111
// test in c code, before callback
112112
issue7978wait(0, 1)
113-
issue7978check(t, "runtime.cgocall_errno(", "", 1)
113+
issue7978check(t, "runtime.cgocall(", "", 1)
114114
// test in go code, during callback
115115
issue7978wait(2, 3)
116116
issue7978check(t, "test.issue7978cb(", "test.issue7978go", 3)
117117
// test in c code, after callback
118118
issue7978wait(4, 5)
119-
issue7978check(t, "runtime.cgocall_errno(", "runtime.cgocallback", 1)
119+
issue7978check(t, "runtime.cgocall(", "runtime.cgocallback", 1)
120120
// test in go code, after return from cgo
121121
issue7978wait(6, 7)
122122
issue7978check(t, "test.issue7978go(", "", 3)

src/cmd/cgo/doc.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ For example, here is the definition of _Cfunc_puts:
432432
var _cgo_be59f0f25121_Cfunc_puts = unsafe.Pointer(&__cgofn__cgo_be59f0f25121_Cfunc_puts)
433433
434434
func _Cfunc_puts(p0 *_Ctype_char) (r1 _Ctype_int) {
435-
_cgo_runtime_cgocall_errno(_cgo_be59f0f25121_Cfunc_puts, uintptr(unsafe.Pointer(&p0)))
435+
_cgo_runtime_cgocall(_cgo_be59f0f25121_Cfunc_puts, uintptr(unsafe.Pointer(&p0)))
436436
return
437437
}
438438
@@ -682,7 +682,7 @@ The following code will be generated by cgo:
682682
var _cgo_gcc_Cfunc_sin = unsafe.Pointer(&__cgo_gcc_Cfunc_sin)
683683
684684
func _Cfunc_sin(p0 _Ctype_double) (r1 _Ctype_double) {
685-
_cgo_runtime_cgocall_errno(_cgo_gcc_Cfunc_sin, uintptr(unsafe.Pointer(&p0)))
685+
_cgo_runtime_cgocall(_cgo_gcc_Cfunc_sin, uintptr(unsafe.Pointer(&p0)))
686686
return
687687
}
688688

src/cmd/cgo/out.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ func (p *Package) writeDefsFunc(fgo2 io.Writer, n *Name) {
466466
if n.AddError {
467467
prefix = "errno := "
468468
}
469-
fmt.Fprintf(fgo2, "\t%s_cgo_runtime_cgocall_errno(%s, %s)\n", prefix, cname, arg)
469+
fmt.Fprintf(fgo2, "\t%s_cgo_runtime_cgocall(%s, %s)\n", prefix, cname, arg)
470470
if n.AddError {
471471
fmt.Fprintf(fgo2, "\tif errno != 0 { r2 = syscall.Errno(errno) }\n")
472472
}
@@ -1232,8 +1232,8 @@ void *_CMalloc(size_t);
12321232
`
12331233

12341234
const goProlog = `
1235-
//go:linkname _cgo_runtime_cgocall_errno runtime.cgocall_errno
1236-
func _cgo_runtime_cgocall_errno(unsafe.Pointer, uintptr) int32
1235+
//go:linkname _cgo_runtime_cgocall runtime.cgocall
1236+
func _cgo_runtime_cgocall(unsafe.Pointer, uintptr) int32
12371237
12381238
//go:linkname _cgo_runtime_cmalloc runtime.cmalloc
12391239
func _cgo_runtime_cmalloc(uintptr) unsafe.Pointer

src/runtime/asm_386.s

+6-9
Original file line numberDiff line numberDiff line change
@@ -661,19 +661,14 @@ TEXT gosave<>(SB),NOSPLIT,$0
661661
POPL AX
662662
RET
663663

664-
// asmcgocall(void(*fn)(void*), void *arg)
664+
// func asmcgocall(fn, arg unsafe.Pointer) int32
665665
// Call fn(arg) on the scheduler stack,
666666
// aligned appropriately for the gcc ABI.
667-
// See cgocall.c for more details.
668-
TEXT ·asmcgocall_errno(SB),NOSPLIT,$0-12
667+
// See cgocall.go for more details.
668+
TEXT ·asmcgocall(SB),NOSPLIT,$0-12
669669
MOVL fn+0(FP), AX
670670
MOVL arg+4(FP), BX
671-
CALL asmcgocall<>(SB)
672-
MOVL AX, ret+8(FP)
673-
RET
674671

675-
TEXT asmcgocall<>(SB),NOSPLIT,$0-0
676-
// fn in AX, arg in BX
677672
MOVL SP, DX
678673

679674
// Figure out if we need to switch to m->g0 stack.
@@ -707,6 +702,8 @@ TEXT asmcgocall<>(SB),NOSPLIT,$0-0
707702
SUBL 4(SP), SI
708703
MOVL DI, g(CX)
709704
MOVL SI, SP
705+
706+
MOVL AX, ret+8(FP)
710707
RET
711708

712709
// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)
@@ -724,7 +721,7 @@ TEXT runtime·cgocallback(SB),NOSPLIT,$12-12
724721
RET
725722

726723
// cgocallback_gofunc(FuncVal*, void *frame, uintptr framesize)
727-
// See cgocall.c for more details.
724+
// See cgocall.go for more details.
728725
TEXT ·cgocallback_gofunc(SB),NOSPLIT,$12-12
729726
NO_LOCAL_POINTERS
730727

src/runtime/asm_amd64.s

+6-9
Original file line numberDiff line numberDiff line change
@@ -641,19 +641,14 @@ TEXT gosave<>(SB),NOSPLIT,$0
641641
MOVQ BP, (g_sched+gobuf_bp)(R8)
642642
RET
643643

644-
// asmcgocall(void(*fn)(void*), void *arg)
644+
// func asmcgocall(fn, arg unsafe.Pointer) int32
645645
// Call fn(arg) on the scheduler stack,
646646
// aligned appropriately for the gcc ABI.
647-
// See cgocall.c for more details.
648-
TEXT ·asmcgocall_errno(SB),NOSPLIT,$0-20
647+
// See cgocall.go for more details.
648+
TEXT ·asmcgocall(SB),NOSPLIT,$0-20
649649
MOVQ fn+0(FP), AX
650650
MOVQ arg+8(FP), BX
651-
CALL asmcgocall<>(SB)
652-
MOVL AX, ret+16(FP)
653-
RET
654651

655-
// asmcgocall common code. fn in AX, arg in BX. returns errno in AX.
656-
TEXT asmcgocall<>(SB),NOSPLIT,$0-0
657652
MOVQ SP, DX
658653

659654
// Figure out if we need to switch to m->g0 stack.
@@ -696,6 +691,8 @@ nosave:
696691
SUBQ 40(SP), SI
697692
MOVQ DI, g(CX)
698693
MOVQ SI, SP
694+
695+
MOVL AX, ret+16(FP)
699696
RET
700697

701698
// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)
@@ -713,7 +710,7 @@ TEXT runtime·cgocallback(SB),NOSPLIT,$24-24
713710
RET
714711

715712
// cgocallback_gofunc(FuncVal*, void *frame, uintptr framesize)
716-
// See cgocall.c for more details.
713+
// See cgocall.go for more details.
717714
TEXT ·cgocallback_gofunc(SB),NOSPLIT,$8-24
718715
NO_LOCAL_POINTERS
719716

src/runtime/asm_amd64p32.s

+2-2
Original file line numberDiff line numberDiff line change
@@ -582,9 +582,9 @@ TEXT runtime·jmpdefer(SB), NOSPLIT, $0-8
582582
MOVL 0(DX), BX
583583
JMP BX // but first run the deferred function
584584

585-
// asmcgocall(void(*fn)(void*), void *arg)
585+
// func asmcgocall(fn, arg unsafe.Pointer) int32
586586
// Not implemented.
587-
TEXT runtime·asmcgocall_errno(SB),NOSPLIT,$0-12
587+
TEXT runtime·asmcgocall(SB),NOSPLIT,$0-12
588588
MOVL 0, AX
589589
RET
590590

src/runtime/asm_arm.s

+6-9
Original file line numberDiff line numberDiff line change
@@ -474,19 +474,14 @@ TEXT gosave<>(SB),NOSPLIT,$0
474474
MOVW R11, (g_sched+gobuf_ctxt)(g)
475475
RET
476476

477-
// asmcgocall(void(*fn)(void*), void *arg)
477+
// func asmcgocall(fn, arg unsafe.Pointer) int32
478478
// Call fn(arg) on the scheduler stack,
479479
// aligned appropriately for the gcc ABI.
480-
// See cgocall.c for more details.
481-
TEXT ·asmcgocall_errno(SB),NOSPLIT,$0-12
480+
// See cgocall.go for more details.
481+
TEXT ·asmcgocall(SB),NOSPLIT,$0-12
482482
MOVW fn+0(FP), R1
483483
MOVW arg+4(FP), R0
484-
BL asmcgocall<>(SB)
485-
MOVW R0, ret+8(FP)
486-
RET
487484

488-
TEXT asmcgocall<>(SB),NOSPLIT,$0-0
489-
// fn in R1, arg in R0.
490485
MOVW R13, R2
491486
MOVW g, R4
492487

@@ -523,6 +518,8 @@ g0:
523518
SUB R2, R1
524519
MOVW R5, R0
525520
MOVW R1, R13
521+
522+
MOVW R0, ret+8(FP)
526523
RET
527524

528525
// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)
@@ -540,7 +537,7 @@ TEXT runtime·cgocallback(SB),NOSPLIT,$12-12
540537
RET
541538

542539
// cgocallback_gofunc(void (*fn)(void*), void *frame, uintptr framesize)
543-
// See cgocall.c for more details.
540+
// See cgocall.go for more details.
544541
TEXT ·cgocallback_gofunc(SB),NOSPLIT,$8-12
545542
NO_LOCAL_POINTERS
546543

src/runtime/asm_arm64.s

+4-7
Original file line numberDiff line numberDiff line change
@@ -545,19 +545,14 @@ TEXT gosave<>(SB),NOSPLIT,$-8
545545
MOVD $0, (g_sched+gobuf_ctxt)(g)
546546
RET
547547

548-
// asmcgocall(void(*fn)(void*), void *arg)
548+
// func asmcgocall(fn, arg unsafe.Pointer) int32
549549
// Call fn(arg) on the scheduler stack,
550550
// aligned appropriately for the gcc ABI.
551551
// See cgocall.go for more details.
552-
TEXT ·asmcgocall_errno(SB),NOSPLIT,$0-20
552+
TEXT ·asmcgocall(SB),NOSPLIT,$0-20
553553
MOVD fn+0(FP), R1
554554
MOVD arg+8(FP), R0
555-
BL asmcgocall<>(SB)
556-
MOVW R0, ret+16(FP)
557-
RET
558555

559-
// asmcgocall common code. fn in R1, arg in R0. returns errno in R0.
560-
TEXT asmcgocall<>(SB),NOSPLIT,$0-0
561556
MOVD RSP, R2 // save original stack pointer
562557
MOVD g, R4
563558

@@ -598,6 +593,8 @@ g0:
598593
SUB R6, R5
599594
MOVD R9, R0
600595
MOVD R5, RSP
596+
597+
MOVW R0, ret+16(FP)
601598
RET
602599

603600
// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)

src/runtime/asm_ppc64x.s

+6-9
Original file line numberDiff line numberDiff line change
@@ -694,19 +694,14 @@ TEXT gosave<>(SB),NOSPLIT,$-8
694694
MOVD R0, (g_sched+gobuf_ctxt)(g)
695695
RET
696696

697-
// asmcgocall(void(*fn)(void*), void *arg)
697+
// func asmcgocall(fn, arg unsafe.Pointer) int32
698698
// Call fn(arg) on the scheduler stack,
699699
// aligned appropriately for the gcc ABI.
700-
// See cgocall.c for more details.
701-
TEXT ·asmcgocall_errno(SB),NOSPLIT,$0-20
700+
// See cgocall.go for more details.
701+
TEXT ·asmcgocall(SB),NOSPLIT,$0-20
702702
MOVD fn+0(FP), R3
703703
MOVD arg+8(FP), R4
704-
BL asmcgocall<>(SB)
705-
MOVW R3, ret+16(FP)
706-
RET
707704

708-
// asmcgocall common code. fn in R3, arg in R4. returns errno in R3.
709-
TEXT asmcgocall<>(SB),NOSPLIT,$0-0
710705
MOVD R1, R2 // save original stack pointer
711706
MOVD g, R5
712707

@@ -749,6 +744,8 @@ g0:
749744
MOVD 32(R1), R6
750745
SUB R6, R5
751746
MOVD R5, R1
747+
748+
MOVW R3, ret+16(FP)
752749
RET
753750

754751
// cgocallback(void (*fn)(void*), void *frame, uintptr framesize)
@@ -767,7 +764,7 @@ TEXT runtime·cgocallback(SB),NOSPLIT,$24-24
767764
RET
768765

769766
// cgocallback_gofunc(FuncVal*, void *frame, uintptr framesize)
770-
// See cgocall.c for more details.
767+
// See cgocall.go for more details.
771768
TEXT ·cgocallback_gofunc(SB),NOSPLIT,$16-24
772769
NO_LOCAL_POINTERS
773770

src/runtime/cgocall.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ import "unsafe"
8383

8484
// Call from Go to C.
8585
//go:nosplit
86-
func cgocall_errno(fn, arg unsafe.Pointer) int32 {
86+
func cgocall(fn, arg unsafe.Pointer) int32 {
8787
if !iscgo && GOOS != "solaris" && GOOS != "windows" {
8888
throw("cgocall unavailable")
8989
}
@@ -118,7 +118,7 @@ func cgocall_errno(fn, arg unsafe.Pointer) int32 {
118118
* the $GOMAXPROCS accounting.
119119
*/
120120
entersyscall(0)
121-
errno := asmcgocall_errno(fn, arg)
121+
errno := asmcgocall(fn, arg)
122122
exitsyscall(0)
123123

124124
return errno
@@ -143,15 +143,15 @@ func cmalloc(n uintptr) unsafe.Pointer {
143143
ret unsafe.Pointer
144144
}
145145
args.n = uint64(n)
146-
cgocall_errno(_cgo_malloc, unsafe.Pointer(&args))
146+
cgocall(_cgo_malloc, unsafe.Pointer(&args))
147147
if args.ret == nil {
148148
throw("C malloc failed")
149149
}
150150
return args.ret
151151
}
152152

153153
func cfree(p unsafe.Pointer) {
154-
cgocall_errno(_cgo_free, p)
154+
cgocall(_cgo_free, p)
155155
}
156156

157157
// Call from C back to Go.

src/runtime/env_posix.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func syscall_setenv_c(k string, v string) {
3232
return
3333
}
3434
arg := [2]unsafe.Pointer{cstring(k), cstring(v)}
35-
asmcgocall_errno(unsafe.Pointer(_cgo_setenv), unsafe.Pointer(&arg))
35+
asmcgocall(unsafe.Pointer(_cgo_setenv), unsafe.Pointer(&arg))
3636
}
3737

3838
// Update the C environment if cgo is loaded.
@@ -43,7 +43,7 @@ func syscall_unsetenv_c(k string) {
4343
return
4444
}
4545
arg := [1]unsafe.Pointer{cstring(k)}
46-
asmcgocall_errno(unsafe.Pointer(_cgo_unsetenv), unsafe.Pointer(&arg))
46+
asmcgocall(unsafe.Pointer(_cgo_unsetenv), unsafe.Pointer(&arg))
4747
}
4848

4949
func cstring(s string) unsafe.Pointer {

src/runtime/os1_windows.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ func stdcall(fn stdFunction) uintptr {
372372
// all three values to be non-zero, it will use them
373373
mp.libcallsp = getcallersp(unsafe.Pointer(&fn))
374374
}
375-
asmcgocall_errno(asmstdcallAddr, unsafe.Pointer(&mp.libcall))
375+
asmcgocall(asmstdcallAddr, unsafe.Pointer(&mp.libcall))
376376
mp.libcallsp = 0
377377
return mp.libcall.r1
378378
}

src/runtime/os3_solaris.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ func msigsave(mp *m) {
201201
// Called on the new thread, can not allocate memory.
202202
func minit() {
203203
_g_ := getg()
204-
asmcgocall_errno(unsafe.Pointer(funcPC(miniterrno)), unsafe.Pointer(&libc____errno))
204+
asmcgocall(unsafe.Pointer(funcPC(miniterrno)), unsafe.Pointer(&libc____errno))
205205
// Initialize signal handling
206206
signalstack(&_g_.m.gsignal.stack)
207207

@@ -317,7 +317,7 @@ func semacreate() uintptr {
317317
memclr(unsafe.Pointer(&_g_.m.scratch), uintptr(len(_g_.m.scratch.v)))
318318
_g_.m.scratch.v[0] = unsafe.Sizeof(*sem)
319319
_g_.m.libcall.args = uintptr(unsafe.Pointer(&_g_.m.scratch))
320-
asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_g_.m.libcall))
320+
asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_g_.m.libcall))
321321
sem = (*semt)(unsafe.Pointer(_g_.m.libcall.r1))
322322
if sem_init(sem, 0, 0) != 0 {
323323
throw("sem_init")
@@ -338,7 +338,7 @@ func semasleep(ns int64) int32 {
338338
_m_.scratch.v[0] = _m_.waitsema
339339
_m_.scratch.v[1] = uintptr(unsafe.Pointer(&_m_.ts))
340340
_m_.libcall.args = uintptr(unsafe.Pointer(&_m_.scratch))
341-
asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_m_.libcall))
341+
asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_m_.libcall))
342342
if *_m_.perrno != 0 {
343343
if *_m_.perrno == _ETIMEDOUT || *_m_.perrno == _EAGAIN || *_m_.perrno == _EINTR {
344344
return -1
@@ -353,7 +353,7 @@ func semasleep(ns int64) int32 {
353353
memclr(unsafe.Pointer(&_m_.scratch), uintptr(len(_m_.scratch.v)))
354354
_m_.scratch.v[0] = _m_.waitsema
355355
_m_.libcall.args = uintptr(unsafe.Pointer(&_m_.scratch))
356-
asmcgocall_errno(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_m_.libcall))
356+
asmcgocall(unsafe.Pointer(&asmsysvicall6), unsafe.Pointer(&_m_.libcall))
357357
if _m_.libcall.r1 == 0 {
358358
break
359359
}

0 commit comments

Comments
 (0)