# Copyright 2019 syzkaller project authors. All rights reserved. # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. include include include include include include include resource lwpid[int32]: 0, 0xffffffffffffffff _lwp_create(uc ptr[in, ucontext_t], flags flags[lwp_flags], new_lwp ptr[out, lwpid]) _lwp_exit() _lwp_self() lwpid _lwp_wait(wait_for lwpid, departed ptr[in, lwpid]) _lwp_suspend(target lwpid) _lwp_continue(target lwpid) _lwp_wakeup(target lwpid) _lwp_getprivate() _lwp_setprivate(data ptr[in, intptr]) _lwp_kill(target lwpid, sig int32) _lwp_detach(target lwpid) compat_50__lwp_park(ts ptr[in, timespec50], unpark lwpid, hint ptr[in, intptr, opt], unparkhint ptr[in, intptr, opt]) compat_60__lwp_park(ts ptr[in, timespec], unpark lwpid, hint ptr[in, intptr, opt], unparkhint ptr[in, intptr, opt]) _lwp_unpark(target lwpid, hint ptr[in, intptr, opt]) _lwp_unpark_all(targets ptr[in, array[lwpid]], ntargets len[targets], hint ptr[in, intptr, opt]) _lwp_setname(target lwpid, name ptr[in, string]) _lwp_getname(target lwpid, name ptr[out, string], size bytesize[name]) _lwp_ctl(features int32, address ptr[in, ptr[in, lwpctl]]) resource semid[intptr]: 0, KSEM_PSHARED _ksem_init(val int32, idp ptr[inout, semid[opt]]) _ksem_open(name buffer[in], oflag flags[semopen_flags], mode flags[open_mode], val int32, idp ptr[out, semid]) _ksem_unlink(name buffer[in]) _ksem_close(id semid) _ksem_post(id semid) _ksem_wait(id semid) _ksem_trywait(id semid) _ksem_getvalue(id semid, val ptr[out, int32]) _ksem_destroy(id semid) _ksem_timedwait(id semid, abstime ptr[in, timespec]) ucontext_t { uc_flags flags[ucontext_flags, int32] uc_link ptr[in, ucontext_t, opt] uc_sigmask sigset_t uc_stack stack_t uc_mcontext mcontext_t } stack_t { ss_sp int64 ss_size int64 ss_flags flags[stack_flags, int32] } mcontext_t { __gregs int64 _mc_tlsbase int64 __fpregs string } sigset_t { __bits array[int32, 4] } lwpctl { lc_curcpu int32 lc_pctr int32 } lwp_flags = LWP_DETACHED, LWP_SUSPENDED ucontext_flags = _UC_SIGMASK, _UC_STACK, _UC_CPU, _UC_FPU, _UC_MD stack_flags = SS_DISABLE, SS_ONSTACK semopen_flags = O_CREAT, O_EXCL