Embassy
rp-pac

Crates

git

Versions

default

Flavors

#[repr(transparent)]
pub struct EpBufferControl(pub u32);
Expand description

Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1. Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode.

Tuple Fields§

§0: u32

Implementations§

source§

impl EpBufferControl

source

pub const fn length(&self, n: usize) -> u16

The length of the data in buffer 0.

source

pub fn set_length(&mut self, n: usize, val: u16)

The length of the data in buffer 0.

source

pub const fn available(&self, n: usize) -> bool

Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back.

source

pub fn set_available(&mut self, n: usize, val: bool)

Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back.

source

pub const fn stall(&self) -> bool

Reply with a stall (valid for both buffers).

source

pub fn set_stall(&mut self, val: bool)

Reply with a stall (valid for both buffers).

source

pub const fn reset(&self) -> bool

Reset the buffer selector to buffer 0.

source

pub fn set_reset(&mut self, val: bool)

Reset the buffer selector to buffer 0.

source

pub const fn pid(&self, n: usize) -> bool

The data pid of buffer 0.

source

pub fn set_pid(&mut self, n: usize, val: bool)

The data pid of buffer 0.

source

pub const fn last(&self, n: usize) -> bool

Buffer 0 is the last buffer of the transfer.

source

pub fn set_last(&mut self, n: usize, val: bool)

Buffer 0 is the last buffer of the transfer.

source

pub const fn full(&self, n: usize) -> bool

Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data.

source

pub fn set_full(&mut self, n: usize, val: bool)

Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data.

source

pub const fn double_buffer_iso_offset( &self ) -> EpBufferControlDoubleBufferIsoOffset

The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint. For a non Isochronous endpoint the offset is always 64 bytes.

source

pub fn set_double_buffer_iso_offset( &mut self, val: EpBufferControlDoubleBufferIsoOffset )

The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint. For a non Isochronous endpoint the offset is always 64 bytes.

Trait Implementations§

source§

impl Clone for EpBufferControl

source§

fn clone(&self) -> EpBufferControl

Returns a copy 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 Default for EpBufferControl

source§

fn default() -> EpBufferControl

Returns the “default value” for a type. Read more
source§

impl PartialEq<EpBufferControl> for EpBufferControl

source§

fn eq(&self, other: &EpBufferControl) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for EpBufferControl

source§

impl Eq for EpBufferControl

source§

impl StructuralEq for EpBufferControl

source§

impl StructuralPartialEq for EpBufferControl

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.