Changeset View
Changeset View
Standalone View
Standalone View
sys/boot/usb/storage/umass_loader.c
Show First 20 Lines • Show All 110 Lines • ▼ Show 20 Lines | |||||
umass_disk_open_sub(struct disk_devdesc *dev) | umass_disk_open_sub(struct disk_devdesc *dev) | ||||
{ | { | ||||
uint32_t nblock; | uint32_t nblock; | ||||
uint32_t blocksize; | uint32_t blocksize; | ||||
if (usb_msc_read_capacity(umass_uaa.device, 0, &nblock, &blocksize) != 0) | if (usb_msc_read_capacity(umass_uaa.device, 0, &nblock, &blocksize) != 0) | ||||
return (EINVAL); | return (EINVAL); | ||||
return (disk_open(dev, ((uint64_t)nblock + 1) * (uint64_t)blocksize, blocksize, 0)); | return (disk_open(dev, ((uint64_t)nblock + 1) * (uint64_t)blocksize, blocksize)); | ||||
} | } | ||||
static int | static int | ||||
umass_disk_open(struct open_file *f,...) | umass_disk_open(struct open_file *f,...) | ||||
{ | { | ||||
va_list ap; | va_list ap; | ||||
struct disk_devdesc *dev; | struct disk_devdesc *dev; | ||||
▲ Show 20 Lines • Show All 75 Lines • ▼ Show 20 Lines | if (umass_disk_open_sub(&dev) == 0) { | ||||
disk_close(&dev); | disk_close(&dev); | ||||
} | } | ||||
return (ret); | return (ret); | ||||
} | } | ||||
static void | static void | ||||
umass_disk_cleanup(void) | umass_disk_cleanup(void) | ||||
{ | { | ||||
disk_cleanup(&umass_disk); | |||||
usb_uninit(); | usb_uninit(); | ||||
} | } | ||||
/* USB specific functions */ | /* USB specific functions */ | ||||
extern void callout_process(int); | extern void callout_process(int); | ||||
Show All 20 Lines |