root / lab4 / .minix-src / include / minix / bdev.h @ 14
History | View | Annotate | Download (1.64 KB)
1 | 13 | up20180614 | #ifndef _MINIX_BDEV_H
|
---|---|---|---|
2 | #define _MINIX_BDEV_H
|
||
3 | |||
4 | /* Common API. */
|
||
5 | extern void bdev_driver(dev_t dev, char *label); |
||
6 | |||
7 | /* Synchronous API. */
|
||
8 | extern int bdev_open(dev_t dev, int access); |
||
9 | extern int bdev_close(dev_t dev); |
||
10 | |||
11 | extern ssize_t bdev_read(dev_t dev, u64_t pos, char *buf, size_t count, |
||
12 | int flags);
|
||
13 | extern ssize_t bdev_write(dev_t dev, u64_t pos, char *buf, size_t count, |
||
14 | int flags);
|
||
15 | extern ssize_t bdev_gather(dev_t dev, u64_t pos, iovec_t *vec, int count, |
||
16 | int flags);
|
||
17 | extern ssize_t bdev_scatter(dev_t dev, u64_t pos, iovec_t *vec, int count, |
||
18 | int flags);
|
||
19 | extern int bdev_ioctl(dev_t dev, unsigned long request, void *buf, |
||
20 | endpoint_t user_endpt); |
||
21 | |||
22 | /* Asynchronous API. */
|
||
23 | typedef int bdev_id_t; |
||
24 | typedef void *bdev_param_t; |
||
25 | |||
26 | typedef void (*bdev_callback_t)(dev_t dev, bdev_id_t id, bdev_param_t param, |
||
27 | int result);
|
||
28 | |||
29 | extern void bdev_flush_asyn(dev_t dev); |
||
30 | |||
31 | extern bdev_id_t bdev_read_asyn(dev_t dev, u64_t pos, char *buf, size_t count, |
||
32 | int flags, bdev_callback_t callback, bdev_param_t param);
|
||
33 | extern bdev_id_t bdev_write_asyn(dev_t dev, u64_t pos, char *buf, size_t count, |
||
34 | int flags, bdev_callback_t callback, bdev_param_t param);
|
||
35 | extern bdev_id_t bdev_gather_asyn(dev_t dev, u64_t pos, iovec_t *vec,
|
||
36 | int count, int flags, bdev_callback_t callback, bdev_param_t param); |
||
37 | extern bdev_id_t bdev_scatter_asyn(dev_t dev, u64_t pos, iovec_t *vec,
|
||
38 | int count, int flags, bdev_callback_t callback, bdev_param_t param); |
||
39 | extern bdev_id_t bdev_ioctl_asyn(dev_t dev, unsigned long request, void *buf, |
||
40 | endpoint_t user_endpt, bdev_callback_t callback, bdev_param_t param); |
||
41 | |||
42 | extern int bdev_wait_asyn(bdev_id_t id); |
||
43 | |||
44 | extern void bdev_reply_asyn(message *m); |
||
45 | |||
46 | #endif /* _MINIX_BDEV_H */ |