diff options
author | Matthew Fioravante <matthew.fioravante@jhuapl.edu> | 2012-10-09 10:39:08 +0100 |
---|---|---|
committer | Matthew Fioravante <matthew.fioravante@jhuapl.edu> | 2012-10-09 10:39:08 +0100 |
commit | 78ef2bb502c15bd7ef117a365e6afc7dee4ad71b (patch) | |
tree | 8c1bccdac8f713ad0a78567a4f5aa657aaae6c55 /extras/mini-os/include | |
parent | 8e19000995c69250aa60bf40bfd7f158a4894d44 (diff) | |
download | xen-78ef2bb502c15bd7ef117a365e6afc7dee4ad71b.tar.gz xen-78ef2bb502c15bd7ef117a365e6afc7dee4ad71b.tar.bz2 xen-78ef2bb502c15bd7ef117a365e6afc7dee4ad71b.zip |
minios: add posix io for blkfront
This patch adds posix io support (read,write,lseek) to block devices
using blkfront.
Signed-off-by: Matthew Fioravante <matthew.fioravante@jhuapl.edu>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyons.org>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'extras/mini-os/include')
-rw-r--r-- | extras/mini-os/include/blkfront.h | 10 | ||||
-rw-r--r-- | extras/mini-os/include/lib.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/extras/mini-os/include/blkfront.h b/extras/mini-os/include/blkfront.h index 724137eb45..3528af9d23 100644 --- a/extras/mini-os/include/blkfront.h +++ b/extras/mini-os/include/blkfront.h @@ -28,7 +28,17 @@ struct blkfront_info }; struct blkfront_dev *init_blkfront(char *nodename, struct blkfront_info *info); #ifdef HAVE_LIBC +#include <sys/stat.h> +/* POSIX IO functions: + * use blkfront_open() to get a file descriptor to the block device + * Don't use the other blkfront posix functions here directly, instead use + * read(), write(), lseek() and fstat() on the file descriptor + */ int blkfront_open(struct blkfront_dev *dev); +int blkfront_posix_rwop(int fd, uint8_t* buf, size_t count, int write); +#define blkfront_posix_write(fd, buf, count) blkfront_posix_rwop(fd, (uint8_t*)buf, count, 1) +#define blkfront_posix_read(fd, buf, count) blkfront_posix_rwop(fd, (uint8_t*)buf, count, 0) +int blkfront_posix_fstat(int fd, struct stat* buf); #endif void blkfront_aio(struct blkfront_aiocb *aiocbp, int write); #define blkfront_aio_read(aiocbp) blkfront_aio(aiocbp, 0) diff --git a/extras/mini-os/include/lib.h b/extras/mini-os/include/lib.h index 1af2717c0b..d4641b6e89 100644 --- a/extras/mini-os/include/lib.h +++ b/extras/mini-os/include/lib.h @@ -174,6 +174,7 @@ extern struct file { } tap; struct { struct blkfront_dev *dev; + off_t offset; } blk; struct { struct kbdfront_dev *dev; |