00001 /*This file has been prepared for Doxygen automatic documentation generation.*/ 00013 00014 /* Copyright (c) 2007, Atmel Corporation All rights reserved. 00015 * 00016 * Redistribution and use in source and binary forms, with or without 00017 * modification, are permitted provided that the following conditions are met: 00018 * 00019 * 1. Redistributions of source code must retain the above copyright notice, 00020 * this list of conditions and the following disclaimer. 00021 * 00022 * 2. Redistributions in binary form must reproduce the above copyright notice, 00023 * this list of conditions and the following disclaimer in the documentation 00024 * and/or other materials provided with the distribution. 00025 * 00026 * 3. The name of ATMEL may not be used to endorse or promote products derived 00027 * from this software without specific prior written permission. 00028 * 00029 * THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS OR IMPLIED 00030 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00031 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND 00032 * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 00033 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00034 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00035 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00036 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00037 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 00038 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00039 */ 00040 00041 #ifndef _USB_SPECIFIC_REQUEST_H_ 00042 #define _USB_SPECIFIC_REQUEST_H_ 00043 00044 //_____ I N C L U D E S ____________________________________________________ 00045 00046 #include "config.h" 00047 00048 00049 //_____ M A C R O S ________________________________________________________ 00050 00051 extern code S_usb_device_descriptor usb_dev_desc; 00052 extern code S_usb_user_configuration_descriptor usb_conf_desc; 00053 extern code S_usb_manufacturer_string_descriptor usb_user_manufacturer_string_descriptor; 00054 extern code S_usb_product_string_descriptor usb_user_product_string_descriptor; 00055 #if (USB_DEVICE_SN_USE==ENABLE) 00056 extern code S_usb_serial_number usb_user_serial_number; 00057 #endif 00058 extern code S_usb_language_id usb_user_language_id; 00059 00060 00061 //_____ D E F I N I T I O N ________________________________________________ 00062 00063 Bool usb_user_read_request ( U8, U8 ); 00064 void usb_user_endpoint_init ( U8 ); 00065 U8 usb_user_interface_get ( U16 wInterface ); 00066 void usb_user_interface_reset ( U16 wInterface, U8 alternate_setting ); 00067 Bool usb_user_get_descriptor ( U8 , U8 ); 00068 void cdc_get_line_coding(); 00069 void cdc_set_line_coding(); 00070 void cdc_set_control_line_state(U16); 00071 void cdc_send_break(U16); 00072 Bool cdc_update_serial_state(); 00073 00074 // ____ T Y P E D E F I N I T I O N _______________________________________ 00075 00076 typedef struct 00077 { 00078 U32 dwDTERate; 00079 U8 bCharFormat; 00080 U8 bParityType; 00081 U8 bDataBits; 00082 }S_line_coding; 00083 00084 // type for set control line state message 00085 // cdc spec 1.1 chapter 6.2.14 00086 typedef union 00087 { 00088 U8 all; 00089 struct { 00090 U8 DTR:1; 00091 U8 RTS:1; 00092 U8 unused:6; 00093 }; 00094 }S_line_status; 00095 00096 // type for hardware handshake support 00097 // cdc spec 1.1 chapter 6.3.5 00098 typedef union 00099 { 00100 U16 all; 00101 struct { 00102 U16 bDCD:1; 00103 U16 bDSR:1; 00104 U16 bBreak:1; 00105 U16 bRing:1; 00106 U16 bFraming:1; 00107 U16 bParity:1; 00108 U16 bOverRun:1; 00109 U16 reserved:9; 00110 }; 00111 }S_serial_state; 00112 00113 00114 #endif 00115
1.5.3