From 7d72d327e231d8ae9f1e8bce9f20faeaa2278b24 Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Wed, 12 Dec 2018 21:23:43 +0100 Subject: usb/storage: Invert the logic of the IF-statements to prepare write implementation Signed-off-by: Laurent Vivier Reviewed-by: Thomas Huth Signed-off-by: Alexey Kardashevskiy --- slof/fs/usb/dev-storage.fs | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) (limited to 'slof') diff --git a/slof/fs/usb/dev-storage.fs b/slof/fs/usb/dev-storage.fs index 94f8421..a0a0bac 100644 --- a/slof/fs/usb/dev-storage.fs +++ b/slof/fs/usb/dev-storage.fs @@ -107,23 +107,23 @@ scsi-open TO resp-size TO resp-buffer udev USB_PIPE_OUT td-buf td-buf-phys dma-buf-phys usb>cmd 1F - usb-transfer-bulk IF \ transfer CBW - resp-size IF - d# 125 us - udev USB_PIPE_IN td-buf td-buf-phys resp-buffer resp-size - usb-transfer-bulk 1 = not IF \ transfer data - usb-disk-debug? IF ." Data phase failed " cr THEN - \ FALSE EXIT - \ in case of a stall/halted endpoint we clear the halt - \ Fall through and try reading the CSW - THEN - THEN - d# 125 us - udev USB_PIPE_IN td-buf td-buf-phys dma-buf-phys usb>csw 0D - usb-transfer-bulk \ transfer CSW - ELSE - FALSE EXIT + usb-transfer-bulk 0= IF + FALSE EXIT THEN + \ transfer CBW + resp-size IF + d# 125 us + udev USB_PIPE_IN td-buf td-buf-phys resp-buffer resp-size + usb-transfer-bulk 0= IF \ transfer data + usb-disk-debug? IF ." Data phase failed " cr THEN + \ FALSE EXIT + \ in case of a stall/halted endpoint we clear the halt + \ Fall through and try reading the CSW + THEN + THEN + d# 125 us + udev USB_PIPE_IN td-buf td-buf-phys dma-buf-phys usb>csw 0D + usb-transfer-bulk \ transfer CSW ; STRUCT \ cbw @@ -189,12 +189,11 @@ CONSTANT cbw-length \ Send it dma-buf-phys usb>data usb-buf-len - do-bulk-command IF - dma-buf usb>data usb-buf-addr usb-buf-len move - ELSE - ." USB-DISK: Bulk commad failed!" cr + do-bulk-command 0= IF + ." USB-DISK: Bulk command failed!" cr 0 0 -1 EXIT THEN + dma-buf usb>data usb-buf-addr usb-buf-len move dma-buf usb>csw to csw-addr csw-addr csw>sig l@ 55534253 <> IF -- cgit v1.1