Hash :
837b7737
Author :
Date :
2006-08-18T09:07:34
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
\ FCode driver for hypothetical SCSI host adapter
hex
" XYZI,scsi" name \ Name of device node
" XYZI,12346-01" model \ Manufacturer's model number
" scsi-2" device-type \ Device implements SCSI-2 method set
3 0 intr \ Device interrupts on level 3, no vector
external
\ These routines may be called by the children of this device.
\ This card has no local buffer memory for the SCSI device, so it
\ depends on its parent to supply DMA memory. For a device with
\ local buffer memory, these routines would probably allocate from
\ that local memory.
: dma-alloc ( n -- vaddr ) " dma-alloc" $call-parent ;
: dma-free ( vaddr n -- ) " dma-free" $call-parent ;
: dma-sync ( vaddr devaddr n -- ) " dma-sync" $call-parent ;
: dma-map-in ( vaddr n cache? -- devaddr ) " dma-map-in" $call-parent ;
: dma-map-out ( vaddr devaddr n -- ) " dma-map-out" $call-parent ;
: max-transfer ( -- n )
" max-transfer" ['] $call-parent catch if 2drop h# 7fff.ffff then
\ The device imposes no size limitations of its own; if it did, those
\ limitations could be described here, perhaps by executing:
\ my-max-transfer min
;
fload scsiha.fs
fload hacom.fs
new-device
fload scsidisk.fs \ scsidisk.fs also loads scsicom.fs
finish-device
new-device
fload scsitape.fs \ scsitape.fs also loads scsicom.fs
finish-device
fcode-end