SD.4
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:6k
源码类别:

操作系统开发

开发平台:

C/C++

  1. .TH SD 4
  2. .SH NAME
  3. sd, st, sg - SCSI hard disk / tape / generic
  4. .SH DESCRIPTION
  5. The
  6. .BR sd* ,
  7. .BR st* ,
  8. .B sg*
  9. family of devices refer to the SCSI hard disk, tape and generic driver using
  10. the Adaptec 154x series of controllers.  This manual page only describes the
  11. differences between the sd and hd devices, read
  12. .BR hd (4)
  13. first.
  14. .PP
  15. The devices numbers of the SCSI devices are statically mapped onto the SCSI
  16. targets 0 to 7.  This is done like the hd devices with
  17. .B sd[0-4]
  18. referring to target 0,
  19. .B sd[5-9]
  20. to target 1, etc.  The logical unit number is always 0, because devices with
  21. more than one logical unit are virtually extinct.  The mapping may be changed
  22. from the boot environment however (see
  23. .BR boot (8)).
  24. .PP
  25. Tapes start at minor device 64, with
  26. .B nrst0
  27. at minor 64,
  28. .B rst0
  29. at 65,
  30. .B nrst1
  31. at 66, etc.  The mapping is again static to target (minor - 64) / 2.  The
  32. .B rst
  33. devices rewind the tape on close, the
  34. .B nrst
  35. devices do not.  See
  36. .BR mt (1),
  37. and
  38. .BR mtio (4)
  39. for a description of the commands that may be sent to the tape, either from
  40. the command prompt or from a program.
  41. .PP
  42. Through the eight raw generic devices
  43. .B rsg[0-7]
  44. starting at minor 120, one can send SCSI commands to any SCSI device
  45. from user mode.  (Minix-vmd only.)
  46. .PP
  47. The driver returns a drive geometry of 64 heads by 32 sectors per track for
  48. small disks with the DIOCGETP ioctl.  For large disks 255x63 is returned.
  49. The size in sectors is usually larger than
  50. the largest cylinder number indicates, because the disk is not likely to
  51. exactly match that faked geometry.  Note that DOS may not be able to access
  52. those last few sectors.
  53. .SS Disk like devices.
  54. Removable disks (floppies), CD-ROM's and WORM disks may also be accessed
  55. through the
  56. .B sd
  57. devices.  One is not allowed to write a WORM disk however, because it is
  58. likely to be taken from an alien operating system, so it seems safer to not
  59. allow Minix to stomp over it.  One usually needs special O.S. support to
  60. keep one from writing to the same block twice.
  61. .PP
  62. The
  63. .B DIOCEJECT
  64. ioctl ejects CD-ROMs, floppies, etc.  (See
  65. .BR eject (1).)
  66. A fixed disk spins down if it supports the stop command.
  67. .SS SCSI Tapes
  68. There are two types of SCSI tapes drives supported by the driver: fixed or
  69. variable block size tape drives.  Examples of the first kind are cartridge
  70. tapes, with a fixed 512 bytes block size.  An Exabyte tape drive has a
  71. variable block size, with a minimum of 1 byte and a maximum of 245760 bytes
  72. (see the documentation of such devices.)
  73. The maximum is truncated to 32767 bytes for Minix-86 and 61440 bytes for
  74. Minix-vmd, because the driver can't move more bytes in a single request.
  75. .PP
  76. A read or write to a fixed block size tape must be a precise multiple of the
  77. block size, any other count gives results in an I/O error.  A read from a
  78. variable block sized tape must be large enough to accept the block that is
  79. read, otherwise an I/O error will be returned.  A write can be any size
  80. above the minimum, creating a block of that size.  If the write count is
  81. larger than the maximum block size then more blocks are written until the
  82. count becomes zero.  The last block must be larger than the minimum of
  83. course.  (This minimum is often as small as 1 byte, as for the Exabyte.)
  84. .PP
  85. The
  86. .B mt blksize
  87. command may be used to select a fixed block size for a variable block sized
  88. tape.  This will speed up I/O considerably for small block sizes.  (Some
  89. systems can only use fixed mode and will write an Exabyte tape with 1024
  90. byte blocks, which read very slow in variable mode.)
  91. .PP
  92. A tape is a sequence of blocks and filemarks.  A tape may be opened and
  93. blocks may be read from it upto a filemark, after that all further reads
  94. return 0.  After the tape is closed and reopened one can read the blocks
  95. following the filemark if using a non-rewinding device.  This makes the tape
  96. look like a sequence of files.
  97. .PP
  98. If a tape has been written to or opened in write-only mode, then a filemark
  99. is written if the tape is closed or if a space command is issued.  No extra
  100. filemark is written if the drive is instructed to write filemarks.
  101. .SS Raw Generic Devices
  102. Under Minix-vmd one can use the generic SCSI devices to program a SCSI
  103. device entirely from user mode.  The disk and tape devices probe for devices
  104. when opened, start disks and load tapes, but the generic devices do nothing
  105. of this.  Given an open file descriptor to any SCSI character device (not
  106. just the generic devices) one can use the following ioctl:
  107. .PP
  108. .RS
  109. ioctl(fd, SCIOCCMD, &scsicmd)
  110. .RE
  111. .PP
  112. The structure whose address is passed as the third argument is defined
  113. in <sys/scsi.h> as follows:
  114. .PP
  115. .RS
  116. .nf
  117. struct scsicmd {
  118. void *cmd;
  119. size_t cmdlen;
  120. void *buf;
  121. size_t buflen;
  122. void *sense;
  123. size_t senselen;
  124. int dir;
  125. };
  126. .fi
  127. .RE
  128. .PP
  129. .B Cmd
  130. and
  131. .B cmdlen
  132. hold the address and length of an object holding a Group 0 or Group 1
  133. SCSI command.  The next two fields describe a buffer of at most 8 kilobytes
  134. used in the data in or out phase.
  135. .B Dir
  136. is 0 if data is to be read from the device, 1 if data is written to the
  137. device.  If the ioctl succeeds then 0 is returned, otherwise -1 with
  138. .B errno
  139. set to
  140. .B EIO
  141. and the request sense info returned in the buffer described by the sense and
  142. senselen fields.  If the sense key is zero on error then a host adapter
  143. error occurred, this means that the device is most likely turned off or not
  144. present.
  145. .SH FILES
  146. .TP 40
  147. /dev/sd[0-9], /dev/sd[1-46-9][a-d]
  148. Usual disk devices.
  149. .TP
  150. /dev/rst4, /dev/nrst4
  151. Usual tape device.
  152. .TP
  153. /dev/rsg[0-7]
  154. Raw generic devices.
  155. .SH "SEE ALSO"
  156. .BR hd (4),
  157. .BR mt (1),
  158. .BR eject (1),
  159. .BR mtio (4),
  160. .BR dd (1).
  161. .SH AUTHOR
  162. Kees J. Bot (kjb@cs.vu.nl)