LUFA Library  210130

Endpoint packet management definitions for the Atmel AVR XMEGA architecture. More...

Functions

static void Endpoint_AbortPendingIN (void)
 
void Endpoint_ClearIN (void)
 
void Endpoint_ClearOUT (void)
 
void Endpoint_ClearSETUP (void)
 
static void Endpoint_ClearStall (void) ATTR_ALWAYS_INLINE
 
bool Endpoint_IsINReady (void) ATTR_WARN_UNUSED_RESULT
 
bool Endpoint_IsOUTReceived (void) ATTR_WARN_UNUSED_RESULT
 
static bool Endpoint_IsReadWriteAllowed (void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE
 
bool Endpoint_IsSETUPReceived (void) ATTR_WARN_UNUSED_RESULT
 
static bool Endpoint_IsStalled (void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE
 
void Endpoint_StallTransaction (void)
 

Detailed Description

Functions, macros, variables, enums and types related to packet management of endpoints.

Function Documentation

◆ Endpoint_AbortPendingIN()

static void Endpoint_AbortPendingIN ( void  )
inlinestatic

Aborts all pending IN transactions on the currently selected endpoint, once the bank has been queued for transmission to the host via Endpoint_ClearIN(). This function will terminate all queued transactions, resetting the endpoint banks ready for a new packet.

◆ Endpoint_ClearIN()

void Endpoint_ClearIN ( void  )

Sends an IN packet to the host on the currently selected endpoint, freeing up the endpoint for the next packet and switching to the alternative endpoint bank if double banked.

◆ Endpoint_ClearOUT()

void Endpoint_ClearOUT ( void  )

Acknowledges an OUT packet to the host on the currently selected endpoint, freeing up the endpoint for the next packet and switching to the alternative endpoint bank if double banked.

◆ Endpoint_ClearSETUP()

void Endpoint_ClearSETUP ( void  )

Clears a received SETUP packet on the currently selected CONTROL type endpoint, freeing up the endpoint for the next packet.

Note
This is not applicable for non CONTROL type endpoints.

◆ Endpoint_ClearStall()

static void Endpoint_ClearStall ( void  )
inlinestatic

Clears the STALL condition on the currently selected endpoint.

◆ Endpoint_IsINReady()

bool Endpoint_IsINReady ( void  )

Determines if the selected IN endpoint is ready for a new packet to be sent to the host.

Returns
Boolean true if the current endpoint is ready for an IN packet, false otherwise.

◆ Endpoint_IsOUTReceived()

bool Endpoint_IsOUTReceived ( void  )

Determines if the selected OUT endpoint has received new packet from the host.

Returns
Boolean true if current endpoint is has received an OUT packet, false otherwise.

◆ Endpoint_IsReadWriteAllowed()

static bool Endpoint_IsReadWriteAllowed ( void  )
inlinestatic

Determines if the currently selected endpoint may be read from (if data is waiting in the endpoint bank and the endpoint is an OUT direction, or if the bank is not yet full if the endpoint is an IN direction). This function will return false if an error has occurred in the endpoint, if the endpoint is an OUT direction and no packet (or an empty packet) has been received, or if the endpoint is an IN direction and the endpoint bank is full.

Returns
Boolean true if the currently selected endpoint may be read from or written to, depending on its direction.

◆ Endpoint_IsSETUPReceived()

bool Endpoint_IsSETUPReceived ( void  )

Determines if the current CONTROL type endpoint has received a SETUP packet.

Returns
Boolean true if the selected endpoint has received a SETUP packet, false otherwise.

◆ Endpoint_IsStalled()

static bool Endpoint_IsStalled ( void  )
inlinestatic

Determines if the currently selected endpoint is stalled, false otherwise.

Returns
Boolean true if the currently selected endpoint is stalled, false otherwise.

◆ Endpoint_StallTransaction()

void Endpoint_StallTransaction ( void  )

Stalls the current endpoint, indicating to the host that a logical problem occurred with the indicated endpoint and that the current transfer sequence should be aborted. This provides a way for devices to indicate invalid commands to the host so that the current transfer can be aborted and the host can begin its own recovery sequence.

The currently selected endpoint remains stalled until either the Endpoint_ClearStall() macro is called, or the host issues a CLEAR FEATURE request to the device for the currently selected endpoint.