FAT heuristics mean a disk as small as the one emulated in the incomplete Mass Storag...
[pub/USBasp.git] / LUFA / Common / Common.h
index 8b1845a..9bfe1f3 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2012.
+     Copyright (C) Dean Camera, 2013.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2013  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
@@ -18,7 +18,7 @@
   advertising or publicity pertaining to distribution of the
   software without specific, written prior permission.
 
-  The author disclaim all warranties with regard to this
+  The author disclaims all warranties with regard to this
   software, including all implied warranties of merchantability
   and fitness.  In no event shall the author be liable for any
   special, indirect or consequential damages or any damages
   this software.
 */
 
+/** \dir
+ *  \brief Common library header files.
+ *
+ *  This folder contains header files which are common to all parts of the LUFA library. They may be used freely in
+ *  user applications.
+ */
+
 /** \file
  *  \brief Common library convenience headers, macros and functions.
  *
                #include <string.h>
                #include <stddef.h>
 
-               #if defined(USE_LUFA_CONFIG_HEADER)
-                       #include "LUFAConfig.h"
-               #endif
-
                #include "Architectures.h"
                #include "BoardTypes.h"
                #include "ArchitectureSpecific.h"
                #include "CompilerSpecific.h"
                #include "Attributes.h"
 
+               #if defined(USE_LUFA_CONFIG_HEADER)
+                       #include "LUFAConfig.h"
+               #endif
+
        /* Enable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
                        extern "C" {
                        #include "Endianness.h"
                #elif (ARCH == ARCH_UC3)
                        #include <avr32/io.h>
+                       #include <math.h>
 
                        // === TODO: Find abstracted way to handle these ===
-                       #define PROGMEM                  const
+                       #define PROGMEM                  
                        #define pgm_read_byte(x)         *x
                        #define memcmp_P(...)            memcmp(__VA_ARGS__)
                        #define memcpy_P(...)            memcpy(__VA_ARGS__)
                                 *
                                 *  \ingroup Group_GlobalInt
                                 *
-                                *  \param Name  Unique name of the interrupt service routine.
+                                *  \param[in] Name  Unique name of the interrupt service routine.
                                 */
                                #define ISR(Name, ...)          void Name (void) __attribute__((__interrupt__)) __VA_ARGS__; void Name (void)
                        #endif
                                #elif (ARCH == ARCH_XMEGA)
                                return SREG;
                                #endif
-
-                               GCC_MEMORY_BARRIER();
                        }
 
                        /** Sets the global interrupt enable state of the microcontroller to the mask passed into the function.