Fix possible infinite loop in the control stream write template functions.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / RNDISClassDevice.h
index 9a80132..4ba729a 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2013.
+     Copyright (C) Dean Camera, 2014.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2014  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
 /** \ingroup Group_USBClassRNDIS
  *  \defgroup Group_USBClassRNDISDevice RNDIS Class Device Mode Driver
  *
 /** \ingroup Group_USBClassRNDIS
  *  \defgroup Group_USBClassRNDISDevice RNDIS Class Device Mode Driver
  *
- *  \section Sec_Dependencies Module Source Dependencies
+ *  \section Sec_USBClassRNDISDevice_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
  *    - LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c <i>(Makefile source module name: LUFA_SRC_USBCLASS)</i>
  *
  *  The following files must be built with any user project that uses this module:
  *    - LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c <i>(Makefile source module name: LUFA_SRC_USBCLASS)</i>
  *
- *  \section Sec_ModDescription Module Description
+ *  \section Sec_USBClassRNDISDevice_ModDescription Module Description
  *  Device Mode USB Class driver framework interface, for the RNDIS USB Class driver.
  *
  *  @{
  *  Device Mode USB Class driver framework interface, for the RNDIS USB Class driver.
  *
  *  @{
                         *
                         *  \return Boolean \c true if a packet is waiting to be read in by the host, \c false otherwise.
                         */
                         *
                         *  \return Boolean \c true if a packet is waiting to be read in by the host, \c false otherwise.
                         */
-                       bool RNDIS_Device_IsPacketReceived(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo);
+                       bool RNDIS_Device_IsPacketReceived(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
 
                        /** Retrieves the next pending packet from the device, discarding the remainder of the RNDIS packet header to leave
                         *  only the packet contents for processing by the device in the nominated buffer.
 
                        /** Retrieves the next pending packet from the device, discarding the remainder of the RNDIS packet header to leave
                         *  only the packet contents for processing by the device in the nominated buffer.
                         */
                        uint8_t RNDIS_Device_ReadPacket(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo,
                                                                                        void* Buffer,
                         */
                        uint8_t RNDIS_Device_ReadPacket(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo,
                                                                                        void* Buffer,
-                                                                                       uint16_t* const PacketLength);
+                                                                                       uint16_t* const PacketLength) ATTR_NON_NULL_PTR_ARG(1);
 
                        /** Sends the given packet to the attached RNDIS device, after adding a RNDIS packet message header.
                         *
 
                        /** Sends the given packet to the attached RNDIS device, after adding a RNDIS packet message header.
                         *
                         */
                        uint8_t RNDIS_Device_SendPacket(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo,
                                                                                        void* Buffer,
                         */
                        uint8_t RNDIS_Device_SendPacket(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo,
                                                                                        void* Buffer,
-                                                                                       const uint16_t PacketLength);
+                                                                                       const uint16_t PacketLength) ATTR_NON_NULL_PTR_ARG(1);
 
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)
 
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)