|
|
1.1 ! root 1: \ ***************************************************************************** ! 2: \ * Copyright (c) 2011 IBM Corporation ! 3: \ * All rights reserved. ! 4: \ * This program and the accompanying materials ! 5: \ * are made available under the terms of the BSD License ! 6: \ * which accompanies this distribution, and is available at ! 7: \ * http://www.opensource.org/licenses/bsd-license.php ! 8: \ * ! 9: \ * Contributors: ! 10: \ * IBM Corporation - initial implementation ! 11: \ ****************************************************************************/ ! 12: ! 13: ." Populating " pwd cr ! 14: ! 15: s" network" device-type ! 16: ! 17: 0 VALUE virtfs-rx-buffer ! 18: 0 VALUE virtfs-tx-buffer ! 19: FALSE VALUE initialized? ! 20: ! 21: 2000 CONSTANT VIRTFS-BUF-SIZE \ 8k ! 22: ! 23: /vd-len BUFFER: virtiodev ! 24: virtiodev virtio-setup-vd ! 25: ! 26: \ ! 27: \ Support methods. ! 28: ! 29: : shutdown ( -- ) ! 30: initialized? 0= IF EXIT THEN ! 31: virtiodev virtio-fs-shutdown ! 32: virtfs-rx-buffer VIRTFS-BUF-SIZE free-mem ! 33: virtfs-tx-buffer VIRTFS-BUF-SIZE free-mem ! 34: FALSE to initialized? ! 35: ; ! 36: ! 37: : init ( -- success ) ! 38: VIRTFS-BUF-SIZE alloc-mem to virtfs-rx-buffer ! 39: VIRTFS-BUF-SIZE alloc-mem to virtfs-tx-buffer ! 40: ! 41: virtiodev ( dev ) ! 42: virtfs-tx-buffer ( dev tx ) ! 43: virtfs-rx-buffer ( reg tx rx ) ! 44: VIRTFS-BUF-SIZE ( reg tx rx size ) ! 45: virtio-fs-init ( success ) ! 46: ! 47: dup IF ! 48: TRUE to initialized? ! 49: ['] shutdown add-quiesce-xt ! 50: THEN ! 51: ; ! 52: ! 53: \ ! 54: \ Standard network interface. ! 55: ! 56: : open ( -- okay? ) ! 57: open 0= IF false EXIT THEN ! 58: initialized? 0= IF ! 59: init 0= IF false EXIT THEN ! 60: THEN ! 61: true ! 62: ; ! 63: ! 64: : load ( addr -- len ) ! 65: virtiodev swap ( dev addr ) ! 66: my-args ( dev addr str strlen ) ! 67: 1 + \ hack to make the following allocate 1 more byte ! 68: \-to-/ \ convert path elements ! 69: 1 - 2dup + 0 swap c! drop ! 70: virtio-fs-load ( length ) ! 71: ; ! 72: ! 73: : close ( -- ) ! 74: initialized? IF ! 75: shutdown ! 76: THEN ! 77: close ! 78: ; ! 79: ! 80: : ping ( -- ) ! 81: cr s" ping not supported for this device" type cr cr ! 82: ; ! 83: ! 84: ! 85: : (set-alias) ! 86: " virtfs" find-alias 0= IF ! 87: " virtfs" get-node node>path set-alias ! 88: ELSE THEN ! 89: ; ! 90: ! 91: \ ! 92: \ Init the module. ! 93: ! 94: (set-alias)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.