X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/5e7319058268e021ae39ca4b9fcabaec0060117b..77a9df36a77d2523dd2bc24fa17f9f04c6c175c5:/LUFA/Drivers/USB/Core/Pipe.h diff --git a/LUFA/Drivers/USB/Core/Pipe.h b/LUFA/Drivers/USB/Core/Pipe.h index 4edeba92e..5f82937f4 100644 --- a/LUFA/Drivers/USB/Core/Pipe.h +++ b/LUFA/Drivers/USB/Core/Pipe.h @@ -38,13 +38,14 @@ /** \ingroup Group_PipeManagement * \defgroup Group_PipeRW Pipe Data Reading and Writing - * \brief Common USB Pipe definitions for all architectures. + * \brief Pipe data read/write definitions. * * Functions, macros, variables, enums and types related to data reading and writing from and to pipes. */ /** \ingroup Group_PipeRW * \defgroup Group_PipePrimitiveRW Read/Write of Primitive Data Types + * \brief Pipe data primitive read/write definitions. * * Functions, macros, variables, enums and types related to data reading and writing of primitive data types * from and to pipes. @@ -52,12 +53,14 @@ /** \ingroup Group_PipeManagement * \defgroup Group_PipePacketManagement Pipe Packet Management + * \brief Pipe packet management definitions. * * Functions, macros, variables, enums and types related to packet management of pipes. */ /** \ingroup Group_PipeManagement * \defgroup Group_PipeControlReq Pipe Control Request Management + * \brief Pipe control request definitions. * * Module for host mode request processing. This module allows for the transmission of standard, class and * vendor control requests to the default control endpoint of an attached device while in host mode. @@ -67,6 +70,7 @@ /** \ingroup Group_USB * \defgroup Group_PipeManagement Pipe Management + * \brief Pipe management definitions. * * This module contains functions, macros and enums related to pipe management when in USB Host mode. This * module contains the pipe management macros, as well as pipe interrupt and data send/receive functions @@ -80,9 +84,11 @@ /* Includes: */ #include "../../../Common/Common.h" + #include "USBMode.h" - #if (ARCH == ARCH_AVR8) - #include "AVR8/Pipe.h" + /* Enable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + extern "C" { #endif /* Preprocessor Checks: */ @@ -90,6 +96,40 @@ #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #endif + /* Public Interface - May be used in end-application: */ + /* Macros: */ + /** Pipe address for the default control pipe, which always resides in address 0. This is + * defined for convenience to give more readable code when used with the pipe macros. + */ + #define PIPE_CONTROLPIPE 0 + + /** Pipe number mask, for masking against pipe addresses to retrieve the pipe's numerical address + * in the device. + */ + #define PIPE_PIPENUM_MASK 0x07 + + /** Endpoint number mask, for masking against endpoint addresses to retrieve the endpoint's + * numerical address in the attached device. + */ + #define PIPE_EPNUM_MASK 0x0F + + /** Endpoint direction mask, for masking against endpoint addresses to retrieve the endpoint's + * direction for comparing with the \c ENDPOINT_DESCRIPTOR_DIR_* masks. + */ + #define PIPE_EPDIR_MASK 0x80 + + /* Architecture Includes: */ + #if (ARCH == ARCH_AVR8) + #include "AVR8/Pipe_AVR8.h" + #elif (ARCH == ARCH_UC3) + #include "UC3/Pipe_UC3.h" + #endif + + /* Disable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + } + #endif + #endif /** @} */