pub struct ContextSwitchRecordHeader(/* private fields */);Expand description
Header word for an FXT Context Switch record (RecordType = 8, SchedulerEventType = 1).
Implementations§
Source§impl ContextSwitchRecordHeader
impl ContextSwitchRecordHeader
Sourcepub const RSVD1_MASK: u64
pub const RSVD1_MASK: u64
Mask of all reserved-as-1 bits.
Sourcepub const RSVD0_MASK: u64
pub const RSVD0_MASK: u64
Mask of all reserved-as-0 bits.
Sourcepub const DEFAULT: u64
pub const DEFAULT: u64
The default value of the layout, combining all field defaults and reserved-as values.
Sourcepub const EVENT_TYPE_MASK: u64
pub const EVENT_TYPE_MASK: u64
Unshifted bitmask of event_type.
Sourcepub const EVENT_TYPE_SHIFT: usize = 60
pub const EVENT_TYPE_SHIFT: usize = 60
Bit shift (i.e., the low bit) of event_type.
Sourcepub const EVENT_TYPE_DEFAULT: u64
pub const EVENT_TYPE_DEFAULT: u64
Pre-shifted default value of the event_type field.
Sourcepub const THREAD_STATE_MASK: u64
pub const THREAD_STATE_MASK: u64
Unshifted bitmask of thread_state.
Sourcepub const THREAD_STATE_SHIFT: usize = 36
pub const THREAD_STATE_SHIFT: usize = 36
Bit shift (i.e., the low bit) of thread_state.
Sourcepub const CPU_NUMBER_MASK: u64
pub const CPU_NUMBER_MASK: u64
Unshifted bitmask of cpu_number.
Sourcepub const CPU_NUMBER_SHIFT: usize = 20
pub const CPU_NUMBER_SHIFT: usize = 20
Bit shift (i.e., the low bit) of cpu_number.
Sourcepub const ARG_COUNT_MASK: u64
pub const ARG_COUNT_MASK: u64
Unshifted bitmask of arg_count.
Sourcepub const ARG_COUNT_SHIFT: usize = 16
pub const ARG_COUNT_SHIFT: usize = 16
Bit shift (i.e., the low bit) of arg_count.
Sourcepub const RECORD_SIZE_MASK: u64
pub const RECORD_SIZE_MASK: u64
Unshifted bitmask of record_size.
Sourcepub const RECORD_SIZE_SHIFT: usize = 4
pub const RECORD_SIZE_SHIFT: usize = 4
Bit shift (i.e., the low bit) of record_size.
Sourcepub const RECORD_TYPE_MASK: u64
pub const RECORD_TYPE_MASK: u64
Unshifted bitmask of record_type.
Sourcepub const RECORD_TYPE_SHIFT: usize = 0
pub const RECORD_TYPE_SHIFT: usize = 0
Bit shift (i.e., the low bit) of record_type.
Sourcepub const RECORD_TYPE_DEFAULT: u64
pub const RECORD_TYPE_DEFAULT: u64
Pre-shifted default value of the record_type field.
Sourcepub const FIELDS: [FieldMetadata<u64>; 6]
pub const FIELDS: [FieldMetadata<u64>; 6]
Metadata of all named fields in the layout.
Sourcepub const fn new() -> Self
pub const fn new() -> Self
Creates a new instance with reserved-as-1 bits set and
all other bits zeroed (i.e., with a value of
Self::RSVD1_MASK).
pub const fn bits(self) -> u64
Sourcepub fn event_type(&self) -> SchedulerEventTypewhere
SchedulerEventType: TryFromBytes,
pub fn event_type(&self) -> SchedulerEventTypewhere
SchedulerEventType: TryFromBytes,
The value of ContextSwitchRecordHeader[63:60].
§Panics
Panics if the field’s bit pattern is not a valid value of the custom representation. Use Self::try_event_type to recover from invalid bit patterns.
Sourcepub fn try_event_type(&self) -> Result<SchedulerEventType, InvalidBits<u8>>where
SchedulerEventType: TryFromBytes,
pub fn try_event_type(&self) -> Result<SchedulerEventType, InvalidBits<u8>>where
SchedulerEventType: TryFromBytes,
Fallible variant of Self::event_type.
Sourcepub fn set_event_type(&mut self, value: SchedulerEventType) -> &mut Self
pub fn set_event_type(&mut self, value: SchedulerEventType) -> &mut Self
Sets the value of ContextSwitchRecordHeader[63:60].
Sourcepub const fn thread_state(&self) -> u8
pub const fn thread_state(&self) -> u8
The value of ContextSwitchRecordHeader[39:36].
Sourcepub const fn set_thread_state(&mut self, value: u8) -> &mut Self
pub const fn set_thread_state(&mut self, value: u8) -> &mut Self
Sets the value of ContextSwitchRecordHeader[39:36].
Sourcepub const fn cpu_number(&self) -> u16
pub const fn cpu_number(&self) -> u16
The value of ContextSwitchRecordHeader[35:20].
Sourcepub const fn set_cpu_number(&mut self, value: u16) -> &mut Self
pub const fn set_cpu_number(&mut self, value: u16) -> &mut Self
Sets the value of ContextSwitchRecordHeader[35:20].
Sourcepub const fn set_arg_count(&mut self, value: u8) -> &mut Self
pub const fn set_arg_count(&mut self, value: u8) -> &mut Self
Sets the value of ContextSwitchRecordHeader[19:16].
Sourcepub const fn record_size(&self) -> u16
pub const fn record_size(&self) -> u16
The value of ContextSwitchRecordHeader[15:4].
Sourcepub const fn set_record_size(&mut self, value: u16) -> &mut Self
pub const fn set_record_size(&mut self, value: u16) -> &mut Self
Sets the value of ContextSwitchRecordHeader[15:4].
Sourcepub fn record_type(&self) -> RecordTypewhere
RecordType: TryFromBytes,
pub fn record_type(&self) -> RecordTypewhere
RecordType: TryFromBytes,
The value of ContextSwitchRecordHeader[3:0].
§Panics
Panics if the field’s bit pattern is not a valid value of the custom representation. Use Self::try_record_type to recover from invalid bit patterns.
Sourcepub fn try_record_type(&self) -> Result<RecordType, InvalidBits<u8>>where
RecordType: TryFromBytes,
pub fn try_record_type(&self) -> Result<RecordType, InvalidBits<u8>>where
RecordType: TryFromBytes,
Fallible variant of Self::record_type.
Sourcepub fn set_record_type(&mut self, value: RecordType) -> &mut Self
pub fn set_record_type(&mut self, value: RecordType) -> &mut Self
Sets the value of ContextSwitchRecordHeader[3:0].
Trait Implementations§
Source§impl Binary for ContextSwitchRecordHeader
impl Binary for ContextSwitchRecordHeader
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Resultwhere
SchedulerEventType: Debug,
RecordType: Debug,
fn fmt(&self, f: &mut Formatter<'_>) -> Resultwhere
SchedulerEventType: Debug,
RecordType: Debug,
Source§impl Clone for ContextSwitchRecordHeader
impl Clone for ContextSwitchRecordHeader
impl Copy for ContextSwitchRecordHeader
Source§impl Debug for ContextSwitchRecordHeader
impl Debug for ContextSwitchRecordHeader
Source§impl Default for ContextSwitchRecordHeader
impl Default for ContextSwitchRecordHeader
Source§fn default() -> Self
fn default() -> Self
Returns an instance with the default bits set (i.e,. with a
value of Self::DEFAULT.
impl Eq for ContextSwitchRecordHeader
Source§impl From<ContextSwitchRecordHeader> for u64
impl From<ContextSwitchRecordHeader> for u64
Source§fn from(value: ContextSwitchRecordHeader) -> Self
fn from(value: ContextSwitchRecordHeader) -> Self
Source§impl From<u64> for ContextSwitchRecordHeader
impl From<u64> for ContextSwitchRecordHeader
Source§impl IntoIterator for ContextSwitchRecordHeader
impl IntoIterator for ContextSwitchRecordHeader
Source§impl<'a> IntoIterator for &'a ContextSwitchRecordHeader
impl<'a> IntoIterator for &'a ContextSwitchRecordHeader
Source§impl LowerHex for ContextSwitchRecordHeader
impl LowerHex for ContextSwitchRecordHeader
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Resultwhere
SchedulerEventType: Debug,
RecordType: Debug,
fn fmt(&self, f: &mut Formatter<'_>) -> Resultwhere
SchedulerEventType: Debug,
RecordType: Debug,
Source§impl Octal for ContextSwitchRecordHeader
impl Octal for ContextSwitchRecordHeader
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Resultwhere
SchedulerEventType: Debug,
RecordType: Debug,
fn fmt(&self, f: &mut Formatter<'_>) -> Resultwhere
SchedulerEventType: Debug,
RecordType: Debug,
Source§impl PartialEq for ContextSwitchRecordHeader
impl PartialEq for ContextSwitchRecordHeader
impl StructuralPartialEq for ContextSwitchRecordHeader
Source§impl UpperHex for ContextSwitchRecordHeader
impl UpperHex for ContextSwitchRecordHeader
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Resultwhere
SchedulerEventType: Debug,
RecordType: Debug,
fn fmt(&self, f: &mut Formatter<'_>) -> Resultwhere
SchedulerEventType: Debug,
RecordType: Debug,
Auto Trait Implementations§
impl Freeze for ContextSwitchRecordHeader
impl RefUnwindSafe for ContextSwitchRecordHeader
impl Send for ContextSwitchRecordHeader
impl Sync for ContextSwitchRecordHeader
impl Unpin for ContextSwitchRecordHeader
impl UnsafeUnpin for ContextSwitchRecordHeader
impl UnwindSafe for ContextSwitchRecordHeader
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)