aboutsummaryrefslogtreecommitdiff
path: root/board-qemu/slof/virtio-block.fs
diff options
context:
space:
mode:
Diffstat (limited to 'board-qemu/slof/virtio-block.fs')
-rw-r--r--board-qemu/slof/virtio-block.fs13
1 files changed, 13 insertions, 0 deletions
diff --git a/board-qemu/slof/virtio-block.fs b/board-qemu/slof/virtio-block.fs
index bc9013e..b3065b2 100644
--- a/board-qemu/slof/virtio-block.fs
+++ b/board-qemu/slof/virtio-block.fs
@@ -49,6 +49,15 @@ virtio-setup-vd VALUE virtiodev
virtiodev virtio-blk-read
;
+: write-blocks ( addr block# #blocks -- #written )
+ \ Do not allow writes to the partition table (GPT is in first 34 sectors)
+ over 22 < IF
+ ." virtio-blk ERROR: Write access to partition table is not allowed." cr
+ 3drop 0 EXIT
+ THEN
+ virtiodev virtio-blk-write
+;
+
\ Standard node "open" function
: open ( -- okay? )
open 0= IF false EXIT THEN
@@ -79,6 +88,10 @@ virtio-setup-vd VALUE virtiodev
s" read" deblocker @ $call-method
;
+: write ( addr len -- actual )
+ s" write" deblocker @ $call-method
+;
+
\ Set disk alias if none is set yet
: (set-alias)
s" disk" get-next-alias ?dup IF