aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/include
diff options
context:
space:
mode:
authorMatthew Fioravante <matthew.fioravante@jhuapl.edu>2012-10-09 10:39:08 +0100
committerMatthew Fioravante <matthew.fioravante@jhuapl.edu>2012-10-09 10:39:08 +0100
commit78ef2bb502c15bd7ef117a365e6afc7dee4ad71b (patch)
tree8c1bccdac8f713ad0a78567a4f5aa657aaae6c55 /extras/mini-os/include
parent8e19000995c69250aa60bf40bfd7f158a4894d44 (diff)
downloadxen-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.h10
-rw-r--r--extras/mini-os/include/lib.h1
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;