More work on the Mass Storage Host mode Class driver.
Added ATTR_NON_NULL_PTR_ARG() attributes to the class drivers to improve user code reliability by disallowing explicit NULL pointers as pointer parameters in function calls where the parameter must not be NULL. Disabled building of the Demos/Host/ClassDriver directory until Host Mode Class drivers are complete to prevent build errors in the meantime.
This commit is contained in:
		
							parent
							
								
									f547eb3608
								
							
						
					
					
						commit
						ee744abb7e
					
				
					 12 changed files with 407 additions and 81 deletions
				
			
		|  | @ -110,32 +110,32 @@ | |||
| 			 * | ||||
| 			 *  \return Boolean true if the endpoints were sucessfully configured, false otherwise | ||||
| 			 */ | ||||
| 			bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo); | ||||
| 			bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); | ||||
| 
 | ||||
| 			/** Processes incomming control requests from the host, that are directed to the given RNDIS class interface. This should be
 | ||||
| 			 *  linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event. | ||||
| 			 * | ||||
| 			 *  \param[in,out] RNDISInterfaceInfo  Pointer to a structure containing a RNDIS Class configuration and state. | ||||
| 			 */		 | ||||
| 			void RNDIS_Device_ProcessControlRequest(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo); | ||||
| 			void RNDIS_Device_ProcessControlRequest(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); | ||||
| 			 | ||||
| 			/** General management task for a given HID class interface, required for the correct operation of the interface. This should
 | ||||
| 			 *  be called frequently in the main program loop, before the master USB management task \ref USB_USBTask(). | ||||
| 			 * | ||||
| 			 *  \param[in,out] RNDISInterfaceInfo  Pointer to a structure containing a RNDIS Class configuration and state. | ||||
| 			 */ | ||||
| 			void RNDIS_Device_USBTask(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo); | ||||
| 			void RNDIS_Device_USBTask(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); | ||||
| 		 | ||||
| 	/* Private Interface - For use in library only: */ | ||||
| 	#if !defined(__DOXYGEN__) | ||||
| 		/* Function Prototypes: */ | ||||
| 		#if defined(INCLUDE_FROM_RNDIS_CLASS_DEVICE_C) | ||||
| 			static void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo); | ||||
| 			static void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); | ||||
| 			static bool RNDIS_Device_ProcessNDISQuery(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo,  | ||||
| 			                                          const uint32_t OId, void* const QueryData, const uint16_t QuerySize, | ||||
| 										              void* ResponseData, uint16_t* const ResponseSize); | ||||
| 										              void* ResponseData, uint16_t* const ResponseSize) ATTR_NON_NULL_PTR_ARG(1, 5, 6); | ||||
| 			static bool RNDIS_Device_ProcessNDISSet(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo, const uint32_t OId, | ||||
| 			                                        void* SetData, const uint16_t SetSize);	 | ||||
| 			                                        void* SetData, const uint16_t SetSize) ATTR_NON_NULL_PTR_ARG(1, 3); | ||||
| 		#endif | ||||
| 		 | ||||
| 	#endif | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dean Camera
						Dean Camera