Struct tcb

Source
#[repr(C)]
pub struct tcb { pub parent: *mut (), }
Expand description

The Thread Control Block (TCB).

After a thread begins execution (at program startup or when created through thread_create()), the CPU’s registers controlling Thread-Local Storage (TLS) will already be initialized. They will point to an area only containing the TCB.

If the thread needs space for storing thread-specific variables, the thread may allocate a larger area and adjust the CPU’s registers to point to that area instead. However, it does need to make sure that the TCB is copied over to the new TLS area.

The purpose of the TCB is that it allows light-weight emulators to store information related to individual threads. For example, it may be used to store a copy of the CPU registers prior emulation, so that TLS for the host system can be restored if needed.

Fields§

§parent: *mut ()

Pointer that may be freely assigned by the system. Its value cannot be interpreted by the application.

Trait Implementations§

Source§

impl Clone for tcb

Source§

fn clone(&self) -> tcb

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for tcb

Auto Trait Implementations§

§

impl Freeze for tcb

§

impl RefUnwindSafe for tcb

§

impl !Send for tcb

§

impl !Sync for tcb

§

impl Unpin for tcb

§

impl UnwindSafe for tcb

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.