mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
devfs: use iovec_iterator internally
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <kernel/iovec.h>
|
||||
|
||||
#define BLOCK_TYPE_DISK 0
|
||||
#define BLOCK_TYPE_PART 1
|
||||
@@ -15,8 +16,8 @@ typedef struct {
|
||||
uintmax_t lbaoffset;
|
||||
size_t blockcapacity;
|
||||
size_t blocksize;
|
||||
int (*write)(void *private, void *buffer, uintmax_t lba, size_t count);
|
||||
int (*read)(void *private, void *buffer, uintmax_t lba, size_t count);
|
||||
int (*write)(void *private, iovec_iterator_t *buffer, uintmax_t lba, size_t count);
|
||||
int (*read)(void *private, iovec_iterator_t *buffer, uintmax_t lba, size_t count);
|
||||
} blockdesc_t;
|
||||
|
||||
void block_register(blockdesc_t *desc, char *name);
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <kernel/poll.h>
|
||||
#include <hashtable.h>
|
||||
#include <kernel/iovec.h>
|
||||
|
||||
#define DEV_MAJOR_NULL 1
|
||||
#define DEV_MAJOR_FULL 2
|
||||
@@ -23,8 +24,8 @@
|
||||
typedef struct {
|
||||
int (*open)(int minor, vnode_t **vnode, int flags);
|
||||
int (*close)(int minor, int flags);
|
||||
int (*read)(int minor, void *buffer, size_t size, uintmax_t offset, int flags, size_t *readc);
|
||||
int (*write)(int minor, void *buffer, size_t size, uintmax_t offset, int flags, size_t *writec);
|
||||
int (*read)(int minor, iovec_iterator_t *iovec_iterator, size_t size, uintmax_t offset, int flags, size_t *readc);
|
||||
int (*write)(int minor, iovec_iterator_t *iovec_iterator, size_t size, uintmax_t offset, int flags, size_t *writec);
|
||||
int (*poll)(int minor, polldata_t *data, int events);
|
||||
int (*mmap)(int minor, void *addr, uintmax_t offset, int flags);
|
||||
int (*munmap)(int minor, void *addr, uintmax_t offset, int flags);
|
||||
|
||||
Reference in New Issue
Block a user