47 lines
1.6 KiB
C
47 lines
1.6 KiB
C
#ifndef _MINIX_BDEV_H
|
|
#define _MINIX_BDEV_H
|
|
|
|
/* Common API. */
|
|
extern void bdev_driver(dev_t dev, char *label);
|
|
|
|
/* Synchronous API. */
|
|
extern int bdev_open(dev_t dev, int access);
|
|
extern int bdev_close(dev_t dev);
|
|
|
|
extern ssize_t bdev_read(dev_t dev, u64_t pos, char *buf, size_t count,
|
|
int flags);
|
|
extern ssize_t bdev_write(dev_t dev, u64_t pos, char *buf, size_t count,
|
|
int flags);
|
|
extern ssize_t bdev_gather(dev_t dev, u64_t pos, iovec_t *vec, int count,
|
|
int flags);
|
|
extern ssize_t bdev_scatter(dev_t dev, u64_t pos, iovec_t *vec, int count,
|
|
int flags);
|
|
extern int bdev_ioctl(dev_t dev, int request, void *buf,
|
|
endpoint_t user_endpt);
|
|
|
|
/* Asynchronous API. */
|
|
typedef int bdev_id_t;
|
|
typedef void *bdev_param_t;
|
|
|
|
typedef void (*bdev_callback_t)(dev_t dev, bdev_id_t id, bdev_param_t param,
|
|
int result);
|
|
|
|
extern void bdev_flush_asyn(dev_t dev);
|
|
|
|
extern bdev_id_t bdev_read_asyn(dev_t dev, u64_t pos, char *buf, size_t count,
|
|
int flags, bdev_callback_t callback, bdev_param_t param);
|
|
extern bdev_id_t bdev_write_asyn(dev_t dev, u64_t pos, char *buf, size_t count,
|
|
int flags, bdev_callback_t callback, bdev_param_t param);
|
|
extern bdev_id_t bdev_gather_asyn(dev_t dev, u64_t pos, iovec_t *vec,
|
|
int count, int flags, bdev_callback_t callback, bdev_param_t param);
|
|
extern bdev_id_t bdev_scatter_asyn(dev_t dev, u64_t pos, iovec_t *vec,
|
|
int count, int flags, bdev_callback_t callback, bdev_param_t param);
|
|
extern bdev_id_t bdev_ioctl_asyn(dev_t dev, int request, void *buf,
|
|
endpoint_t user_endpt, bdev_callback_t callback, bdev_param_t param);
|
|
|
|
extern int bdev_wait_asyn(bdev_id_t id);
|
|
|
|
extern void bdev_reply_asyn(message *m);
|
|
|
|
#endif /* _MINIX_BDEV_H */
|