Changeset View
Changeset View
Standalone View
Standalone View
stand/userboot/userboot/userboot_disk.c
Show First 20 Lines • Show All 51 Lines • ▼ Show 20 Lines | |||||
static struct userdisk_info *ud_info; | static struct userdisk_info *ud_info; | ||||
static int userdisk_init(void); | static int userdisk_init(void); | ||||
static void userdisk_cleanup(void); | static void userdisk_cleanup(void); | ||||
static int userdisk_strategy(void *devdata, int flag, daddr_t dblk, | static int userdisk_strategy(void *devdata, int flag, daddr_t dblk, | ||||
size_t size, char *buf, size_t *rsize); | size_t size, char *buf, size_t *rsize); | ||||
static int userdisk_realstrategy(void *devdata, int flag, daddr_t dblk, | static int userdisk_realstrategy(void *devdata, int flag, daddr_t dblk, | ||||
size_t size, char *buf, size_t *rsize); | size_t size, char *buf, size_t *rsize); | ||||
static int userdisk_open(struct open_file *f, ...); | static int userdisk_open(struct open_file *f); | ||||
static int userdisk_close(struct open_file *f); | static int userdisk_close(struct open_file *f); | ||||
static int userdisk_ioctl(struct open_file *f, u_long cmd, void *data); | static int userdisk_ioctl(struct open_file *f, u_long cmd, void *data); | ||||
static int userdisk_print(int verbose); | static int userdisk_print(int verbose); | ||||
struct devsw userboot_disk = { | struct devsw userboot_disk = { | ||||
.dv_name = "disk", | .dv_name = "disk", | ||||
.dv_type = DEVT_DISK, | .dv_type = DEVT_DISK, | ||||
.dv_init = userdisk_init, | .dv_init = userdisk_init, | ||||
▲ Show 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | userdisk_print(int verbose) | ||||
} | } | ||||
return (ret); | return (ret); | ||||
} | } | ||||
/* | /* | ||||
* Attempt to open the disk described by (dev) for use by (f). | * Attempt to open the disk described by (dev) for use by (f). | ||||
*/ | */ | ||||
static int | static int | ||||
userdisk_open(struct open_file *f, ...) | userdisk_open(struct open_file *f) | ||||
tsoome: f is now __unused? | |||||
{ | { | ||||
va_list ap; | struct devdesc *dev; | ||||
struct disk_devdesc *dev; | |||||
va_start(ap, f); | dev = f->f_devdata; | ||||
dev = va_arg(ap, struct disk_devdesc *); | if (dev->d_unit < 0 || dev->d_unit >= userdisk_maxunit) | ||||
va_end(ap); | |||||
if (dev->dd.d_unit < 0 || dev->dd.d_unit >= userdisk_maxunit) | |||||
return (EIO); | return (EIO); | ||||
ud_info[dev->dd.d_unit].ud_open++; | ud_info[dev->d_unit].ud_open++; | ||||
if (ud_info[dev->dd.d_unit].ud_bcache == NULL) | if (ud_info[dev->d_unit].ud_bcache == NULL) | ||||
ud_info[dev->dd.d_unit].ud_bcache = bcache_allocate(); | ud_info[dev->d_unit].ud_bcache = bcache_allocate(); | ||||
return (disk_open(dev, ud_info[dev->dd.d_unit].mediasize, | return (disk_open((struct disk_devdesc *)dev, | ||||
ud_info[dev->dd.d_unit].sectorsize)); | ud_info[dev->d_unit].mediasize, ud_info[dev->d_unit].sectorsize)); | ||||
} | } | ||||
static int | static int | ||||
userdisk_close(struct open_file *f) | userdisk_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 67 Lines • Show Last 20 Lines |
f is now __unused?