blob: 245593e198a6940f0d7ddb77576d47a46b0c0f53 [file] [log] [blame]
# 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 <sys/types.h>
include <sys/lwp.h>
include <sys/lwpctl.h>
include <sys/ucontext.h>
include <sys/signal.h>
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, 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]])
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