home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Workbench / Dvices / FLD-FFS4.LHA / FFS43_11 / TrackDisk64 < prev   
Encoding:
Text File  |  1996-07-13  |  3.2 KB  |  97 lines

  1.  
  2.     $Id: TrackDisk64 1.2 1996/07/13 20:55:13 heinz Exp $
  3.  
  4. Support for large storage devices
  5. =================================
  6.  
  7. Up to and including V40 (OS 3.1), there was only support for disk
  8. like storage devices up to a size of 4GB. This text specifies a
  9. command set for 64 bit based access to trackdisk/scsidisk like
  10. drivers. It is based on the "new style device" standard which is
  11. described in the document "NewStyleCommands". Note that these
  12. commands may not be implemented unless the implementation fully
  13. conforms to the "new style device" standard. Note the
  14. recommendations and restrictions for NSDEVTYPE_TRACKDISK well.
  15.  
  16.  
  17. Command Set
  18. -----------
  19.  
  20. The command names are similar to their respective 32 bit
  21. counterparts.
  22.  
  23.     #define NSCMD_TD_READ64     0xc000
  24.     #define NSCMD_TD_WRITE64    0xc001
  25.     #define NSCMD_TD_SEEK64     0xc002
  26.     #define NSCMD_TD_FORMAT64   0xc003
  27.  
  28.  
  29. Transfer Offset and Size
  30. ------------------------
  31.  
  32. The transfer size used for io_Length is still an unsigned 32 bit
  33. value. This is not considered to be a problem. To specify a 64
  34. bit transfer offset, io_Actual is used for the upper 32 bit of the
  35. transfer offset when setting up a struct IOStdReq. io_Actual is
  36. aliased io_HighOffset for this purpose. The io_Offset field still
  37. represents the lower 32 bit of the 64 bit offset. It is necessary
  38. to reinitialize all the fields on every I/O operation as described
  39. in the official OS documentation.
  40.  
  41.  
  42. Implementation behaviour
  43. ------------------------
  44.  
  45. Any 64 bit command may be used in the full 64 bit range, including
  46. the current 32 bit range of course. The behaviour for both 32 bit
  47. and 64 bit commands is undefined if the respective range is
  48. exceeded via a offset/length combination. Obviously this should be
  49. avoided.
  50.  
  51.  
  52. Command Identification
  53. ----------------------
  54.  
  55. Identification of the availability of these new 64 bit commands
  56. must be tested according to the "new style device" standard.
  57.  
  58.  
  59. Recommended use
  60. ---------------
  61.  
  62. It is recommended that availability is tested once only, e.g. on
  63. startup of a filesystem. At that time it should be decided first
  64. wether the 32 bit command or the 64 bit commands need to be used
  65. as the test for 64 bit commands is obviously not necessary if 32
  66. bit is enough to do the job. This decision should remain firm, i.e.
  67. both command sets should not be mixed. If the access range lies
  68. completely within the 32 bit range, only the 32 bit commands should
  69. be used. If not, the 64 bit commands must be used. This can be
  70. achieved very easily by using variables for the command numbers.
  71. Note that there does not need to be a test if io_HighOffset should
  72. be set up. io_HighOffset can be set up for both sets of commands.
  73. For 32 bit commands, it will be ignored.
  74.  
  75.  
  76. Notes
  77. -----
  78.  
  79. This specification does not cover ETD commands. For ETD commands
  80. there is no 64 bit specification available. It is not expected at
  81. this time that there is a need.
  82.  
  83.  
  84. Acknowledgements
  85. ----------------
  86.  
  87. This document is largely based on previous work by Ralph Schmidt,
  88. Ralph Babel, Randell Jesup and others. Many thanks to them for
  89. working out all the necessary details. Without their work, there
  90. would not be a 64 bit command set. This document basically puts
  91. these details into the New Style Device frame to make them a
  92. standard part of the OS framework.
  93.  
  94.  
  95. Heinz Wrobel
  96. <heinz@amiga.de>
  97.