Pipe.h File Reference

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/eeprom.h>
#include <stdbool.h>
#include "../../../Common/Common.h"
#include "../HighLevel/USBTask.h"
#include "../HighLevel/StreamCallbacks.h"

Defines

#define PIPE_ERRORFLAG_OVERFLOW   (1 << 6)
#define PIPE_ERRORFLAG_UNDERFLOW   (1 << 5)
#define PIPE_ERRORFLAG_CRC16   (1 << 4)
#define PIPE_ERRORFLAG_TIMEOUT   (1 << 3)
#define PIPE_ERRORFLAG_PID   (1 << 2)
#define PIPE_ERRORFLAG_DATAPID   (1 << 1)
#define PIPE_ERRORFLAG_DATATGL   (1 << 0)
#define PIPE_TOKEN_SETUP   (0 << PTOKEN0)
#define PIPE_TOKEN_IN   (1 << PTOKEN0)
#define PIPE_TOKEN_OUT   (2 << PTOKEN0)
#define PIPE_BANK_SINGLE   (0 << EPBK0)
#define PIPE_BANK_DOUBLE   (1 << EPBK0)
#define PIPE_CONTROLPIPE   0
#define PIPE_CONTROLPIPE_DEFAULT_SIZE   64
#define PIPE_PIPENUM_MASK   0x07
#define PIPE_TOTAL_PIPES   7
#define PIPE_MAX_SIZE   256
#define PIPE_EPNUM_MASK   0x0F

Enumerations

enum  Pipe_WaitUntilReady_ErrorCodes_t {
  PIPE_READYWAIT_NoError = 0,
  PIPE_READYWAIT_PipeStalled = 1,
  PIPE_READYWAIT_DeviceDisconnected = 2,
  PIPE_READYWAIT_Timeout = 3
}
enum  Pipe_Stream_RW_ErrorCodes_t {
  PIPE_RWSTREAM_NoError = 0,
  PIPE_RWSTREAM_PipeStalled = 1,
  PIPE_RWSTREAM_DeviceDisconnected = 2,
  PIPE_RWSTREAM_Timeout = 3,
  PIPE_RWSTREAM_CallbackAborted = 4
}

Functions

static uint16_t Pipe_BytesInPipe (void)
static uint8_t Pipe_GetCurrentPipe (void)
static void Pipe_SelectPipe (uint8_t PipeNumber)
static void Pipe_ResetPipe (uint8_t PipeNumber)
static void Pipe_EnablePipe (void)
static void Pipe_DisablePipe (void)
static bool Pipe_IsEnabled (void)
static uint8_t Pipe_GetPipeToken (void)
static void Pipe_SetPipeToken (uint8_t Token)
static void Pipe_SetInfiniteINRequests (void)
static void Pipe_SetFiniteINRequests (uint8_t TotalINRequests)
static bool Pipe_IsConfigured (void)
static uint8_t Pipe_BoundEndpointNumber (void)
static void Pipe_SetInterruptPeriod (uint8_t Milliseconds)
static uint8_t Pipe_GetPipeInterrupts (void)
static bool Pipe_HasPipeInterrupted (uint8_t PipeNumber)
static void Pipe_Unfreeze (void)
static void Pipe_Freeze (void)
static bool Pipe_IsFrozen (void)
static void Pipe_ClearError (void)
static bool Pipe_IsError (void)
static void Pipe_ClearErrorFlags (void)
static uint8_t Pipe_GetErrorFlags (void)
static bool Pipe_IsReadWriteAllowed (void)
static bool Pipe_IsINReceived (void)
static bool Pipe_IsOUTReady (void)
static bool Pipe_IsSETUPSent (void)
static void Pipe_ClearSETUP (void)
static void Pipe_ClearIN (void)
static void Pipe_ClearOUT (void)
static bool Pipe_IsNAKReceived (void)
static void Pipe_ClearNAKReceived (void)
static bool Pipe_IsStalled (void)
static void Pipe_ClearStall (void)
static uint8_t Pipe_Read_Byte (void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE
static void Pipe_Write_Byte (const uint8_t Byte) ATTR_ALWAYS_INLINE
static void Pipe_Discard_Byte (void) ATTR_ALWAYS_INLINE
static uint16_t Pipe_Read_Word_LE (void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE
static uint16_t Pipe_Read_Word_BE (void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE
static void Pipe_Write_Word_LE (const uint16_t Word) ATTR_ALWAYS_INLINE
static void Pipe_Write_Word_BE (const uint16_t Word) ATTR_ALWAYS_INLINE
static void Pipe_Discard_Word (void) ATTR_ALWAYS_INLINE
static uint32_t Pipe_Read_DWord_LE (void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE
static uint32_t Pipe_Read_DWord_BE (void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE
static void Pipe_Write_DWord_LE (const uint32_t DWord) ATTR_ALWAYS_INLINE
static void Pipe_Write_DWord_BE (const uint32_t DWord) ATTR_ALWAYS_INLINE
static void Pipe_Discard_DWord (void) ATTR_ALWAYS_INLINE
bool Pipe_ConfigurePipe (const uint8_t Number, const uint8_t Type, const uint8_t Token, const uint8_t EndpointNumber, const uint16_t Size, const uint8_t Banks)
uint8_t Pipe_WaitUntilReady (void)
bool Pipe_IsEndpointBound (const uint8_t EndpointAddress)
uint8_t Pipe_Discard_Stream (uint16_t Length, StreamCallbackPtr_t Callback)
uint8_t Pipe_Write_Stream_LE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Write_EStream_LE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Write_PStream_LE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Write_Stream_BE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Write_EStream_BE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Write_PStream_BE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Read_Stream_LE (void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Read_EStream_LE (void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Read_Stream_BE (void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Read_EStream_BE (void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)

Variables

uint8_t USB_ControlPipeSize

Generated on Wed Dec 23 18:41:42 2009 for LUFA (Formerly MyUSB) Library by  doxygen 1.6.1