Changeset View
Changeset View
Standalone View
Standalone View
sys/boot/uboot/lib/disk.c
Show First 20 Lines • Show All 133 Lines • ▼ Show 20 Lines | |||||
static void | static void | ||||
stor_cleanup(void) | stor_cleanup(void) | ||||
{ | { | ||||
int i; | int i; | ||||
for (i = 0; i < stor_info_no; i++) | for (i = 0; i < stor_info_no; i++) | ||||
if (stor_info[i].opened > 0) | if (stor_info[i].opened > 0) | ||||
ub_dev_close(stor_info[i].handle); | ub_dev_close(stor_info[i].handle); | ||||
disk_cleanup(&uboot_storage); | |||||
} | } | ||||
static int | static int | ||||
stor_strategy(void *devdata, int rw, daddr_t blk, size_t size, | stor_strategy(void *devdata, int rw, daddr_t blk, size_t size, | ||||
char *buf, size_t *rsize) | char *buf, size_t *rsize) | ||||
{ | { | ||||
struct disk_devdesc *dev = (struct disk_devdesc *)devdata; | struct disk_devdesc *dev = (struct disk_devdesc *)devdata; | ||||
daddr_t bcount; | daddr_t bcount; | ||||
▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | if (SI(dev).opened == 0) { | ||||
if (err != 0) { | if (err != 0) { | ||||
stor_printf("device open failed with error=%d, " | stor_printf("device open failed with error=%d, " | ||||
"handle=%d\n", err, SI(dev).handle); | "handle=%d\n", err, SI(dev).handle); | ||||
return (ENXIO); | return (ENXIO); | ||||
} | } | ||||
SI(dev).opened++; | SI(dev).opened++; | ||||
} | } | ||||
return (disk_open(dev, SI(dev).blocks * SI(dev).bsize, | return (disk_open(dev, SI(dev).blocks * SI(dev).bsize, | ||||
SI(dev).bsize, 0)); | SI(dev).bsize)); | ||||
} | } | ||||
static int | static int | ||||
stor_close(struct open_file *f) | stor_close(struct open_file *f) | ||||
{ | { | ||||
struct disk_devdesc *dev; | struct disk_devdesc *dev; | ||||
dev = (struct disk_devdesc *)(f->f_devdata); | dev = (struct disk_devdesc *)(f->f_devdata); | ||||
▲ Show 20 Lines • Show All 101 Lines • Show Last 20 Lines |