X7ROOT File Manager
Current Path:
/opt/golang/1.22.0/src/runtime
opt
/
golang
/
1.22.0
/
src
/
runtime
/
馃搧
..
馃搫
HACKING.md
(13.85 KB)
馃搫
Makefile
(178 B)
馃搫
abi_test.go
(2.83 KB)
馃搫
alg.go
(10.99 KB)
馃搫
align_runtime_test.go
(1.82 KB)
馃搫
align_test.go
(5.37 KB)
馃搫
arena.go
(31.66 KB)
馃搫
arena_test.go
(13.39 KB)
馃搧
asan
馃搫
asan.go
(1.55 KB)
馃搫
asan0.go
(760 B)
馃搫
asan_amd64.s
(2.45 KB)
馃搫
asan_arm64.s
(2.14 KB)
馃搫
asan_loong64.s
(2.12 KB)
馃搫
asan_ppc64le.s
(2.75 KB)
馃搫
asan_riscv64.s
(1.92 KB)
馃搫
asm.s
(719 B)
馃搫
asm_386.s
(42.54 KB)
馃搫
asm_amd64.h
(631 B)
馃搫
asm_amd64.s
(60.09 KB)
馃搫
asm_arm.s
(31.58 KB)
馃搫
asm_arm64.s
(43.33 KB)
馃搫
asm_loong64.s
(27.58 KB)
馃搫
asm_mips64x.s
(24.34 KB)
馃搫
asm_mipsx.s
(25.82 KB)
馃搫
asm_ppc64x.h
(1.93 KB)
馃搫
asm_ppc64x.s
(45.19 KB)
馃搫
asm_riscv64.s
(26.97 KB)
馃搫
asm_s390x.s
(27.55 KB)
馃搫
asm_wasm.s
(11.82 KB)
馃搫
atomic_arm64.s
(259 B)
馃搫
atomic_loong64.s
(245 B)
馃搫
atomic_mips64x.s
(300 B)
馃搫
atomic_mipsx.s
(262 B)
馃搫
atomic_pointer.go
(3.66 KB)
馃搫
atomic_ppc64x.s
(437 B)
馃搫
atomic_riscv64.s
(275 B)
馃搫
auxv_none.go
(298 B)
馃搫
callers_test.go
(12.13 KB)
馃搧
cgo
馃搫
cgo.go
(2.5 KB)
馃搫
cgo_mmap.go
(2.42 KB)
馃搫
cgo_ppc64x.go
(418 B)
馃搫
cgo_sigaction.go
(3.28 KB)
馃搫
cgocall.go
(23.23 KB)
馃搫
cgocallback.go
(317 B)
馃搫
cgocheck.go
(7.97 KB)
馃搫
chan.go
(23.74 KB)
馃搫
chan_test.go
(23.44 KB)
馃搫
chanbarrier_test.go
(1.4 KB)
馃搫
checkptr.go
(3.29 KB)
馃搫
checkptr_test.go
(2.86 KB)
馃搫
closure_test.go
(937 B)
馃搫
compiler.go
(410 B)
馃搫
complex.go
(1.59 KB)
馃搫
complex_test.go
(1.05 KB)
馃搫
conv_wasm_test.go
(2.96 KB)
馃搫
coro.go
(4.92 KB)
馃搧
coverage
馃搫
covercounter.go
(749 B)
馃搫
covermeta.go
(2.4 KB)
馃搫
cpuflags.go
(810 B)
馃搫
cpuflags_amd64.go
(533 B)
馃搫
cpuflags_arm64.go
(312 B)
馃搫
cpuprof.go
(7.94 KB)
馃搫
cputicks.go
(437 B)
馃搫
crash_cgo_test.go
(23.35 KB)
馃搫
crash_test.go
(23.12 KB)
馃搫
crash_unix_test.go
(9.19 KB)
馃搫
create_file_nounix.go
(305 B)
馃搫
create_file_unix.go
(368 B)
馃搧
debug
馃搫
debug.go
(3.53 KB)
馃搫
debug_test.go
(7.99 KB)
馃搫
debugcall.go
(6.75 KB)
馃搫
debuglog.go
(18.24 KB)
馃搫
debuglog_off.go
(357 B)
馃搫
debuglog_on.go
(1.09 KB)
馃搫
debuglog_test.go
(4.9 KB)
馃搫
defer_test.go
(11.4 KB)
馃搫
defs1_linux.go
(845 B)
馃搫
defs1_netbsd_386.go
(2.91 KB)
馃搫
defs1_netbsd_amd64.go
(3.14 KB)
馃搫
defs1_netbsd_arm.go
(3.03 KB)
馃搫
defs1_netbsd_arm64.go
(3.25 KB)
馃搫
defs1_solaris_amd64.go
(4.01 KB)
馃搫
defs2_linux.go
(3.22 KB)
馃搫
defs3_linux.go
(1.09 KB)
馃搫
defs_aix.go
(4.17 KB)
馃搫
defs_aix_ppc64.go
(3.63 KB)
馃搫
defs_arm_linux.go
(2.67 KB)
馃搫
defs_darwin.go
(4.18 KB)
馃搫
defs_darwin_amd64.go
(6.34 KB)
馃搫
defs_darwin_arm64.go
(4.17 KB)
馃搫
defs_dragonfly.go
(2.73 KB)
馃搫
defs_dragonfly_amd64.go
(3.41 KB)
馃搫
defs_freebsd.go
(3.96 KB)
馃搫
defs_freebsd_386.go
(4.52 KB)
馃搫
defs_freebsd_amd64.go
(4.79 KB)
馃搫
defs_freebsd_arm.go
(3.92 KB)
馃搫
defs_freebsd_arm64.go
(4.18 KB)
馃搫
defs_freebsd_riscv64.go
(4.19 KB)
馃搫
defs_illumos_amd64.go
(285 B)
馃搫
defs_linux.go
(2.92 KB)
馃搫
defs_linux_386.go
(4.2 KB)
馃搫
defs_linux_amd64.go
(4.7 KB)
馃搫
defs_linux_arm.go
(3.89 KB)
馃搫
defs_linux_arm64.go
(3.62 KB)
馃搫
defs_linux_loong64.go
(3.43 KB)
馃搫
defs_linux_mips64x.go
(3.6 KB)
馃搫
defs_linux_mipsx.go
(3.6 KB)
馃搫
defs_linux_ppc64.go
(3.69 KB)
馃搫
defs_linux_ppc64le.go
(3.69 KB)
馃搫
defs_linux_riscv64.go
(3.81 KB)
馃搫
defs_linux_s390x.go
(3.16 KB)
馃搫
defs_netbsd.go
(2.83 KB)
馃搫
defs_netbsd_386.go
(855 B)
馃搫
defs_netbsd_amd64.go
(1.01 KB)
馃搫
defs_netbsd_arm.go
(764 B)
馃搫
defs_openbsd.go
(3.06 KB)
馃搫
defs_openbsd_386.go
(2.91 KB)
馃搫
defs_openbsd_amd64.go
(3.11 KB)
馃搫
defs_openbsd_arm.go
(3.03 KB)
馃搫
defs_openbsd_arm64.go
(2.78 KB)
馃搫
defs_openbsd_mips64.go
(2.75 KB)
馃搫
defs_openbsd_ppc64.go
(3 KB)
馃搫
defs_openbsd_riscv64.go
(2.89 KB)
馃搫
defs_plan9_386.go
(1.63 KB)
馃搫
defs_plan9_amd64.go
(1.82 KB)
馃搫
defs_plan9_arm.go
(1.73 KB)
馃搫
defs_solaris.go
(3.32 KB)
馃搫
defs_solaris_amd64.go
(1004 B)
馃搫
defs_windows.go
(2.25 KB)
馃搫
defs_windows_386.go
(2.28 KB)
馃搫
defs_windows_amd64.go
(3.19 KB)
馃搫
defs_windows_arm.go
(2.57 KB)
馃搫
defs_windows_arm64.go
(3.07 KB)
馃搫
duff_386.s
(8.24 KB)
馃搫
duff_amd64.s
(5.64 KB)
馃搫
duff_arm.s
(7.11 KB)
馃搫
duff_arm64.s
(5.27 KB)
馃搫
duff_loong64.s
(11.9 KB)
馃搫
duff_mips64x.s
(11.28 KB)
馃搫
duff_ppc64x.s
(7.06 KB)
馃搫
duff_riscv64.s
(11.4 KB)
馃搫
duff_s390x.s
(507 B)
馃搫
ehooks_test.go
(2.04 KB)
馃搫
env_plan9.go
(3 KB)
馃搫
env_posix.go
(1.56 KB)
馃搫
env_test.go
(1.16 KB)
馃搫
error.go
(9.29 KB)
馃搫
example_test.go
(1.55 KB)
馃搫
exithook.go
(2.32 KB)
馃搫
export_aix_test.go
(207 B)
馃搫
export_arm_test.go
(226 B)
馃搫
export_darwin_test.go
(207 B)
馃搫
export_debug_amd64_test.go
(3.6 KB)
馃搫
export_debug_arm64_test.go
(3.49 KB)
馃搫
export_debug_ppc64le_test.go
(3.5 KB)
馃搫
export_debug_test.go
(5.07 KB)
馃搫
export_debuglog_test.go
(1.27 KB)
馃搫
export_linux_test.go
(378 B)
馃搫
export_mmap_test.go
(429 B)
馃搫
export_pipe2_test.go
(310 B)
馃搫
export_pipe_test.go
(219 B)
馃搫
export_test.go
(50.52 KB)
馃搫
export_unix_test.go
(2.27 KB)
馃搫
export_windows_test.go
(903 B)
馃搫
extern.go
(18.58 KB)
馃搫
fastlog2.go
(1.22 KB)
馃搫
fastlog2_test.go
(784 B)
馃搫
fastlog2table.go
(904 B)
馃搫
fds_nonunix.go
(256 B)
馃搫
fds_test.go
(1.43 KB)
馃搫
fds_unix.go
(1.27 KB)
馃搫
float.go
(1.35 KB)
馃搫
float_test.go
(699 B)
馃搫
funcdata.h
(2.53 KB)
馃搫
gc_test.go
(20.32 KB)
馃搫
gcinfo_test.go
(5.95 KB)
馃搫
go_tls.h
(366 B)
馃搫
hash32.go
(1.58 KB)
馃搫
hash64.go
(1.95 KB)
馃搫
hash_test.go
(17.24 KB)
馃搫
heap_test.go
(529 B)
馃搫
heapdump.go
(17.88 KB)
馃搫
histogram.go
(7.3 KB)
馃搫
histogram_test.go
(3.51 KB)
馃搫
iface.go
(20.92 KB)
馃搫
iface_test.go
(7.45 KB)
馃搫
import_test.go
(1.42 KB)
馃搫
importx_test.go
(763 B)
馃搧
internal
馃搫
lfstack.go
(2.03 KB)
馃搫
lfstack_test.go
(2.74 KB)
馃搫
libfuzzer.go
(6.34 KB)
馃搫
libfuzzer_amd64.s
(5.03 KB)
馃搫
libfuzzer_arm64.s
(3.15 KB)
馃搫
lock_futex.go
(5.4 KB)
馃搫
lock_js.go
(7.28 KB)
馃搫
lock_sema.go
(6.75 KB)
馃搫
lock_wasip1.go
(2.01 KB)
馃搫
lockrank.go
(18.19 KB)
馃搫
lockrank_off.go
(1.17 KB)
馃搫
lockrank_on.go
(10.27 KB)
馃搫
lockrank_test.go
(856 B)
馃搫
malloc.go
(58.5 KB)
馃搫
malloc_test.go
(10.64 KB)
馃搫
map.go
(52.17 KB)
馃搫
map_benchmark_test.go
(10.59 KB)
馃搫
map_fast32.go
(12.74 KB)
馃搫
map_fast64.go
(12.92 KB)
馃搫
map_faststr.go
(14.32 KB)
馃搫
map_test.go
(31.75 KB)
馃搫
mbarrier.go
(13.78 KB)
馃搫
mbitmap.go
(22.54 KB)
馃搫
mbitmap_allocheaders.go
(44.67 KB)
馃搫
mbitmap_noallocheaders.go
(28.95 KB)
馃搫
mcache.go
(10 KB)
馃搫
mcentral.go
(8.05 KB)
馃搫
mcheckmark.go
(2.85 KB)
馃搫
mem.go
(6.72 KB)
馃搫
mem_aix.go
(2.01 KB)
馃搫
mem_bsd.go
(2.21 KB)
馃搫
mem_darwin.go
(1.96 KB)
馃搫
mem_js.go
(457 B)
馃搫
mem_linux.go
(4.98 KB)
馃搫
mem_plan9.go
(447 B)
馃搫
mem_sbrk.go
(4.19 KB)
馃搫
mem_wasip1.go
(392 B)
馃搫
mem_wasm.go
(488 B)
馃搫
mem_windows.go
(3.88 KB)
馃搫
memclr_386.s
(2.38 KB)
馃搫
memclr_amd64.s
(4.91 KB)
馃搫
memclr_arm.s
(2.6 KB)
馃搫
memclr_arm64.s
(3.62 KB)
馃搫
memclr_loong64.s
(843 B)
馃搫
memclr_mips64x.s
(1.72 KB)
馃搫
memclr_mipsx.s
(1.32 KB)
馃搫
memclr_plan9_386.s
(983 B)
馃搫
memclr_plan9_amd64.s
(511 B)
馃搫
memclr_ppc64x.s
(4.44 KB)
馃搫
memclr_riscv64.s
(1.71 KB)
馃搫
memclr_s390x.s
(1.96 KB)
馃搫
memclr_wasm.s
(485 B)
馃搫
memmove_386.s
(4.42 KB)
馃搫
memmove_amd64.s
(12.48 KB)
馃搫
memmove_arm.s
(5.9 KB)
馃搫
memmove_arm64.s
(5.96 KB)
馃搫
memmove_linux_amd64_test.go
(1.53 KB)
馃搫
memmove_loong64.s
(1.87 KB)
馃搫
memmove_mips64x.s
(1.83 KB)
馃搫
memmove_mipsx.s
(4.4 KB)
馃搫
memmove_plan9_386.s
(3.06 KB)
馃搫
memmove_plan9_amd64.s
(3.04 KB)
馃搫
memmove_ppc64x.s
(4.91 KB)
馃搫
memmove_riscv64.s
(5.46 KB)
馃搫
memmove_s390x.s
(2.92 KB)
馃搫
memmove_test.go
(21.23 KB)
馃搫
memmove_wasm.s
(479 B)
馃搧
metrics
馃搫
metrics.go
(26.01 KB)
馃搫
metrics_test.go
(42.46 KB)
馃搫
mfinal.go
(18.91 KB)
馃搫
mfinal_test.go
(5.57 KB)
馃搫
mfixalloc.go
(3.13 KB)
馃搫
mgc.go
(59.29 KB)
馃搫
mgclimit.go
(17.28 KB)
馃搫
mgclimit_test.go
(9.02 KB)
馃搫
mgcmark.go
(53.07 KB)
馃搫
mgcpacer.go
(55.36 KB)
馃搫
mgcpacer_test.go
(39.26 KB)
馃搫
mgcscavenge.go
(52.32 KB)
馃搫
mgcscavenge_test.go
(25.2 KB)
馃搫
mgcstack.go
(10.58 KB)
馃搫
mgcsweep.go
(32.26 KB)
馃搫
mgcwork.go
(12.89 KB)
馃搫
mheap.go
(72.64 KB)
馃搫
minmax.go
(1.46 KB)
馃搫
minmax_test.go
(3.31 KB)
馃搫
mkduff.go
(8.04 KB)
馃搫
mkfastlog2table.go
(3.08 KB)
馃搫
mklockrank.go
(9 KB)
馃搫
mkpreempt.go
(15.33 KB)
馃搫
mksizeclasses.go
(9.52 KB)
馃搫
mmap.go
(844 B)
馃搫
mpagealloc.go
(39.23 KB)
馃搫
mpagealloc_32bit.go
(4.56 KB)
馃搫
mpagealloc_64bit.go
(9.34 KB)
馃搫
mpagealloc_test.go
(32.59 KB)
馃搫
mpagecache.go
(5.59 KB)
馃搫
mpagecache_test.go
(10.79 KB)
馃搫
mpallocbits.go
(12.58 KB)
馃搫
mpallocbits_test.go
(13.69 KB)
馃搫
mprof.go
(47.4 KB)
馃搫
mranges.go
(14.46 KB)
馃搫
mranges_test.go
(5.68 KB)
馃搧
msan
馃搫
msan.go
(1.5 KB)
馃搫
msan0.go
(725 B)
馃搫
msan_amd64.s
(2.3 KB)
馃搫
msan_arm64.s
(1.98 KB)
馃搫
msan_loong64.s
(1.96 KB)
馃搫
msize_allocheaders.go
(1.32 KB)
馃搫
msize_noallocheaders.go
(915 B)
馃搫
mspanset.go
(13.12 KB)
馃搫
mstats.go
(33.81 KB)
馃搫
mwbbuf.go
(8.13 KB)
馃搫
nbpipe_pipe.go
(405 B)
馃搫
nbpipe_pipe2.go
(344 B)
馃搫
nbpipe_pipe_test.go
(706 B)
馃搫
nbpipe_test.go
(1.99 KB)
馃搫
net_plan9.go
(645 B)
馃搫
netpoll.go
(20.55 KB)
馃搫
netpoll_aix.go
(5.06 KB)
馃搫
netpoll_epoll.go
(4.4 KB)
馃搫
netpoll_fake.go
(664 B)
馃搫
netpoll_kqueue.go
(5.62 KB)
馃搫
netpoll_os_test.go
(520 B)
馃搫
netpoll_solaris.go
(11.2 KB)
馃搫
netpoll_stub.go
(1.48 KB)
馃搫
netpoll_wasip1.go
(6.08 KB)
馃搫
netpoll_windows.go
(4.01 KB)
馃搫
nonwindows_stub.go
(729 B)
馃搫
norace_linux_test.go
(915 B)
馃搫
norace_test.go
(983 B)
馃搫
numcpu_freebsd_test.go
(381 B)
馃搫
os2_aix.go
(20.88 KB)
馃搫
os2_freebsd.go
(302 B)
馃搫
os2_openbsd.go
(296 B)
馃搫
os2_plan9.go
(1.48 KB)
馃搫
os2_solaris.go
(320 B)
馃搫
os3_plan9.go
(3.94 KB)
馃搫
os3_solaris.go
(17.59 KB)
馃搫
os_aix.go
(8.89 KB)
馃搫
os_android.go
(463 B)
馃搫
os_darwin.go
(11.92 KB)
馃搫
os_darwin_arm64.go
(329 B)
馃搫
os_dragonfly.go
(7.14 KB)
馃搫
os_freebsd.go
(11.64 KB)
馃搫
os_freebsd2.go
(603 B)
馃搫
os_freebsd_amd64.go
(658 B)
馃搫
os_freebsd_arm.go
(1.45 KB)
馃搫
os_freebsd_arm64.go
(320 B)
馃搫
os_freebsd_noauxv.go
(241 B)
馃搫
os_freebsd_riscv64.go
(198 B)
馃搫
os_illumos.go
(3.93 KB)
馃搫
os_js.go
(767 B)
馃搫
os_linux.go
(25.71 KB)
馃搫
os_linux_arm.go
(1.51 KB)
馃搫
os_linux_arm64.go
(478 B)
馃搫
os_linux_be64.go
(806 B)
馃搫
os_linux_generic.go
(870 B)
馃搫
os_linux_loong64.go
(263 B)
馃搫
os_linux_mips64x.go
(996 B)
馃搫
os_linux_mipsx.go
(987 B)
馃搫
os_linux_noauxv.go
(337 B)
馃搫
os_linux_novdso.go
(347 B)
馃搫
os_linux_ppc64x.go
(526 B)
馃搫
os_linux_riscv64.go
(198 B)
馃搫
os_linux_s390x.go
(825 B)
馃搫
os_linux_x86.go
(234 B)
馃搫
os_netbsd.go
(10.12 KB)
馃搫
os_netbsd_386.go
(617 B)
馃搫
os_netbsd_amd64.go
(614 B)
馃搫
os_netbsd_arm.go
(1.07 KB)
馃搫
os_netbsd_arm64.go
(769 B)
馃搫
os_nonopenbsd.go
(437 B)
馃搫
os_only_solaris.go
(357 B)
馃搫
os_openbsd.go
(6.23 KB)
馃搫
os_openbsd_arm.go
(662 B)
馃搫
os_openbsd_arm64.go
(329 B)
馃搫
os_openbsd_libc.go
(1.49 KB)
馃搫
os_openbsd_mips64.go
(329 B)
馃搫
os_openbsd_syscall.go
(1.36 KB)
馃搫
os_openbsd_syscall1.go
(441 B)
馃搫
os_openbsd_syscall2.go
(2.51 KB)
馃搫
os_plan9.go
(10.18 KB)
馃搫
os_plan9_arm.go
(375 B)
馃搫
os_solaris.go
(6.62 KB)
馃搫
os_unix.go
(436 B)
馃搫
os_unix_nonlinux.go
(374 B)
馃搫
os_wasip1.go
(7 KB)
馃搫
os_wasm.go
(3.15 KB)
馃搫
os_windows.go
(41.39 KB)
馃搫
os_windows_arm.go
(511 B)
馃搫
os_windows_arm64.go
(339 B)
馃搫
pagetrace_off.go
(550 B)
馃搫
pagetrace_on.go
(10.36 KB)
馃搫
panic.go
(41.85 KB)
馃搫
panic32.go
(4.8 KB)
馃搫
panic_test.go
(1.71 KB)
馃搫
panicnil_test.go
(1.25 KB)
馃搫
pinner.go
(10.98 KB)
馃搫
pinner_test.go
(11.04 KB)
馃搫
plugin.go
(4.37 KB)
馃搧
pprof
馃搫
preempt.go
(15.03 KB)
馃搫
preempt_386.s
(824 B)
馃搫
preempt_amd64.s
(1.67 KB)
馃搫
preempt_arm.s
(1.49 KB)
馃搫
preempt_arm64.s
(1.97 KB)
馃搫
preempt_loong64.s
(2.41 KB)
馃搫
preempt_mips64x.s
(2.72 KB)
馃搫
preempt_mipsx.s
(2.68 KB)
馃搫
preempt_nonwindows.go
(290 B)
馃搫
preempt_ppc64x.s
(2.72 KB)
馃搫
preempt_riscv64.s
(2.26 KB)
馃搫
preempt_s390x.s
(1.01 KB)
馃搫
preempt_wasm.s
(176 B)
馃搫
print.go
(5.92 KB)
馃搫
proc.go
(204.28 KB)
馃搫
proc_runtime_test.go
(1.38 KB)
馃搫
proc_test.go
(25.85 KB)
馃搫
profbuf.go
(18.26 KB)
馃搫
profbuf_test.go
(8.54 KB)
馃搫
proflabel.go
(1.52 KB)
馃搧
race
馃搫
race.go
(18.81 KB)
馃搫
race0.go
(2.79 KB)
馃搫
race_amd64.s
(13.94 KB)
馃搫
race_arm64.s
(14.21 KB)
馃搫
race_ppc64le.s
(15.93 KB)
馃搫
race_s390x.s
(11.99 KB)
馃搫
rand.go
(7.11 KB)
馃搫
rand_test.go
(1.95 KB)
馃搫
rdebug.go
(550 B)
馃搫
retry.go
(760 B)
馃搫
rt0_aix_ppc64.s
(4.09 KB)
馃搫
rt0_android_386.s
(822 B)
馃搫
rt0_android_amd64.s
(754 B)
馃搫
rt0_android_arm.s
(843 B)
馃搫
rt0_android_arm64.s
(941 B)
馃搫
rt0_darwin_amd64.s
(399 B)
馃搫
rt0_darwin_arm64.s
(1.69 KB)
馃搫
rt0_dragonfly_amd64.s
(448 B)
馃搫
rt0_freebsd_386.s
(454 B)
馃搫
rt0_freebsd_amd64.s
(442 B)
馃搫
rt0_freebsd_arm.s
(298 B)
馃搫
rt0_freebsd_arm64.s
(1.88 KB)
馃搫
rt0_freebsd_riscv64.s
(2.72 KB)
馃搫
rt0_illumos_amd64.s
(311 B)
馃搫
rt0_ios_amd64.s
(425 B)
馃搫
rt0_ios_arm64.s
(425 B)
馃搫
rt0_js_wasm.s
(1.53 KB)
馃搫
rt0_linux_386.s
(450 B)
馃搫
rt0_linux_amd64.s
(307 B)
馃搫
rt0_linux_arm.s
(1007 B)
馃搫
rt0_linux_arm64.s
(1.81 KB)
馃搫
rt0_linux_loong64.s
(2.01 KB)
馃搫
rt0_linux_mips64x.s
(1014 B)
馃搫
rt0_linux_mipsx.s
(797 B)
馃搫
rt0_linux_ppc64.s
(847 B)
馃搫
rt0_linux_ppc64le.s
(2.89 KB)
馃搫
rt0_linux_riscv64.s
(2.65 KB)
馃搫
rt0_linux_s390x.s
(676 B)
馃搫
rt0_netbsd_386.s
(452 B)
馃搫
rt0_netbsd_amd64.s
(309 B)
馃搫
rt0_netbsd_arm.s
(296 B)
馃搫
rt0_netbsd_arm64.s
(1.8 KB)
馃搫
rt0_openbsd_386.s
(454 B)
馃搫
rt0_openbsd_amd64.s
(311 B)
馃搫
rt0_openbsd_arm.s
(298 B)
馃搫
rt0_openbsd_arm64.s
(1.96 KB)
馃搫
rt0_openbsd_mips64.s
(976 B)
馃搫
rt0_openbsd_ppc64.s
(370 B)
馃搫
rt0_openbsd_riscv64.s
(372 B)
馃搫
rt0_plan9_386.s
(523 B)
馃搫
rt0_plan9_amd64.s
(481 B)
馃搫
rt0_plan9_arm.s
(397 B)
馃搫
rt0_solaris_amd64.s
(311 B)
馃搫
rt0_wasip1_wasm.s
(387 B)
馃搫
rt0_windows_386.s
(1.28 KB)
馃搫
rt0_windows_amd64.s
(1.14 KB)
馃搫
rt0_windows_arm.s
(386 B)
馃搫
rt0_windows_arm64.s
(733 B)
馃搫
runtime-gdb.py
(15.44 KB)
馃搫
runtime-gdb_test.go
(24.04 KB)
馃搫
runtime-gdb_unix_test.go
(9.4 KB)
馃搫
runtime-lldb_test.go
(4.95 KB)
馃搫
runtime-seh_windows_test.go
(4.7 KB)
馃搫
runtime.go
(7.1 KB)
馃搫
runtime1.go
(16.66 KB)
馃搫
runtime2.go
(46.16 KB)
馃搫
runtime_boring.go
(606 B)
馃搫
runtime_linux_test.go
(1.77 KB)
馃搫
runtime_mmap_test.go
(1.77 KB)
馃搫
runtime_test.go
(11.81 KB)
馃搫
runtime_unix_test.go
(1.22 KB)
馃搫
rwmutex.go
(5 KB)
馃搫
rwmutex_test.go
(4.21 KB)
馃搫
security_aix.go
(449 B)
馃搫
security_issetugid.go
(502 B)
馃搫
security_linux.go
(335 B)
馃搫
security_nonunix.go
(256 B)
馃搫
security_test.go
(4.09 KB)
馃搫
security_unix.go
(818 B)
馃搫
select.go
(14.82 KB)
馃搫
sema.go
(18.43 KB)
馃搫
sema_test.go
(4.21 KB)
馃搫
semasleep_test.go
(3.46 KB)
馃搫
sigaction.go
(489 B)
馃搫
signal_386.go
(1.72 KB)
馃搫
signal_aix_ppc64.go
(3.54 KB)
馃搫
signal_amd64.go
(2.73 KB)
馃搫
signal_arm.go
(2.54 KB)
馃搫
signal_arm64.go
(3.83 KB)
馃搫
signal_darwin.go
(2.13 KB)
馃搫
signal_darwin_amd64.go
(4 KB)
馃搫
signal_darwin_arm64.go
(3.6 KB)
馃搫
signal_dragonfly.go
(2.17 KB)
馃搫
signal_dragonfly_amd64.go
(2.01 KB)
馃搫
signal_freebsd.go
(2.2 KB)
馃搫
signal_freebsd_386.go
(1.55 KB)
馃搫
signal_freebsd_amd64.go
(2.03 KB)
馃搫
signal_freebsd_arm.go
(2.18 KB)
馃搫
signal_freebsd_arm64.go
(3.24 KB)
馃搫
signal_freebsd_riscv64.go
(3.08 KB)
馃搫
signal_linux_386.go
(1.59 KB)
馃搫
signal_linux_amd64.go
(2.05 KB)
馃搫
signal_linux_arm.go
(2.12 KB)
馃搫
signal_linux_arm64.go
(2.95 KB)
馃搫
signal_linux_loong64.go
(3.22 KB)
馃搫
signal_linux_mips64x.go
(3.35 KB)
馃搫
signal_linux_mipsx.go
(3.67 KB)
馃搫
signal_linux_ppc64x.go
(3.5 KB)
馃搫
signal_linux_riscv64.go
(2.92 KB)
馃搫
signal_linux_s390x.go
(4.49 KB)
馃搫
signal_loong64.go
(3.01 KB)
馃搫
signal_mips64x.go
(3.18 KB)
馃搫
signal_mipsx.go
(3.06 KB)
馃搫
signal_netbsd.go
(2.18 KB)
馃搫
signal_netbsd_386.go
(1.76 KB)
馃搫
signal_netbsd_amd64.go
(2.33 KB)
馃搫
signal_netbsd_arm.go
(2.3 KB)
馃搫
signal_netbsd_arm64.go
(3.4 KB)
馃搫
signal_openbsd.go
(2.18 KB)
馃搫
signal_openbsd_386.go
(1.58 KB)
馃搫
signal_openbsd_amd64.go
(2.04 KB)
馃搫
signal_openbsd_arm.go
(2.12 KB)
馃搫
signal_openbsd_arm64.go
(3.39 KB)
馃搫
signal_openbsd_mips64.go
(3.28 KB)
馃搫
signal_openbsd_ppc64.go
(3.53 KB)
馃搫
signal_openbsd_riscv64.go
(3.12 KB)
馃搫
signal_plan9.go
(1.93 KB)
馃搫
signal_ppc64x.go
(3.71 KB)
馃搫
signal_riscv64.go
(2.91 KB)
馃搫
signal_solaris.go
(4.5 KB)
馃搫
signal_solaris_amd64.go
(2.47 KB)
馃搫
signal_unix.go
(44.11 KB)
馃搫
signal_windows.go
(14.48 KB)
馃搫
signal_windows_test.go
(8.98 KB)
馃搫
sigqueue.go
(7.62 KB)
馃搫
sigqueue_note.go
(648 B)
馃搫
sigqueue_plan9.go
(3.25 KB)
馃搫
sigtab_aix.go
(11.3 KB)
馃搫
sigtab_linux_generic.go
(3.52 KB)
馃搫
sigtab_linux_mipsx.go
(5.95 KB)
馃搫
sizeclasses.go
(9.17 KB)
馃搫
sizeof_test.go
(1003 B)
馃搫
slice.go
(11.23 KB)
馃搫
slice_test.go
(10.32 KB)
馃搫
softfloat64.go
(11.54 KB)
馃搫
softfloat64_test.go
(4.04 KB)
馃搫
stack.go
(40.02 KB)
馃搫
stack_test.go
(23.14 KB)
馃搫
start_line_amd64_test.go
(647 B)
馃搫
start_line_test.go
(2.58 KB)
馃搫
stkframe.go
(9.88 KB)
馃搫
string.go
(13.35 KB)
馃搫
string_test.go
(13.33 KB)
馃搫
stubs.go
(17.39 KB)
馃搫
stubs2.go
(1.15 KB)
馃搫
stubs3.go
(324 B)
馃搫
stubs_386.go
(708 B)
馃搫
stubs_amd64.go
(1.38 KB)
馃搫
stubs_arm.go
(689 B)
馃搫
stubs_arm64.go
(700 B)
馃搫
stubs_linux.go
(650 B)
馃搫
stubs_loong64.go
(638 B)
馃搫
stubs_mips64x.go
(522 B)
馃搫
stubs_mipsx.go
(441 B)
馃搫
stubs_nonlinux.go
(298 B)
馃搫
stubs_ppc64.go
(302 B)
馃搫
stubs_ppc64x.go
(688 B)
馃搫
stubs_riscv64.go
(695 B)
馃搫
stubs_s390x.go
(414 B)
馃搫
symtab.go
(34.76 KB)
馃搫
symtab_test.go
(7.48 KB)
馃搫
symtabinl.go
(3.81 KB)
馃搫
symtabinl_test.go
(2.97 KB)
馃搫
sys_aix_ppc64.s
(7.42 KB)
馃搫
sys_arm.go
(521 B)
馃搫
sys_arm64.go
(469 B)
馃搫
sys_darwin.go
(22.56 KB)
馃搫
sys_darwin_amd64.s
(19.65 KB)
馃搫
sys_darwin_arm64.go
(1.74 KB)
馃搫
sys_darwin_arm64.s
(18.28 KB)
馃搫
sys_dragonfly_amd64.s
(8.31 KB)
馃搫
sys_freebsd_386.s
(9.41 KB)
馃搫
sys_freebsd_amd64.s
(12.67 KB)
馃搫
sys_freebsd_arm.s
(10.38 KB)
馃搫
sys_freebsd_arm64.s
(9.49 KB)
馃搫
sys_freebsd_riscv64.s
(8.92 KB)
馃搫
sys_libc.go
(1.84 KB)
馃搫
sys_linux_386.s
(17.89 KB)
馃搫
sys_linux_amd64.s
(15.74 KB)
馃搫
sys_linux_arm.s
(13.5 KB)
馃搫
sys_linux_arm64.s
(16.71 KB)
馃搫
sys_linux_loong64.s
(14.16 KB)
馃搫
sys_linux_mips64x.s
(11.96 KB)
馃搫
sys_linux_mipsx.s
(9.69 KB)
馃搫
sys_linux_ppc64x.s
(18.09 KB)
馃搫
sys_linux_riscv64.s
(11.48 KB)
馃搫
sys_linux_s390x.s
(12.49 KB)
馃搫
sys_loong64.go
(489 B)
馃搫
sys_mips64x.go
(500 B)
馃搫
sys_mipsx.go
(496 B)
馃搫
sys_netbsd_386.s
(9.61 KB)
馃搫
sys_netbsd_amd64.s
(9.78 KB)
馃搫
sys_netbsd_arm.s
(10.58 KB)
馃搫
sys_netbsd_arm64.s
(9.47 KB)
馃搫
sys_nonppc64x.go
(245 B)
馃搫
sys_openbsd.go
(2.59 KB)
馃搫
sys_openbsd1.go
(1.23 KB)
馃搫
sys_openbsd2.go
(8.67 KB)
馃搫
sys_openbsd3.go
(3.37 KB)
馃搫
sys_openbsd_386.s
(20.4 KB)
馃搫
sys_openbsd_amd64.s
(15.54 KB)
馃搫
sys_openbsd_arm.s
(18.46 KB)
馃搫
sys_openbsd_arm64.s
(15.05 KB)
馃搫
sys_openbsd_mips64.s
(8.81 KB)
馃搫
sys_openbsd_ppc64.s
(15.3 KB)
馃搫
sys_openbsd_riscv64.s
(16.8 KB)
馃搫
sys_plan9_386.s
(4.48 KB)
馃搫
sys_plan9_amd64.s
(4.56 KB)
馃搫
sys_plan9_arm.s
(7.03 KB)
馃搫
sys_ppc64x.go
(532 B)
馃搫
sys_riscv64.go
(469 B)
馃搫
sys_s390x.go
(469 B)
馃搫
sys_solaris_amd64.s
(6.42 KB)
馃搫
sys_wasm.go
(758 B)
馃搫
sys_wasm.s
(1.43 KB)
馃搫
sys_windows_386.s
(6.46 KB)
馃搫
sys_windows_amd64.s
(8.41 KB)
馃搫
sys_windows_arm.s
(7.72 KB)
馃搫
sys_windows_arm64.s
(6.8 KB)
馃搫
sys_x86.go
(552 B)
馃搫
syscall2_solaris.go
(1.85 KB)
馃搫
syscall_aix.go
(6.33 KB)
馃搫
syscall_solaris.go
(8.38 KB)
馃搫
syscall_unix_test.go
(635 B)
馃搫
syscall_windows.go
(16.57 KB)
馃搫
syscall_windows_test.go
(32.45 KB)
馃搫
tagptr.go
(496 B)
馃搫
tagptr_32bit.go
(927 B)
馃搫
tagptr_64bit.go
(3.23 KB)
馃搫
test_amd64.go
(196 B)
馃搫
test_amd64.s
(316 B)
馃搫
test_stubs.go
(218 B)
馃搧
testdata
馃搫
textflag.h
(1.47 KB)
馃搫
time.go
(30.57 KB)
馃搫
time_fake.go
(2.5 KB)
馃搫
time_linux_amd64.s
(2.02 KB)
馃搫
time_nofake.go
(709 B)
馃搫
time_test.go
(2.04 KB)
馃搫
time_windows.h
(753 B)
馃搫
time_windows_386.s
(1.71 KB)
馃搫
time_windows_amd64.s
(786 B)
馃搫
time_windows_arm.s
(1.97 KB)
馃搫
time_windows_arm64.s
(906 B)
馃搫
timeasm.go
(418 B)
馃搫
timestub.go
(532 B)
馃搫
timestub2.go
(363 B)
馃搫
tls_arm.s
(3.45 KB)
馃搫
tls_arm64.h
(1.1 KB)
馃搫
tls_arm64.s
(1.2 KB)
馃搫
tls_loong64.s
(589 B)
馃搫
tls_mips64x.s
(733 B)
馃搫
tls_mipsx.s
(710 B)
馃搫
tls_ppc64x.s
(1.52 KB)
馃搫
tls_riscv64.s
(615 B)
馃搫
tls_s390x.s
(1.55 KB)
馃搫
tls_stub.go
(260 B)
馃搫
tls_windows_amd64.go
(294 B)
馃搧
trace
馃搫
trace.go
(62.76 KB)
馃搫
trace2.go
(33.81 KB)
馃搫
trace2buf.go
(6.58 KB)
馃搫
trace2cpu.go
(8.87 KB)
馃搫
trace2event.go
(8.39 KB)
馃搫
trace2map.go
(4.36 KB)
馃搫
trace2region.go
(1.68 KB)
馃搫
trace2runtime.go
(24.2 KB)
馃搫
trace2stack.go
(9.45 KB)
馃搫
trace2status.go
(7.24 KB)
馃搫
trace2string.go
(2.59 KB)
馃搫
trace2time.go
(3.21 KB)
馃搫
trace_cgo_test.go
(4.47 KB)
馃搫
traceback.go
(54.61 KB)
馃搫
traceback_test.go
(22.95 KB)
馃搫
tracebackx_test.go
(509 B)
馃搫
type.go
(12.1 KB)
馃搫
typekind.go
(743 B)
馃搫
unsafe.go
(2.97 KB)
馃搫
unsafepoint_test.go
(3.27 KB)
馃搫
utf8.go
(3.39 KB)
馃搫
vdso_elf32.go
(2.76 KB)
馃搫
vdso_elf64.go
(2.84 KB)
馃搫
vdso_freebsd.go
(2.44 KB)
馃搫
vdso_freebsd_arm.go
(454 B)
馃搫
vdso_freebsd_arm64.go
(454 B)
馃搫
vdso_freebsd_riscv64.go
(429 B)
馃搫
vdso_freebsd_x86.go
(1.86 KB)
馃搫
vdso_in_none.go
(443 B)
馃搫
vdso_linux.go
(7.77 KB)
馃搫
vdso_linux_386.go
(669 B)
馃搫
vdso_linux_amd64.go
(685 B)
馃搫
vdso_linux_arm.go
(669 B)
馃搫
vdso_linux_arm64.go
(670 B)
馃搫
vdso_linux_loong64.go
(793 B)
馃搫
vdso_linux_mips64x.go
(850 B)
馃搫
vdso_linux_ppc64x.go
(672 B)
馃搫
vdso_linux_riscv64.go
(666 B)
馃搫
vdso_linux_s390x.go
(659 B)
馃搫
vdso_test.go
(3.71 KB)
馃搫
vlop_386.s
(2.02 KB)
馃搫
vlop_arm.s
(7.06 KB)
馃搫
vlop_arm_test.go
(3.75 KB)
馃搫
vlrt.go
(6.71 KB)
馃搫
wincallback.go
(3.45 KB)
馃搫
write_err.go
(291 B)
馃搫
write_err_android.go
(4.65 KB)
馃搫
zcallback_windows.go
(155 B)
馃搫
zcallback_windows.s
(63.06 KB)
馃搫
zcallback_windows_arm.s
(89.32 KB)
馃搫
zcallback_windows_arm64.s
(89.32 KB)
Editing: sys_openbsd_arm64.s
// Copyright 2019 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. // // System calls and other sys.stuff for arm64, OpenBSD // System calls are implemented in libc/libpthread, this file // contains trampolines that convert from Go to C calling convention. // Some direct system call implementations currently remain. // #include "go_asm.h" #include "go_tls.h" #include "textflag.h" #include "cgo/abi_arm64.h" #define CLOCK_REALTIME $0 #define CLOCK_MONOTONIC $3 // mstart_stub is the first function executed on a new thread started by pthread_create. // It just does some low-level setup and then calls mstart. // Note: called with the C calling convention. TEXT runtime路mstart_stub(SB),NOSPLIT,$144 // R0 points to the m. // We are already on m's g0 stack. // Save callee-save registers. SAVE_R19_TO_R28(8) SAVE_F8_TO_F15(88) MOVD m_g0(R0), g BL runtime路save_g(SB) BL runtime路mstart(SB) // Restore callee-save registers. RESTORE_R19_TO_R28(8) RESTORE_F8_TO_F15(88) // Go is all done with this OS thread. // Tell pthread everything is ok (we never join with this thread, so // the value here doesn't really matter). MOVD $0, R0 RET TEXT runtime路sigfwd(SB),NOSPLIT,$0-32 MOVW sig+8(FP), R0 MOVD info+16(FP), R1 MOVD ctx+24(FP), R2 MOVD fn+0(FP), R11 BL (R11) // Alignment for ELF ABI? RET TEXT runtime路sigtramp(SB),NOSPLIT|TOPFRAME,$192 // Save callee-save registers in the case of signal forwarding. // Please refer to https://golang.org/issue/31827 . SAVE_R19_TO_R28(8*4) SAVE_F8_TO_F15(8*14) // If called from an external code context, g will not be set. // Save R0, since runtime路load_g will clobber it. MOVW R0, 8(RSP) // signum BL runtime路load_g(SB) // Restore signum to R0. MOVW 8(RSP), R0 // R1 and R2 already contain info and ctx, respectively. BL runtime路sigtrampgo<ABIInternal>(SB) // Restore callee-save registers. RESTORE_R19_TO_R28(8*4) RESTORE_F8_TO_F15(8*14) RET // // These trampolines help convert from Go calling convention to C calling convention. // They should be called with asmcgocall. // A pointer to the arguments is passed in R0. // A single int32 result is returned in R0. // (For more results, make an args/results structure.) TEXT runtime路pthread_attr_init_trampoline(SB),NOSPLIT,$0 MOVD 0(R0), R0 // arg 1 - attr CALL libc_pthread_attr_init(SB) RET TEXT runtime路pthread_attr_destroy_trampoline(SB),NOSPLIT,$0 MOVD 0(R0), R0 // arg 1 - attr CALL libc_pthread_attr_destroy(SB) RET TEXT runtime路pthread_attr_getstacksize_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - size MOVD 0(R0), R0 // arg 1 - attr CALL libc_pthread_attr_getstacksize(SB) RET TEXT runtime路pthread_attr_setdetachstate_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - state MOVD 0(R0), R0 // arg 1 - attr CALL libc_pthread_attr_setdetachstate(SB) RET TEXT runtime路pthread_create_trampoline(SB),NOSPLIT,$0 MOVD 0(R0), R1 // arg 2 - attr MOVD 8(R0), R2 // arg 3 - start MOVD 16(R0), R3 // arg 4 - arg SUB $16, RSP MOVD RSP, R0 // arg 1 - &threadid (discard) CALL libc_pthread_create(SB) ADD $16, RSP RET TEXT runtime路thrkill_trampoline(SB),NOSPLIT,$0 MOVW 8(R0), R1 // arg 2 - signal MOVD $0, R2 // arg 3 - tcb MOVW 0(R0), R0 // arg 1 - tid CALL libc_thrkill(SB) RET TEXT runtime路thrsleep_trampoline(SB),NOSPLIT,$0 MOVW 8(R0), R1 // arg 2 - clock_id MOVD 16(R0), R2 // arg 3 - abstime MOVD 24(R0), R3 // arg 4 - lock MOVD 32(R0), R4 // arg 5 - abort MOVD 0(R0), R0 // arg 1 - id CALL libc_thrsleep(SB) RET TEXT runtime路thrwakeup_trampoline(SB),NOSPLIT,$0 MOVW 8(R0), R1 // arg 2 - count MOVD 0(R0), R0 // arg 1 - id CALL libc_thrwakeup(SB) RET TEXT runtime路exit_trampoline(SB),NOSPLIT,$0 MOVW 0(R0), R0 // arg 1 - status CALL libc_exit(SB) MOVD $0, R0 // crash on failure MOVD R0, (R0) RET TEXT runtime路getthrid_trampoline(SB),NOSPLIT,$0 MOVD R0, R19 // pointer to args CALL libc_getthrid(SB) MOVW R0, 0(R19) // return value RET TEXT runtime路raiseproc_trampoline(SB),NOSPLIT,$0 MOVD R0, R19 // pointer to args CALL libc_getpid(SB) // arg 1 - pid MOVW 0(R19), R1 // arg 2 - signal CALL libc_kill(SB) RET TEXT runtime路sched_yield_trampoline(SB),NOSPLIT,$0 CALL libc_sched_yield(SB) RET TEXT runtime路mmap_trampoline(SB),NOSPLIT,$0 MOVD R0, R19 // pointer to args MOVD 0(R19), R0 // arg 1 - addr MOVD 8(R19), R1 // arg 2 - len MOVW 16(R19), R2 // arg 3 - prot MOVW 20(R19), R3 // arg 4 - flags MOVW 24(R19), R4 // arg 5 - fid MOVW 28(R19), R5 // arg 6 - offset CALL libc_mmap(SB) MOVD $0, R1 CMP $-1, R0 BNE noerr CALL libc_errno(SB) MOVW (R0), R1 // errno MOVD $0, R0 noerr: MOVD R0, 32(R19) MOVD R1, 40(R19) RET TEXT runtime路munmap_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - len MOVD 0(R0), R0 // arg 1 - addr CALL libc_munmap(SB) CMP $-1, R0 BNE 3(PC) MOVD $0, R0 // crash on failure MOVD R0, (R0) RET TEXT runtime路madvise_trampoline(SB), NOSPLIT, $0 MOVD 8(R0), R1 // arg 2 - len MOVW 16(R0), R2 // arg 3 - advice MOVD 0(R0), R0 // arg 1 - addr CALL libc_madvise(SB) // ignore failure - maybe pages are locked RET TEXT runtime路open_trampoline(SB),NOSPLIT,$0 MOVW 8(R0), R1 // arg 2 - flags MOVW 12(R0), R2 // arg 3 - mode MOVD 0(R0), R0 // arg 1 - path MOVD $0, R3 // varargs CALL libc_open(SB) RET TEXT runtime路close_trampoline(SB),NOSPLIT,$0 MOVD 0(R0), R0 // arg 1 - fd CALL libc_close(SB) RET TEXT runtime路read_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - buf MOVW 16(R0), R2 // arg 3 - count MOVW 0(R0), R0 // arg 1 - fd CALL libc_read(SB) CMP $-1, R0 BNE noerr CALL libc_errno(SB) MOVW (R0), R0 // errno NEG R0, R0 // caller expects negative errno value noerr: RET TEXT runtime路write_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - buf MOVW 16(R0), R2 // arg 3 - count MOVW 0(R0), R0 // arg 1 - fd CALL libc_write(SB) CMP $-1, R0 BNE noerr CALL libc_errno(SB) MOVW (R0), R0 // errno NEG R0, R0 // caller expects negative errno value noerr: RET TEXT runtime路pipe2_trampoline(SB),NOSPLIT,$0 MOVW 8(R0), R1 // arg 2 - flags MOVD 0(R0), R0 // arg 1 - filedes CALL libc_pipe2(SB) CMP $-1, R0 BNE noerr CALL libc_errno(SB) MOVW (R0), R0 // errno NEG R0, R0 // caller expects negative errno value noerr: RET TEXT runtime路setitimer_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - new MOVD 16(R0), R2 // arg 3 - old MOVW 0(R0), R0 // arg 1 - which CALL libc_setitimer(SB) RET TEXT runtime路usleep_trampoline(SB),NOSPLIT,$0 MOVD 0(R0), R0 // arg 1 - usec CALL libc_usleep(SB) RET TEXT runtime路sysctl_trampoline(SB),NOSPLIT,$0 MOVW 8(R0), R1 // arg 2 - miblen MOVD 16(R0), R2 // arg 3 - out MOVD 24(R0), R3 // arg 4 - size MOVD 32(R0), R4 // arg 5 - dst MOVD 40(R0), R5 // arg 6 - ndst MOVD 0(R0), R0 // arg 1 - mib CALL libc_sysctl(SB) RET TEXT runtime路kqueue_trampoline(SB),NOSPLIT,$0 CALL libc_kqueue(SB) RET TEXT runtime路kevent_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - keventt MOVW 16(R0), R2 // arg 3 - nch MOVD 24(R0), R3 // arg 4 - ev MOVW 32(R0), R4 // arg 5 - nev MOVD 40(R0), R5 // arg 6 - ts MOVW 0(R0), R0 // arg 1 - kq CALL libc_kevent(SB) CMP $-1, R0 BNE noerr CALL libc_errno(SB) MOVW (R0), R0 // errno NEG R0, R0 // caller expects negative errno value noerr: RET TEXT runtime路clock_gettime_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - tp MOVD 0(R0), R0 // arg 1 - clock_id CALL libc_clock_gettime(SB) CMP $-1, R0 BNE noerr CALL libc_errno(SB) MOVW (R0), R0 // errno NEG R0, R0 // caller expects negative errno value noerr: RET TEXT runtime路fcntl_trampoline(SB),NOSPLIT,$0 MOVD R0, R19 MOVW 0(R19), R0 // arg 1 - fd MOVW 4(R19), R1 // arg 2 - cmd MOVW 8(R19), R2 // arg 3 - arg MOVD $0, R3 // vararg CALL libc_fcntl(SB) MOVD $0, R1 CMP $-1, R0 BNE noerr CALL libc_errno(SB) MOVW (R0), R1 MOVW $-1, R0 noerr: MOVW R0, 12(R19) MOVW R1, 16(R19) RET TEXT runtime路sigaction_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - new MOVD 16(R0), R2 // arg 3 - old MOVW 0(R0), R0 // arg 1 - sig CALL libc_sigaction(SB) CMP $-1, R0 BNE 3(PC) MOVD $0, R0 // crash on syscall failure MOVD R0, (R0) RET TEXT runtime路sigprocmask_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - new MOVD 16(R0), R2 // arg 3 - old MOVW 0(R0), R0 // arg 1 - how CALL libc_pthread_sigmask(SB) CMP $-1, R0 BNE 3(PC) MOVD $0, R0 // crash on syscall failure MOVD R0, (R0) RET TEXT runtime路sigaltstack_trampoline(SB),NOSPLIT,$0 MOVD 8(R0), R1 // arg 2 - old MOVD 0(R0), R0 // arg 1 - new CALL libc_sigaltstack(SB) CMP $-1, R0 BNE 3(PC) MOVD $0, R0 // crash on syscall failure MOVD R0, (R0) RET // syscall calls a function in libc on behalf of the syscall package. // syscall takes a pointer to a struct like: // struct { // fn uintptr // a1 uintptr // a2 uintptr // a3 uintptr // r1 uintptr // r2 uintptr // err uintptr // } // syscall must be called on the g0 stack with the // C calling convention (use libcCall). // // syscall expects a 32-bit result and tests for 32-bit -1 // to decide there was an error. TEXT runtime路syscall(SB),NOSPLIT,$0 MOVD R0, R19 // pointer to args MOVD (0*8)(R19), R11 // fn MOVD (1*8)(R19), R0 // a1 MOVD (2*8)(R19), R1 // a2 MOVD (3*8)(R19), R2 // a3 MOVD $0, R3 // vararg CALL R11 MOVD R0, (4*8)(R19) // r1 MOVD R1, (5*8)(R19) // r2 // Standard libc functions return -1 on error // and set errno. CMPW $-1, R0 BNE ok // Get error code from libc. CALL libc_errno(SB) MOVW (R0), R0 MOVD R0, (6*8)(R19) // err ok: RET // syscallX calls a function in libc on behalf of the syscall package. // syscallX takes a pointer to a struct like: // struct { // fn uintptr // a1 uintptr // a2 uintptr // a3 uintptr // r1 uintptr // r2 uintptr // err uintptr // } // syscallX must be called on the g0 stack with the // C calling convention (use libcCall). // // syscallX is like syscall but expects a 64-bit result // and tests for 64-bit -1 to decide there was an error. TEXT runtime路syscallX(SB),NOSPLIT,$0 MOVD R0, R19 // pointer to args MOVD (0*8)(R19), R11 // fn MOVD (1*8)(R19), R0 // a1 MOVD (2*8)(R19), R1 // a2 MOVD (3*8)(R19), R2 // a3 MOVD $0, R3 // vararg CALL R11 MOVD R0, (4*8)(R19) // r1 MOVD R1, (5*8)(R19) // r2 // Standard libc functions return -1 on error // and set errno. CMP $-1, R0 BNE ok // Get error code from libc. CALL libc_errno(SB) MOVW (R0), R0 MOVD R0, (6*8)(R19) // err ok: RET // syscall6 calls a function in libc on behalf of the syscall package. // syscall6 takes a pointer to a struct like: // struct { // fn uintptr // a1 uintptr // a2 uintptr // a3 uintptr // a4 uintptr // a5 uintptr // a6 uintptr // r1 uintptr // r2 uintptr // err uintptr // } // syscall6 must be called on the g0 stack with the // C calling convention (use libcCall). // // syscall6 expects a 32-bit result and tests for 32-bit -1 // to decide there was an error. TEXT runtime路syscall6(SB),NOSPLIT,$0 MOVD R0, R19 // pointer to args MOVD (0*8)(R19), R11 // fn MOVD (1*8)(R19), R0 // a1 MOVD (2*8)(R19), R1 // a2 MOVD (3*8)(R19), R2 // a3 MOVD (4*8)(R19), R3 // a4 MOVD (5*8)(R19), R4 // a5 MOVD (6*8)(R19), R5 // a6 MOVD $0, R6 // vararg CALL R11 MOVD R0, (7*8)(R19) // r1 MOVD R1, (8*8)(R19) // r2 // Standard libc functions return -1 on error // and set errno. CMPW $-1, R0 BNE ok // Get error code from libc. CALL libc_errno(SB) MOVW (R0), R0 MOVD R0, (9*8)(R19) // err ok: RET // syscall6X calls a function in libc on behalf of the syscall package. // syscall6X takes a pointer to a struct like: // struct { // fn uintptr // a1 uintptr // a2 uintptr // a3 uintptr // a4 uintptr // a5 uintptr // a6 uintptr // r1 uintptr // r2 uintptr // err uintptr // } // syscall6X must be called on the g0 stack with the // C calling convention (use libcCall). // // syscall6X is like syscall6 but expects a 64-bit result // and tests for 64-bit -1 to decide there was an error. TEXT runtime路syscall6X(SB),NOSPLIT,$0 MOVD R0, R19 // pointer to args MOVD (0*8)(R19), R11 // fn MOVD (1*8)(R19), R0 // a1 MOVD (2*8)(R19), R1 // a2 MOVD (3*8)(R19), R2 // a3 MOVD (4*8)(R19), R3 // a4 MOVD (5*8)(R19), R4 // a5 MOVD (6*8)(R19), R5 // a6 MOVD $0, R6 // vararg CALL R11 MOVD R0, (7*8)(R19) // r1 MOVD R1, (8*8)(R19) // r2 // Standard libc functions return -1 on error // and set errno. CMP $-1, R0 BNE ok // Get error code from libc. CALL libc_errno(SB) MOVW (R0), R0 MOVD R0, (9*8)(R19) // err ok: RET // syscall10 calls a function in libc on behalf of the syscall package. // syscall10 takes a pointer to a struct like: // struct { // fn uintptr // a1 uintptr // a2 uintptr // a3 uintptr // a4 uintptr // a5 uintptr // a6 uintptr // a7 uintptr // a8 uintptr // a9 uintptr // a10 uintptr // r1 uintptr // r2 uintptr // err uintptr // } // syscall10 must be called on the g0 stack with the // C calling convention (use libcCall). TEXT runtime路syscall10(SB),NOSPLIT,$0 MOVD R0, R19 // pointer to args MOVD (0*8)(R19), R11 // fn MOVD (1*8)(R19), R0 // a1 MOVD (2*8)(R19), R1 // a2 MOVD (3*8)(R19), R2 // a3 MOVD (4*8)(R19), R3 // a4 MOVD (5*8)(R19), R4 // a5 MOVD (6*8)(R19), R5 // a6 MOVD (7*8)(R19), R6 // a7 MOVD (8*8)(R19), R7 // a8 MOVD (9*8)(R19), R8 // a9 MOVD (10*8)(R19), R9 // a10 MOVD $0, R10 // vararg CALL R11 MOVD R0, (11*8)(R19) // r1 MOVD R1, (12*8)(R19) // r2 // Standard libc functions return -1 on error // and set errno. CMPW $-1, R0 BNE ok // Get error code from libc. CALL libc_errno(SB) MOVW (R0), R0 MOVD R0, (13*8)(R19) // err ok: RET // syscall10X calls a function in libc on behalf of the syscall package. // syscall10X takes a pointer to a struct like: // struct { // fn uintptr // a1 uintptr // a2 uintptr // a3 uintptr // a4 uintptr // a5 uintptr // a6 uintptr // a7 uintptr // a8 uintptr // a9 uintptr // a10 uintptr // r1 uintptr // r2 uintptr // err uintptr // } // syscall10X must be called on the g0 stack with the // C calling convention (use libcCall). // // syscall10X is like syscall10 but expects a 64-bit result // and tests for 64-bit -1 to decide there was an error. TEXT runtime路syscall10X(SB),NOSPLIT,$0 MOVD R0, R19 // pointer to args MOVD (0*8)(R19), R11 // fn MOVD (1*8)(R19), R0 // a1 MOVD (2*8)(R19), R1 // a2 MOVD (3*8)(R19), R2 // a3 MOVD (4*8)(R19), R3 // a4 MOVD (5*8)(R19), R4 // a5 MOVD (6*8)(R19), R5 // a6 MOVD (7*8)(R19), R6 // a7 MOVD (8*8)(R19), R7 // a8 MOVD (9*8)(R19), R8 // a9 MOVD (10*8)(R19), R9 // a10 MOVD $0, R10 // vararg CALL R11 MOVD R0, (11*8)(R19) // r1 MOVD R1, (12*8)(R19) // r2 // Standard libc functions return -1 on error // and set errno. CMP $-1, R0 BNE ok // Get error code from libc. CALL libc_errno(SB) MOVW (R0), R0 MOVD R0, (13*8)(R19) // err ok: RET TEXT runtime路issetugid_trampoline(SB),NOSPLIT,$0 MOVD R0, R19 // pointer to args CALL libc_issetugid(SB) MOVW R0, 0(R19) // return value RET
Upload File
Create Folder