aboutsummaryrefslogtreecommitdiffstats
path: root/Demos/Device/MassStorage
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-05-18 10:05:21 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-05-18 10:05:21 +0000
commit2ee9fc707784e115d744dbc229bdc893f4bb6bc1 (patch)
tree1f4de5f6d8e2a9bfe89d3263f19f9b9ebf855812 /Demos/Device/MassStorage
parent72c2922e38a2dfd14eb2d8e3692171704b5508f4 (diff)
downloadlufa-2ee9fc707784e115d744dbc229bdc893f4bb6bc1.tar.gz
lufa-2ee9fc707784e115d744dbc229bdc893f4bb6bc1.tar.bz2
lufa-2ee9fc707784e115d744dbc229bdc893f4bb6bc1.zip
Rewritten event system to remove all macros, to make user code clearer.
Fixed incorrect ENDPOINT_EPNUM_MASK mask preventing endpoints above EP3 from being selected (thanks to Jonathan Oakley). Removed STREAM_CALLBACK() macro - callbacks now use regular function definitions to clarify user code. Removed DESCRIPTOR_COMPARATOR() macro - comparators should now use regular function definitions to clarify user code.
Diffstat (limited to 'Demos/Device/MassStorage')
-rw-r--r--Demos/Device/MassStorage/MassStorage.c16
-rw-r--r--Demos/Device/MassStorage/MassStorage.h23
-rw-r--r--Demos/Device/MassStorage/SCSI.c8
-rw-r--r--Demos/Device/MassStorage/makefile2
4 files changed, 20 insertions, 29 deletions
diff --git a/Demos/Device/MassStorage/MassStorage.c b/Demos/Device/MassStorage/MassStorage.c
index 1da8930b0..82e7e8aa2 100644
--- a/Demos/Device/MassStorage/MassStorage.c
+++ b/Demos/Device/MassStorage/MassStorage.c
@@ -86,7 +86,7 @@ int main(void)
}
/** Event handler for the USB_Connect event. This indicates that the device is enumerating via the status LEDs. */
-EVENT_HANDLER(USB_Connect)
+void EventHandler_USB_Connect(void)
{
/* Indicate USB enumerating */
UpdateStatus(Status_USBEnumerating);
@@ -98,7 +98,7 @@ EVENT_HANDLER(USB_Connect)
/** Event handler for the USB_Disconnect event. This indicates that the device is no longer connected to a host via
* the status LEDs and stops the Mass Storage management task.
*/
-EVENT_HANDLER(USB_Disconnect)
+void EventHandler_USB_Disconnect(void)
{
/* Stop running mass storage task */
Scheduler_SetTaskMode(USB_MassStorage, TASK_STOP);
@@ -110,7 +110,7 @@ EVENT_HANDLER(USB_Disconnect)
/** Event handler for the USB_ConfigurationChanged event. This is fired when the host set the current configuration
* of the USB device after enumeration - the device endpoints are configured and the Mass Storage management task started.
*/
-EVENT_HANDLER(USB_ConfigurationChanged)
+void EventHandler_USB_ConfigurationChanged(void)
{
/* Setup Mass Storage In and Out Endpoints */
Endpoint_ConfigureEndpoint(MASS_STORAGE_IN_EPNUM, EP_TYPE_BULK,
@@ -132,7 +132,7 @@ EVENT_HANDLER(USB_ConfigurationChanged)
* control requests that are not handled internally by the USB library (including the Mass Storage class-specific
* requests) so that they can be handled appropriately for the application.
*/
-EVENT_HANDLER(USB_UnhandledControlPacket)
+void EventHandler_USB_UnhandledControlPacket(void)
{
/* Process UFI specific control requests */
switch (USB_ControlRequest.bRequest)
@@ -283,7 +283,7 @@ static bool ReadInCommandBlock(void)
/* Read in command block header */
Endpoint_Read_Stream_LE(&CommandBlock, (sizeof(CommandBlock) - sizeof(CommandBlock.SCSICommandData)),
- AbortOnMassStoreReset);
+ StreamCallback_AbortOnMassStoreReset);
/* Check if the current command is being aborted by the host */
if (IsMassStoreReset)
@@ -305,7 +305,7 @@ static bool ReadInCommandBlock(void)
/* Read in command block command data */
Endpoint_Read_Stream_LE(&CommandBlock.SCSICommandData,
CommandBlock.SCSICommandLength,
- AbortOnMassStoreReset);
+ StreamCallback_AbortOnMassStoreReset);
/* Check if the current command is being aborted by the host */
if (IsMassStoreReset)
@@ -346,7 +346,7 @@ static void ReturnCommandStatus(void)
/* Write the CSW to the endpoint */
Endpoint_Write_Stream_LE(&CommandStatus, sizeof(CommandStatus),
- AbortOnMassStoreReset);
+ StreamCallback_AbortOnMassStoreReset);
/* Check if the current command is being aborted by the host */
if (IsMassStoreReset)
@@ -359,7 +359,7 @@ static void ReturnCommandStatus(void)
/** Stream callback function for the Endpoint stream read and write functions. This callback will abort the current stream transfer
* if a Mass Storage Reset request has been issued to the control endpoint.
*/
-STREAM_CALLBACK(AbortOnMassStoreReset)
+uint8_t StreamCallback_AbortOnMassStoreReset(void)
{
/* Abort if a Mass Storage reset command was received */
if (IsMassStoreReset)
diff --git a/Demos/Device/MassStorage/MassStorage.h b/Demos/Device/MassStorage/MassStorage.h
index f0baf1461..afe9872ea 100644
--- a/Demos/Device/MassStorage/MassStorage.h
+++ b/Demos/Device/MassStorage/MassStorage.h
@@ -130,23 +130,12 @@
/* Task Definitions: */
TASK(USB_MassStorage);
- /* Stream Callbacks: */
- STREAM_CALLBACK(AbortOnMassStoreReset);
-
- /* Event Handlers: */
- /** Indicates that this module will catch the USB_Connect event when thrown by the library. */
- HANDLES_EVENT(USB_Connect);
-
- /** Indicates that this module will catch the USB_Disconnect event when thrown by the library. */
- HANDLES_EVENT(USB_Disconnect);
-
- /** Indicates that this module will catch the USB_ConfigurationChanged event when thrown by the library. */
- HANDLES_EVENT(USB_ConfigurationChanged);
-
- /** Indicates that this module will catch the USB_UnhandledControlPacket event when thrown by the library. */
- HANDLES_EVENT(USB_UnhandledControlPacket);
-
/* Function Prototypes: */
+ void EVENT_USB_Connect(void);
+ void EVENT_USB_Disconnect(void);
+ void EVENT_USB_ConfigurationChanged(void);
+ void EVENT_USB_UnhandledControlPacket(void);
+
void UpdateStatus(uint8_t CurrentStatus);
#if defined(INCLUDE_FROM_MASSSTORAGE_C)
@@ -154,4 +143,6 @@
static void ReturnCommandStatus(void);
#endif
+ uint8_t StreamCallback_AbortOnMassStoreReset(void);
+
#endif
diff --git a/Demos/Device/MassStorage/SCSI.c b/Demos/Device/MassStorage/SCSI.c
index a88be515a..5993a546d 100644
--- a/Demos/Device/MassStorage/SCSI.c
+++ b/Demos/Device/MassStorage/SCSI.c
@@ -166,12 +166,12 @@ static bool SCSI_Command_Inquiry(void)
}
/* Write the INQUIRY data to the endpoint */
- Endpoint_Write_Stream_LE(&InquiryData, BytesTransferred, AbortOnMassStoreReset);
+ Endpoint_Write_Stream_LE(&InquiryData, BytesTransferred, StreamCallback_AbortOnMassStoreReset);
uint8_t PadBytes[AllocationLength - BytesTransferred];
/* Pad out remaining bytes with 0x00 */
- Endpoint_Write_Stream_LE(&PadBytes, (AllocationLength - BytesTransferred), AbortOnMassStoreReset);
+ Endpoint_Write_Stream_LE(&PadBytes, (AllocationLength - BytesTransferred), StreamCallback_AbortOnMassStoreReset);
/* Finalize the stream transfer to send the last packet */
Endpoint_ClearIN();
@@ -193,12 +193,12 @@ static bool SCSI_Command_Request_Sense(void)
uint8_t BytesTransferred = (AllocationLength < sizeof(SenseData))? AllocationLength : sizeof(SenseData);
/* Send the SENSE data - this indicates to the host the status of the last command */
- Endpoint_Write_Stream_LE(&SenseData, BytesTransferred, AbortOnMassStoreReset);
+ Endpoint_Write_Stream_LE(&SenseData, BytesTransferred, StreamCallback_AbortOnMassStoreReset);
uint8_t PadBytes[AllocationLength - BytesTransferred];
/* Pad out remaining bytes with 0x00 */
- Endpoint_Write_Stream_LE(&PadBytes, (AllocationLength - BytesTransferred), AbortOnMassStoreReset);
+ Endpoint_Write_Stream_LE(&PadBytes, (AllocationLength - BytesTransferred), StreamCallback_AbortOnMassStoreReset);
/* Finalize the stream transfer to send the last packet */
Endpoint_ClearIN();
diff --git a/Demos/Device/MassStorage/makefile b/Demos/Device/MassStorage/makefile
index 65a22c6a3..95c91f61d 100644
--- a/Demos/Device/MassStorage/makefile
+++ b/Demos/Device/MassStorage/makefile
@@ -508,7 +508,7 @@ sizeafter:
checkhooks: build
@echo
@echo ------- Unhooked LUFA Events -------
- @$(shell) (grep -s '^Event.*LUFA/.*\\.o' $(TARGET).map | \
+ @$(shell) (grep -s '^EVENT_.*LUFA/.*\\.o' $(TARGET).map | \
cut -d' ' -f1 | cut -d'_' -f2- | grep ".*") || \
echo "(None)"
@echo ------------------------------------