Mark build test makefiles as being incompatible with parallel make builds, as they...
[pub/USBasp.git] / LUFA / Drivers / USB / Core / USBController.h
index 49fbb41..44a10e3 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2011.
+     Copyright (C) Dean Camera, 2012.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -50,7 +50,7 @@
 
        /* Includes: */
                #include "../../../Common/Common.h"
 
        /* Includes: */
                #include "../../../Common/Common.h"
-               #include "USBMode.h"            
+               #include "USBMode.h"
 
        /* Enable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
 
        /* Enable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
                #endif
 
        /* Defines: */
                #endif
 
        /* Defines: */
+               /** \name Endpoint Direction Masks */
+               //@{
+               /** Endpoint direction mask, for masking against endpoint addresses to retrieve the endpoint's
+                *  direction for comparing with the \c ENDPOINT_DIR_* masks.
+                */
+               #define ENDPOINT_DIR_MASK                  0x80
+
+               /** Endpoint address direction mask for an OUT direction (Host to Device) endpoint. This may be ORed with
+                *  the index of the address within a device to obtain the full endpoint address.
+                */
+               #define ENDPOINT_DIR_OUT                   0x00
+
+               /** Endpoint address direction mask for an IN direction (Device to Host) endpoint. This may be ORed with
+                *  the index of the address within a device to obtain the full endpoint address.
+                */
+               #define ENDPOINT_DIR_IN                    0x80
+               //@}
+
+               /** \name Pipe Direction Masks */
+               //@{
+               /** Pipe direction mask, for masking against pipe addresses to retrieve the pipe's
+                *  direction for comparing with the \c PIPE_DIR_* masks.
+                */
+               #define PIPE_DIR_MASK                      0x80
+
+               /** Endpoint address direction mask for an OUT direction (Host to Device) endpoint. This may be ORed with
+                *  the index of the address within a device to obtain the full endpoint address.
+                */
+               #define PIPE_DIR_OUT                       0x00
+
+               /** Endpoint address direction mask for an IN direction (Device to Host) endpoint. This may be ORed with
+                *  the index of the address within a device to obtain the full endpoint address.
+                */
+               #define PIPE_DIR_IN                        0x80
+               //@}
+
                /** \name Endpoint/Pipe Type Masks */
                //@{
                /** \name Endpoint/Pipe Type Masks */
                //@{
+               /** Mask for determining the type of an endpoint from an endpoint descriptor. This should then be compared
+                *  with the \c EP_TYPE_* masks to determine the exact type of the endpoint.
+                */
+               #define EP_TYPE_MASK                       0x03
+
                /** Mask for a CONTROL type endpoint or pipe.
                 *
                 *  \note See \ref Group_EndpointManagement and \ref Group_PipeManagement for endpoint/pipe functions.
                /** Mask for a CONTROL type endpoint or pipe.
                 *
                 *  \note See \ref Group_EndpointManagement and \ref Group_PipeManagement for endpoint/pipe functions.
                #elif (ARCH == ARCH_UC3)
                        #include "UC3/USBController_UC3.h"
                #elif (ARCH == ARCH_XMEGA)
                #elif (ARCH == ARCH_UC3)
                        #include "UC3/USBController_UC3.h"
                #elif (ARCH == ARCH_XMEGA)
-                       #include "XMEGA/USBController_XMEGA.h"  
+                       #include "XMEGA/USBController_XMEGA.h"
                #endif
 
        /* Disable C linkage for C++ Compilers: */
                #endif
 
        /* Disable C linkage for C++ Compilers: */