syscall: mark C syscall functions noescape
Many C syscall functions take pointer arguments. The pointers don't escape in the C functions. Mark the C functions noescape so calling them doesn't need allocation. Reviewed-on: https://go-review.googlesource.com/c/158158 From-SVN: r267989
This commit is contained in:
parent
07e1534f44
commit
a6804ea929
|
@ -1,4 +1,4 @@
|
|||
9a79c333e896ea49f6a708d459148074d29a2af6
|
||||
ee94431c133a90ca5c3c5ebbebcb019c60258dac
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
|
|
@ -62,6 +62,7 @@ func runtime_AfterFork()
|
|||
func runtime_AfterForkInChild()
|
||||
|
||||
// Implemented in clone_linux.c
|
||||
//go:noescape
|
||||
func rawClone(flags _C_ulong, child_stack *byte, ptid *Pid_t, ctid *Pid_t, regs unsafe.Pointer) _C_long
|
||||
|
||||
// Fork, dup fd onto 0..len(fd), and exec(argv0, argvv, envv) in child.
|
||||
|
|
|
@ -98,6 +98,7 @@ BEGIN {
|
|||
printf("// Automatically generated wrapper for %s/%s\n", gofnname, cfnname)
|
||||
if (!(cfnname in cfns)) {
|
||||
cfns[cfnname] = 1
|
||||
printf("//go:noescape\n")
|
||||
printf("//extern %s\n", cfnname)
|
||||
printf("func c_%s(%s) %s\n", cfnname, cfnparams, cfnresult)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue