Enum twizzler_abi::syscall::ThreadControl
source · #[repr(u64)]pub enum ThreadControl {
Show 18 variants
Exit,
Yield,
SetTls,
GetTls,
SetUpcall,
GetUpcall,
ReadRegister,
WriteRegister,
SendMessage,
ChangeState,
SetTrapState,
GetTrapState,
SetPriority,
GetPriority,
SetAffinity,
GetAffinity,
ResumeFromUpcall,
GetSelfId,
}
Expand description
Possible Thread Control operations
Variants§
Exit
Exit the thread. arg1 and arg2 should be code and location respectively, where code contains a 64-bit value to write into *location, followed by the kernel performing a thread-wake event on the memory word at location. If location is null, the write and thread-wake do not occur.
Yield
Yield the thread’s CPU time now. The actual effect of this is unspecified, but it acts as a hint to the kernel that this thread does not need to run right now. The kernel, of course, is free to ignore this hint.
SetTls
Set thread’s TLS pointer
GetTls
Get the thread’s TLS pointer.
SetUpcall
Set the thread’s upcall pointer (child threads in the same virtual address space will inherit).
GetUpcall
Get the upcall pointer.
ReadRegister
Read a register from the thread’s CPU state. The thread must be suspended.
WriteRegister
Write a value to a register in the thread’s CPU state. The thread must be suspended.
SendMessage
Send a user-defined async or sync event to the thread.
ChangeState
Change the thread’s state. Allowed transitions are: running -> suspended suspended -> running running -> exited
SetTrapState
Set the Trap State for the thread.
GetTrapState
Get the Trap State for the thread.
SetPriority
Set a thread’s priority. Threads require special permission to increase their priority.
GetPriority
Get a thread’s priority.
SetAffinity
Set a thread’s affinity.
GetAffinity
Get a thread’s affinity.
ResumeFromUpcall
Resume from an upcall.
GetSelfId
Get the repr ID of the calling thread.
Trait Implementations§
source§impl Debug for ThreadControl
impl Debug for ThreadControl
source§impl From<ThreadControl> for u64
impl From<ThreadControl> for u64
source§fn from(enum_value: ThreadControl) -> Self
fn from(enum_value: ThreadControl) -> Self
source§impl From<u64> for ThreadControl
impl From<u64> for ThreadControl
source§impl FromPrimitive for ThreadControl
impl FromPrimitive for ThreadControl
source§impl Ord for ThreadControl
impl Ord for ThreadControl
source§fn cmp(&self, other: &ThreadControl) -> Ordering
fn cmp(&self, other: &ThreadControl) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<ThreadControl> for ThreadControl
impl PartialEq<ThreadControl> for ThreadControl
source§fn eq(&self, other: &ThreadControl) -> bool
fn eq(&self, other: &ThreadControl) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<ThreadControl> for ThreadControl
impl PartialOrd<ThreadControl> for ThreadControl
source§fn partial_cmp(&self, other: &ThreadControl) -> Option<Ordering>
fn partial_cmp(&self, other: &ThreadControl) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more