diff options
author | Gabe Black <gabeblack@chromium.org> | 2012-03-12 23:18:41 -0700 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-03-13 18:02:19 -0700 |
commit | 632de4e223f51b84539307ca12703b21b5d7f5f5 (patch) | |
tree | e9c8ce27eafd3366dbc62e4363dc8c06475c4fbd /common | |
parent | 460709b5b6358924d6cdeb4c56d85c721e1aed38 (diff) |
gen: Make the SCSI and USB drivers compile with the CONFIG_SYS_64BIT_LBA option
These drivers wouldn't compile when the CONFIG_SYS_64BIT_LBA option is turned
on because the used fixed size data types in their exported functions when they
should have used lbaint_t for the block count parameter. That meant that when
the sizes happened to be the same, when using a 28 bit LBA, the driver would
build, but when it wasn't, a 48 bit LBA, things broke.
This change adjusts the signatures to use the right type and makes small
adjustments in the affected functions.
BUG=chrome-os-partner:8180
TEST=Built for emeraldlake2 with the CONFIG_SYS_64BIT_LBA option enabled and
saw its compile errors go away.
Change-Id: I7443b5976d3d06b82070344011fba46a28bd77de
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/18058
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@google.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_scsi.c | 14 | ||||
-rw-r--r-- | common/usb_storage.c | 14 |
2 files changed, 16 insertions, 12 deletions
diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c index 7bfb3b421b3..5ecbad040f4 100644 --- a/common/cmd_scsi.c +++ b/common/cmd_scsi.c @@ -84,8 +84,8 @@ void scsi_setup_inquiry(ccb * pccb); void scsi_ident_cpy (unsigned char *dest, unsigned char *src, unsigned int len); -ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer); -ulong scsi_write(int device, ulong blknr, ulong blkcnt, const void *buffer); +ulong scsi_read(int device, ulong blknr, lbaint_t blkcnt, void *buffer); +ulong scsi_write(int device, ulong blknr, lbaint_t blkcnt, const void *buffer); /********************************************************************************* @@ -499,9 +499,10 @@ int do_scsi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #define SCSI_MAX_READ_BLK 0xFFFF /* almost the maximum amount of the scsi_ext command.. */ -ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer) +ulong scsi_read(int device, ulong blknr, lbaint_t blkcnt, void *buffer) { - ulong start,blks, buf_addr; + lbaint_t start, blks; + uintptr_t buf_addr; unsigned short smallblks; ccb* pccb=(ccb *)&tempccb; device&=0xff; @@ -548,9 +549,10 @@ ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer) /* Almost the maximum amount of the scsi_ext command.. */ #define SCSI_MAX_WRITE_BLK 0xFFFF -ulong scsi_write(int device, ulong blknr, ulong blkcnt, const void *buffer) +ulong scsi_write(int device, ulong blknr, lbaint_t blkcnt, const void *buffer) { - ulong start, blks, buf_addr; + lbaint_t start, blks; + uintptr_t buf_addr; unsigned short smallblks; ccb* pccb = (ccb *)&tempccb; device &= 0xff; diff --git a/common/usb_storage.c b/common/usb_storage.c index 413562607ac..c36e641ee67 100644 --- a/common/usb_storage.c +++ b/common/usb_storage.c @@ -173,9 +173,9 @@ int usb_stor_get_info(struct usb_device *dev, struct us_data *us, int usb_storage_probe(struct usb_device *dev, unsigned int ifnum, struct us_data *ss); unsigned long usb_stor_read(int device, unsigned long blknr, - unsigned long blkcnt, void *buffer); + lbaint_t blkcnt, void *buffer); unsigned long usb_stor_write(int device, unsigned long blknr, - unsigned long blkcnt, const void *buffer); + lbaint_t blkcnt, const void *buffer); struct usb_device * usb_get_dev_index(int index); void uhci_show_temp_int_td(void); @@ -1061,9 +1061,10 @@ static void usb_bin_fixup(struct usb_device_descriptor descriptor, #define USB_MAX_READ_BLK 20 unsigned long usb_stor_read(int device, unsigned long blknr, - unsigned long blkcnt, void *buffer) + lbaint_t blkcnt, void *buffer) { - unsigned long start, blks, buf_addr; + lbaint_t start, blks; + uintptr_t buf_addr; unsigned short smallblks; struct usb_device *dev; int retry, i; @@ -1138,9 +1139,10 @@ retry_it: #define USB_MAX_WRITE_BLK 20 unsigned long usb_stor_write(int device, unsigned long blknr, - unsigned long blkcnt, const void *buffer) + lbaint_t blkcnt, const void *buffer) { - unsigned long start, blks, buf_addr; + lbaint_t start, blks; + uintptr_t buf_addr; unsigned short smallblks; struct usb_device *dev; int retry, i; |