atmel_softpack_libraries usb dir
diff --git a/sam3s_example/atmel_softpack_libraries/usb/include/CDCRequests.h b/sam3s_example/atmel_softpack_libraries/usb/include/CDCRequests.h
new file mode 100644
index 0000000..eb30b99
--- /dev/null
+++ b/sam3s_example/atmel_softpack_libraries/usb/include/CDCRequests.h
@@ -0,0 +1,182 @@
+/* ----------------------------------------------------------------------------
+ *         ATMEL Microcontroller Software Support 
+ * ----------------------------------------------------------------------------
+ * Copyright (c) 2010, Atmel Corporation
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the disclaimer below.
+ *
+ * Atmel's name may not be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ----------------------------------------------------------------------------
+ */
+
+/** \file
+ *
+ *  Definitions and classes for USB CDC class requests
+ *  (mostly for ACM).
+ *
+ * \section CDCLineCoding
+ *
+ * -# Initialize a CDCLineCoding instance using CDCLineCoding_Initialize.
+ * -# Send a CDCLineCoding object to the host in response to a GetLineCoding
+ *    request.
+ * -# Receive a CDCLineCoding object from the host after a SetLineCoding
+ *    request.
+ *  
+ */
+
+#ifndef _CDCREQUESTS_H_
+#define _CDCREQUESTS_H_
+/** \addtogroup usb_cdc
+ *@{
+ */
+
+/*----------------------------------------------------------------------------
+ *         Includes
+ *----------------------------------------------------------------------------*/
+
+#include <stdint.h>
+
+#include <USBRequests.h>
+
+/*----------------------------------------------------------------------------
+ *         Definitions
+ *----------------------------------------------------------------------------*/
+
+/** \addtogroup usb_cdc_request USB CDC Request Codes
+ *      @{
+ * This section lists USB CDC Request Codes.
+ * - \ref CDCGenericRequest_SETLINECODING
+ * - \ref CDCGenericRequest_GETLINECODING
+ * - \ref CDCGenericRequest_SETCONTROLLINESTATE
+ */
+
+/** SetLineCoding request code. */
+#define CDCGenericRequest_SETLINECODING             0x20
+/** GetLineCoding request code. */
+#define CDCGenericRequest_GETLINECODING             0x21
+/** SetControlLineState request code. */
+#define CDCGenericRequest_SETCONTROLLINESTATE       0x22
+/**     @}*/
+
+/** \addtogroup usb_cdc_ctrl_line_state USB CDC ControlLineState bitmap
+ *      @{
+ * This section lists CDC ControlLineState bitmap.
+ * - \ref CDCControlLineState_DTR, CDCControlLineState_DTE_PRESENT
+ * - \ref CDCControlLineState_RTS, CDCControlLineState_CARRIER_ON
+ */
+/** Indicates to DCE if DTE is present or not. */
+#define CDCControlLineState_DTE_PRESENT                     (1 << 0)
+/** RS232 signal DTR: Data Terminal Ready. */
+#define CDCControlLineState_DTR                             (1 << 0)
+/** Carrier control for half duplex modems. */
+#define CDCControlLineState_CARRIER_ON                      (1 << 1)
+/** RS232 signal RTS: Request to send. */
+#define CDCControlLineState_RTS                             (1 << 1)
+/**     @}*/
+
+/** \addtogroup usb_cdc_stop USB CDC LineCoding StopBits
+ *      @{
+ * This section lists Stop Bits for CDC Line Coding.
+ * - \ref CDCLineCoding_ONESTOPBIT
+ * - \ref CDCLineCoding_ONE5STOPBIT
+ * - \ref CDCLineCoding_TWOSTOPBITS
+ */
+/** The transmission protocol uses one stop bit. */
+#define CDCLineCoding_ONESTOPBIT            0
+/** The transmission protocol uses 1.5 stop bit. */
+#define CDCLineCoding_ONE5STOPBIT           1
+/** The transmissin protocol uses two stop bits. */
+#define CDCLineCoding_TWOSTOPBITS           2
+/**     @}*/
+
+/** \addtogroup usb_cdc_parity USB CDC LineCoding ParityCheckings
+ *      @{
+ * This section lists Parity checkings for CDC Line Coding.
+ * - \ref CDCLineCoding_NOPARITY
+ * - \ref CDCLineCoding_ODDPARITY
+ * - \ref CDCLineCoding_EVENPARITY
+ * - \ref CDCLineCoding_MARKPARITY
+ * - \ref CDCLineCoding_SPACEPARITY
+ */
+/** No parity checking. */
+#define CDCLineCoding_NOPARITY              0
+/** Odd parity checking. */
+#define CDCLineCoding_ODDPARITY             1
+/** Even parity checking. */
+#define CDCLineCoding_EVENPARITY            2
+/** Mark parity checking. */
+#define CDCLineCoding_MARKPARITY            3
+/** Space parity checking. */
+#define CDCLineCoding_SPACEPARITY           4
+/**     @}*/
+
+/*----------------------------------------------------------------------------
+ *         Types
+ *----------------------------------------------------------------------------*/
+
+#ifdef __ICCARM__          /* IAR */
+#pragma pack(1)            /* IAR */
+#define __attribute__(...) /* IAR */
+#endif                     /* IAR */
+
+/**
+ * \typedef CDCLineCoding
+ * \brief Format of the data returned when a GetLineCoding request is received.
+ */
+typedef struct _CDCLineCoding {
+
+    /** Data terminal rate in bits per second. */
+    uint32_t dwDTERate;
+    /** Number of stop bits.
+        \sa usb_cdc_stop CDC LineCoding StopBits. */
+    uint8_t bCharFormat;
+    /** Type of parity checking used.
+        \sa usb_cdc_parity CDC LineCoding ParityCheckings. */
+    uint8_t bParityType;
+    /** Number of data bits (5, 6, 7, 8 or 16). */
+    uint8_t bDataBits;
+
+} __attribute__ ((packed)) CDCLineCoding; /* GCC */
+
+#ifdef __ICCARM__          /* IAR */
+#pragma pack()             /* IAR */
+#endif                     /* IAR */
+
+/*----------------------------------------------------------------------------
+ *         Functions
+ *----------------------------------------------------------------------------*/
+
+extern uint8_t CDCSetControlLineStateRequest_IsDtePresent(
+    const USBGenericRequest *request);
+
+extern uint8_t CDCSetControlLineStateRequest_ActivateCarrier(
+    const USBGenericRequest *request);
+
+extern void CDCLineCoding_Initialize(CDCLineCoding *lineCoding,
+                                     uint32_t bitrate,
+                                     uint8_t stopbits,
+                                     uint8_t parity,
+                                     uint8_t databits);
+
+
+/**@}*/
+#endif /* #define _CDCREQUESTS_H_ */
+