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_arm.s
// Copyright 2009 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 ARM, OpenBSD // /usr/src/sys/kern/syscalls.master for syscall numbers. // #include "go_asm.h" #include "go_tls.h" #include "textflag.h" #define CLOCK_REALTIME $0 #define CLOCK_MONOTONIC $3 // With OpenBSD 6.7 onwards, an armv7 syscall returns two instructions // after the SWI instruction, to allow for a speculative execution // barrier to be placed after the SWI without impacting performance. // For now use hardware no-ops as this works with both older and newer // kernels. After OpenBSD 6.8 is released this should be changed to // speculation barriers. #define NOOP MOVW R0, R0 #define INVOKE_SYSCALL \ SWI $0; \ NOOP; \ NOOP // 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,$0 // R0 points to the m. // We are already on m's g0 stack. // Save callee-save registers. MOVM.DB.W [R4-R11], (R13) MOVW m_g0(R0), g BL runtime路save_g(SB) BL runtime路mstart(SB) // Restore callee-save registers. MOVM.IA.W (R13), [R4-R11] // 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). MOVW $0, R0 RET TEXT runtime路sigfwd(SB),NOSPLIT,$0-16 MOVW sig+4(FP), R0 MOVW info+8(FP), R1 MOVW ctx+12(FP), R2 MOVW fn+0(FP), R3 MOVW R13, R9 SUB $24, R13 BIC $0x7, R13 // alignment for ELF ABI BL (R3) MOVW R9, R13 RET TEXT runtime路sigtramp(SB),NOSPLIT|TOPFRAME,$0 // Reserve space for callee-save registers and arguments. MOVM.DB.W [R4-R11], (R13) SUB $16, R13 // If called from an external code context, g will not be set. // Save R0, since runtime路load_g will clobber it. MOVW R0, 4(R13) // signum BL runtime路load_g(SB) MOVW R1, 8(R13) MOVW R2, 12(R13) BL runtime路sigtrampgo(SB) // Restore callee-save registers. ADD $16, R13 MOVM.IA.W (R13), [R4-R11] RET TEXT 路publicationBarrier(SB),NOSPLIT|NOFRAME,$0-0 B runtime路armPublicationBarrier(SB) // TODO(jsing): OpenBSD only supports GOARM=7 machines... this // should not be needed, however the linker still allows GOARM=5 // on this platform. TEXT runtime路read_tls_fallback(SB),NOSPLIT|NOFRAME,$0 MOVM.WP [R1, R2, R3, R12], (R13) MOVW $330, R12 // sys___get_tcb INVOKE_SYSCALL MOVM.IAW (R13), [R1, R2, R3, R12] RET // These trampolines help convert from Go calling convention to C calling convention. // They should be called with asmcgocall - note that while asmcgocall does // stack alignment, creation of a frame undoes it again. // 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 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 0(R0), R0 // arg 1 attr CALL libc_pthread_attr_init(SB) MOVW R9, R13 RET TEXT runtime路pthread_attr_destroy_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 0(R0), R0 // arg 1 attr CALL libc_pthread_attr_destroy(SB) MOVW R9, R13 RET TEXT runtime路pthread_attr_getstacksize_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 size MOVW 0(R0), R0 // arg 1 attr CALL libc_pthread_attr_getstacksize(SB) MOVW R9, R13 RET TEXT runtime路pthread_attr_setdetachstate_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 state MOVW 0(R0), R0 // arg 1 attr CALL libc_pthread_attr_setdetachstate(SB) MOVW R9, R13 RET TEXT runtime路pthread_create_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 SUB $16, R13 BIC $0x7, R13 // align for ELF ABI MOVW 0(R0), R1 // arg 2 attr MOVW 4(R0), R2 // arg 3 start MOVW 8(R0), R3 // arg 4 arg MOVW R13, R0 // arg 1 &threadid (discarded) CALL libc_pthread_create(SB) MOVW R9, R13 RET TEXT runtime路thrkill_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 - signal MOVW $0, R2 // arg 3 - tcb MOVW 0(R0), R0 // arg 1 - tid CALL libc_thrkill(SB) MOVW R9, R13 RET TEXT runtime路thrsleep_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 SUB $16, R13 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 - clock_id MOVW 8(R0), R2 // arg 3 - abstime MOVW 12(R0), R3 // arg 4 - lock MOVW 16(R0), R4 // arg 5 - abort (on stack) MOVW R4, 0(R13) MOVW 0(R0), R0 // arg 1 - id CALL libc_thrsleep(SB) MOVW R9, R13 RET TEXT runtime路thrwakeup_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 - count MOVW 0(R0), R0 // arg 1 - id CALL libc_thrwakeup(SB) MOVW R9, R13 RET TEXT runtime路exit_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 0(R0), R0 // arg 1 exit status BL libc_exit(SB) MOVW $0, R8 // crash on failure MOVW R8, (R8) MOVW R9, R13 RET TEXT runtime路getthrid_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 MOVW R0, R8 BIC $0x7, R13 // align for ELF ABI BL libc_getthrid(SB) MOVW R0, 0(R8) MOVW R9, R13 RET TEXT runtime路raiseproc_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW R0, R4 BL libc_getpid(SB) // arg 1 pid MOVW R4, R1 // arg 2 signal BL libc_kill(SB) MOVW R9, R13 RET TEXT runtime路sched_yield_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI BL libc_sched_yield(SB) MOVW R9, R13 RET TEXT runtime路mmap_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 SUB $16, R13 BIC $0x7, R13 // align for ELF ABI MOVW R0, R8 MOVW 4(R0), R1 // arg 2 len MOVW 8(R0), R2 // arg 3 prot MOVW 12(R0), R3 // arg 4 flags MOVW 16(R0), R4 // arg 5 fid (on stack) MOVW R4, 0(R13) MOVW $0, R5 // pad (on stack) MOVW R5, 4(R13) MOVW 20(R0), R6 // arg 6 offset (on stack) MOVW R6, 8(R13) // low 32 bits MOVW $0, R7 MOVW R7, 12(R13) // high 32 bits MOVW 0(R0), R0 // arg 1 addr BL libc_mmap(SB) MOVW $0, R1 CMP $-1, R0 BNE ok BL libc_errno(SB) MOVW (R0), R1 // errno MOVW $0, R0 ok: MOVW R0, 24(R8) MOVW R1, 28(R8) MOVW R9, R13 RET TEXT runtime路munmap_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 len MOVW 0(R0), R0 // arg 1 addr BL libc_munmap(SB) CMP $-1, R0 BNE 3(PC) MOVW $0, R8 // crash on failure MOVW R8, (R8) MOVW R9, R13 RET TEXT runtime路madvise_trampoline(SB), NOSPLIT, $0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 len MOVW 8(R0), R2 // arg 3 advice MOVW 0(R0), R0 // arg 1 addr BL libc_madvise(SB) // ignore failure - maybe pages are locked MOVW R9, R13 RET TEXT runtime路open_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 SUB $8, R13 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 - flags MOVW 8(R0), R2 // arg 3 - mode (vararg, on stack) MOVW R2, 0(R13) MOVW 0(R0), R0 // arg 1 - path MOVW R13, R4 BIC $0x7, R13 // align for ELF ABI BL libc_open(SB) MOVW R9, R13 RET TEXT runtime路close_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 0(R0), R0 // arg 1 - fd BL libc_close(SB) MOVW R9, R13 RET TEXT runtime路read_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 - buf MOVW 8(R0), R2 // arg 3 - count MOVW 0(R0), R0 // arg 1 - fd BL libc_read(SB) CMP $-1, R0 BNE noerr BL libc_errno(SB) MOVW (R0), R0 // errno RSB.CS $0, R0 // caller expects negative errno noerr: MOVW R9, R13 RET TEXT runtime路write_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 buf MOVW 8(R0), R2 // arg 3 count MOVW 0(R0), R0 // arg 1 fd BL libc_write(SB) CMP $-1, R0 BNE noerr BL libc_errno(SB) MOVW (R0), R0 // errno RSB.CS $0, R0 // caller expects negative errno noerr: MOVW R9, R13 RET TEXT runtime路pipe2_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 flags MOVW 0(R0), R0 // arg 1 filedes BL libc_pipe2(SB) CMP $-1, R0 BNE 3(PC) BL libc_errno(SB) MOVW (R0), R0 // errno RSB.CS $0, R0 // caller expects negative errno MOVW R9, R13 RET TEXT runtime路setitimer_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 new MOVW 8(R0), R2 // arg 3 old MOVW 0(R0), R0 // arg 1 which BL libc_setitimer(SB) MOVW R9, R13 RET TEXT runtime路usleep_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 0(R0), R0 // arg 1 usec BL libc_usleep(SB) MOVW R9, R13 RET TEXT runtime路sysctl_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 SUB $8, R13 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 miblen MOVW 8(R0), R2 // arg 3 out MOVW 12(R0), R3 // arg 4 size MOVW 16(R0), R4 // arg 5 dst (on stack) MOVW R4, 0(R13) MOVW 20(R0), R5 // arg 6 ndst (on stack) MOVW R5, 4(R13) MOVW 0(R0), R0 // arg 1 mib BL libc_sysctl(SB) MOVW R9, R13 RET TEXT runtime路kqueue_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI BL libc_kqueue(SB) MOVW R9, R13 RET TEXT runtime路kevent_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 SUB $8, R13 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 keventt MOVW 8(R0), R2 // arg 3 nch MOVW 12(R0), R3 // arg 4 ev MOVW 16(R0), R4 // arg 5 nev (on stack) MOVW R4, 0(R13) MOVW 20(R0), R5 // arg 6 ts (on stack) MOVW R5, 4(R13) MOVW 0(R0), R0 // arg 1 kq BL libc_kevent(SB) CMP $-1, R0 BNE ok BL libc_errno(SB) MOVW (R0), R0 // errno RSB.CS $0, R0 // caller expects negative errno ok: MOVW R9, R13 RET TEXT runtime路clock_gettime_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 tp MOVW 0(R0), R0 // arg 1 clock_id BL libc_clock_gettime(SB) CMP $-1, R0 BNE noerr BL libc_errno(SB) MOVW (R0), R0 // errno RSB.CS $0, R0 // caller expects negative errno noerr: MOVW R9, R13 RET TEXT runtime路fcntl_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 SUB $8, R13 BIC $0x7, R13 // align for ELF ABI MOVW R0, R8 MOVW 0(R8), R0 // arg 1 fd MOVW 4(R8), R1 // arg 2 cmd MOVW 8(R8), R2 // arg 3 arg (vararg, on stack) MOVW R2, 0(R13) BL libc_fcntl(SB) MOVW $0, R1 CMP $-1, R0 BNE noerr BL libc_errno(SB) MOVW (R0), R1 MOVW $-1, R0 noerr: MOVW R0, 12(R8) MOVW R1, 16(R8) MOVW R9, R13 RET TEXT runtime路sigaction_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 new MOVW 8(R0), R2 // arg 3 old MOVW 0(R0), R0 // arg 1 sig BL libc_sigaction(SB) CMP $-1, R0 BNE 3(PC) MOVW $0, R8 // crash on failure MOVW R8, (R8) MOVW R9, R13 RET TEXT runtime路sigprocmask_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 new MOVW 8(R0), R2 // arg 3 old MOVW 0(R0), R0 // arg 1 how BL libc_pthread_sigmask(SB) CMP $-1, R0 BNE 3(PC) MOVW $0, R8 // crash on failure MOVW R8, (R8) MOVW R9, R13 RET TEXT runtime路sigaltstack_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW 4(R0), R1 // arg 2 old MOVW 0(R0), R0 // arg 1 new BL libc_sigaltstack(SB) CMP $-1, R0 BNE 3(PC) MOVW $0, R8 // crash on failure MOVW R8, (R8) MOVW R9, R13 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 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW R0, R8 MOVW (0*4)(R8), R7 // fn MOVW (1*4)(R8), R0 // a1 MOVW (2*4)(R8), R1 // a2 MOVW (3*4)(R8), R2 // a3 BL (R7) MOVW R0, (4*4)(R8) // r1 MOVW R1, (5*4)(R8) // r2 // Standard libc functions return -1 on error and set errno. CMP $-1, R0 BNE ok // Get error code from libc. BL libc_errno(SB) MOVW (R0), R1 MOVW R1, (6*4)(R8) // err ok: MOVW $0, R0 // no error (it's ignored anyway) MOVW R9, R13 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 MOVW R13, R9 BIC $0x7, R13 // align for ELF ABI MOVW R0, R8 MOVW (0*4)(R8), R7 // fn MOVW (1*4)(R8), R0 // a1 MOVW (2*4)(R8), R1 // a2 MOVW (3*4)(R8), R2 // a3 BL (R7) MOVW R0, (4*4)(R8) // r1 MOVW R1, (5*4)(R8) // r2 // Standard libc functions return -1 on error and set errno. CMP $-1, R0 BNE ok CMP $-1, R1 BNE ok // Get error code from libc. BL libc_errno(SB) MOVW (R0), R1 MOVW R1, (6*4)(R8) // err ok: MOVW $0, R0 // no error (it's ignored anyway) MOVW R9, R13 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 MOVW R13, R9 SUB $8, R13 BIC $0x7, R13 // align for ELF ABI MOVW R0, R8 MOVW (0*4)(R8), R7 // fn MOVW (1*4)(R8), R0 // a1 MOVW (2*4)(R8), R1 // a2 MOVW (3*4)(R8), R2 // a3 MOVW (4*4)(R8), R3 // a4 MOVW (5*4)(R8), R4 // a5 MOVW R4, 0(R13) MOVW (6*4)(R8), R5 // a6 MOVW R5, 4(R13) BL (R7) MOVW R0, (7*4)(R8) // r1 MOVW R1, (8*4)(R8) // r2 // Standard libc functions return -1 on error and set errno. CMP $-1, R0 BNE ok // Get error code from libc. BL libc_errno(SB) MOVW (R0), R1 MOVW R1, (9*4)(R8) // err ok: MOVW $0, R0 // no error (it's ignored anyway) MOVW R9, R13 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 MOVW R13, R9 SUB $8, R13 BIC $0x7, R13 // align for ELF ABI MOVW R0, R8 MOVW (0*4)(R8), R7 // fn MOVW (1*4)(R8), R0 // a1 MOVW (2*4)(R8), R1 // a2 MOVW (3*4)(R8), R2 // a3 MOVW (4*4)(R8), R3 // a4 MOVW (5*4)(R8), R4 // a5 MOVW R4, 0(R13) MOVW (6*4)(R8), R5 // a6 MOVW R5, 4(R13) BL (R7) MOVW R0, (7*4)(R8) // r1 MOVW R1, (8*4)(R8) // r2 // Standard libc functions return -1 on error and set errno. CMP $-1, R0 BNE ok CMP $-1, R1 BNE ok // Get error code from libc. BL libc_errno(SB) MOVW (R0), R1 MOVW R1, (9*4)(R8) // err ok: MOVW $0, R0 // no error (it's ignored anyway) MOVW R9, R13 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 MOVW R13, R9 SUB $24, R13 BIC $0x7, R13 // align for ELF ABI MOVW R0, R8 MOVW (0*4)(R8), R7 // fn MOVW (1*4)(R8), R0 // a1 MOVW (2*4)(R8), R1 // a2 MOVW (3*4)(R8), R2 // a3 MOVW (4*4)(R8), R3 // a4 MOVW (5*4)(R8), R4 // a5 MOVW R4, 0(R13) MOVW (6*4)(R8), R5 // a6 MOVW R5, 4(R13) MOVW (7*4)(R8), R6 // a7 MOVW R6, 8(R13) MOVW (8*4)(R8), R4 // a8 MOVW R4, 12(R13) MOVW (9*4)(R8), R5 // a9 MOVW R5, 16(R13) MOVW (10*4)(R8), R6 // a10 MOVW R6, 20(R13) BL (R7) MOVW R0, (11*4)(R8) // r1 MOVW R1, (12*4)(R8) // r2 // Standard libc functions return -1 on error and set errno. CMP $-1, R0 BNE ok // Get error code from libc. BL libc_errno(SB) MOVW (R0), R1 MOVW R1, (13*4)(R8) // err ok: MOVW $0, R0 // no error (it's ignored anyway) MOVW R9, R13 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 MOVW R13, R9 SUB $24, R13 BIC $0x7, R13 // align for ELF ABI MOVW R0, R8 MOVW (0*4)(R8), R7 // fn MOVW (1*4)(R8), R0 // a1 MOVW (2*4)(R8), R1 // a2 MOVW (3*4)(R8), R2 // a3 MOVW (4*4)(R8), R3 // a4 MOVW (5*4)(R8), R4 // a5 MOVW R4, 0(R13) MOVW (6*4)(R8), R5 // a6 MOVW R5, 4(R13) MOVW (7*4)(R8), R6 // a7 MOVW R6, 8(R13) MOVW (8*4)(R8), R4 // a8 MOVW R4, 12(R13) MOVW (9*4)(R8), R5 // a9 MOVW R5, 16(R13) MOVW (10*4)(R8), R6 // a10 MOVW R6, 20(R13) BL (R7) MOVW R0, (11*4)(R8) // r1 MOVW R1, (12*4)(R8) // r2 // Standard libc functions return -1 on error and set errno. CMP $-1, R0 BNE ok CMP $-1, R1 BNE ok // Get error code from libc. BL libc_errno(SB) MOVW (R0), R1 MOVW R1, (13*4)(R8) // err ok: MOVW $0, R0 // no error (it's ignored anyway) MOVW R9, R13 RET TEXT runtime路issetugid_trampoline(SB),NOSPLIT,$0 MOVW R13, R9 MOVW R0, R8 BIC $0x7, R13 // align for ELF ABI BL libc_issetugid(SB) MOVW R0, 0(R8) MOVW R9, R13 RET
Upload File
Create Folder