Changeset View
Changeset View
Standalone View
Standalone View
head/sys/boot/i386/libi386/biosdisk.c
Show First 20 Lines • Show All 122 Lines • ▼ Show 20 Lines | |||||
static int bd_read(struct disk_devdesc *dev, daddr_t dblk, int blks, | static int bd_read(struct disk_devdesc *dev, daddr_t dblk, int blks, | ||||
caddr_t dest); | caddr_t dest); | ||||
static int bd_write(struct disk_devdesc *dev, daddr_t dblk, int blks, | static int bd_write(struct disk_devdesc *dev, daddr_t dblk, int blks, | ||||
caddr_t dest); | caddr_t dest); | ||||
static int bd_int13probe(struct bdinfo *bd); | static int bd_int13probe(struct bdinfo *bd); | ||||
static int bd_init(void); | static int bd_init(void); | ||||
static int bd_strategy(void *devdata, int flag, daddr_t dblk, size_t offset, | static int bd_strategy(void *devdata, int flag, daddr_t dblk, size_t size, | ||||
size_t size, char *buf, size_t *rsize); | char *buf, size_t *rsize); | ||||
static int bd_realstrategy(void *devdata, int flag, daddr_t dblk, size_t offset, | static int bd_realstrategy(void *devdata, int flag, daddr_t dblk, size_t size, | ||||
size_t size, char *buf, size_t *rsize); | char *buf, size_t *rsize); | ||||
static int bd_open(struct open_file *f, ...); | static int bd_open(struct open_file *f, ...); | ||||
static int bd_close(struct open_file *f); | static int bd_close(struct open_file *f); | ||||
static int bd_ioctl(struct open_file *f, u_long cmd, void *data); | static int bd_ioctl(struct open_file *f, u_long cmd, void *data); | ||||
static int bd_print(int verbose); | static int bd_print(int verbose); | ||||
static void bd_cleanup(void); | static void bd_cleanup(void); | ||||
#ifdef LOADER_GELI_SUPPORT | #ifdef LOADER_GELI_SUPPORT | ||||
static enum isgeli { | static enum isgeli { | ||||
▲ Show 20 Lines • Show All 354 Lines • ▼ Show 20 Lines | case DIOCGMEDIASIZE: | ||||
break; | break; | ||||
default: | default: | ||||
return (ENOTTY); | return (ENOTTY); | ||||
} | } | ||||
return (0); | return (0); | ||||
} | } | ||||
static int | static int | ||||
bd_strategy(void *devdata, int rw, daddr_t dblk, size_t offset, size_t size, | bd_strategy(void *devdata, int rw, daddr_t dblk, size_t size, | ||||
char *buf, size_t *rsize) | char *buf, size_t *rsize) | ||||
{ | { | ||||
struct bcache_devdata bcd; | struct bcache_devdata bcd; | ||||
struct disk_devdesc *dev; | struct disk_devdesc *dev; | ||||
dev = (struct disk_devdesc *)devdata; | dev = (struct disk_devdesc *)devdata; | ||||
bcd.dv_strategy = bd_realstrategy; | bcd.dv_strategy = bd_realstrategy; | ||||
bcd.dv_devdata = devdata; | bcd.dv_devdata = devdata; | ||||
bcd.dv_cache = BD(dev).bd_bcache; | bcd.dv_cache = BD(dev).bd_bcache; | ||||
return (bcache_strategy(&bcd, rw, dblk + dev->d_offset, offset, | return (bcache_strategy(&bcd, rw, dblk + dev->d_offset, | ||||
size, buf, rsize)); | size, buf, rsize)); | ||||
} | } | ||||
static int | static int | ||||
bd_realstrategy(void *devdata, int rw, daddr_t dblk, size_t offset, size_t size, | bd_realstrategy(void *devdata, int rw, daddr_t dblk, 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; | ||||
int blks, remaining; | int blks, remaining; | ||||
#ifdef BD_SUPPORT_FRAGS /* XXX: sector size */ | #ifdef BD_SUPPORT_FRAGS /* XXX: sector size */ | ||||
char fragbuf[BIOSDISK_SECSIZE]; | char fragbuf[BIOSDISK_SECSIZE]; | ||||
size_t fragsize; | size_t fragsize; | ||||
▲ Show 20 Lines • Show All 418 Lines • Show Last 20 Lines |