Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FATFileSystem mbed-rtos mbed
Fork of USBHost by
Revision 26:607951c26872, committed 2014-08-18
- Comitter:
- mbed_official
- Date:
- Mon Aug 18 13:45:26 2014 +0100
- Parent:
- 25:45dcbf2ba11d
- Child:
- 27:4206883f4cb7
- Commit message:
- Synchronized with git revision e91e6e69d628a619396c2140bd068b5dbb0986db
Full URL: https://github.com/mbedmicro/mbed/commit/e91e6e69d628a619396c2140bd068b5dbb0986db/
Added count argument to disk read/write
Changed in this revision
| USBHostMSD/USBHostMSD.cpp | Show annotated file Show diff for this revision Revisions of this file |
| USBHostMSD/USBHostMSD.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/USBHostMSD/USBHostMSD.cpp Fri Jul 11 10:00:48 2014 +0100
+++ b/USBHostMSD/USBHostMSD.cpp Mon Aug 18 13:45:26 2014 +0100
@@ -323,24 +323,34 @@
return readCapacity();
}
-int USBHostMSD::disk_write(const uint8_t *buffer, uint64_t block_number) {
- USB_DBG("FILESYSTEM: write block: %lld", block_number);
+int USBHostMSD::disk_write(const uint8_t* buffer, uint64_t block_number, uint8_t count) {
+ USB_DBG("FILESYSTEM: write block: %lld, count: %d", block_number, count);
if (!disk_init) {
disk_initialize();
}
if (!disk_init)
return -1;
- return dataTransfer((uint8_t *)buffer, block_number, 1, HOST_TO_DEVICE);
+ for (uint64_t b = block_number; b < block_number + count; b++) {
+ if (dataTransfer((uint8_t*)buffer, b, 1, HOST_TO_DEVICE))
+ return -1;
+ buffer += 512;
+ }
+ return 0;
}
-int USBHostMSD::disk_read(uint8_t * buffer, uint64_t block_number) {
- USB_DBG("FILESYSTEM: read block %lld", block_number);
+int USBHostMSD::disk_read(uint8_t* buffer, uint64_t block_number, uint8_t count) {
+ USB_DBG("FILESYSTEM: read block: %lld, count: %d", block_number, count);
if (!disk_init) {
disk_initialize();
}
if (!disk_init)
return -1;
- return dataTransfer((uint8_t *)buffer, block_number, 1, DEVICE_TO_HOST);
+ for (uint64_t b = block_number; b < block_number + count; b++) {
+ if (dataTransfer((uint8_t*)buffer, b, 1, DEVICE_TO_HOST))
+ return -1;
+ buffer += 512;
+ }
+ return 0;
}
uint64_t USBHostMSD::disk_sectors() {
--- a/USBHostMSD/USBHostMSD.h Fri Jul 11 10:00:48 2014 +0100
+++ b/USBHostMSD/USBHostMSD.h Mon Aug 18 13:45:26 2014 +0100
@@ -59,8 +59,8 @@
// From FATFileSystem
virtual int disk_initialize();
virtual int disk_status() {return 0;};
- virtual int disk_read(uint8_t * buffer, uint64_t sector);
- virtual int disk_write(const uint8_t * buffer, uint64_t sector);
+ virtual int disk_read(uint8_t* buffer, uint64_t sector, uint8_t count);
+ virtual int disk_write(const uint8_t* buffer, uint64_t sector, uint8_t count);
virtual int disk_sync() {return 0;};
virtual uint64_t disk_sectors();
