add directory Minix

This commit is contained in:
gohigh
2024-02-19 00:21:39 -05:00
parent 56596ada90
commit 5a46ddb732
2923 changed files with 1764412 additions and 0 deletions

View File

@@ -0,0 +1,221 @@
<HTML>
<HEAD>
<TITLE>console(4)</TITLE>
</HEAD>
<BODY>
<H1>console(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
console, keyboard, log - system console
</PRE>
<H2>DESCRIPTION</H2><PRE>
The TTY device driver manages two devices related to the main user
interface, the system screen and the keyboard. These two together are
named "the Console".
<STRONG>The</STRONG> <STRONG>Screen</STRONG>
The screen of a PC can be managed by a Monochrome Display Adapter, a
Hercules card, a Color Graphics Adapter, an Enhanced Graphics Adapter, or
a Video Graphics Array. To the console driver these devices are seen as
a block of video memory into which characters can be written to be
displayed, an I/O register that sets the video memory origin to the
character that is to be displayed on the top-left position of the screen,
and an I/O register that sets the position of the hardware cursor. Each
character within video memory is a two-byte word. The low byte is the
character code, and the high byte is the "attribute byte", a set of bits
that controls the way the character is displayed, character and
background colours for a colour card, or intensity/underline/reverse
video for monochrome.
These are the characteristics of the adapters in text mode:
Adapter Usable memory Mono/Colour
MDA 4K M
Hercules 4K M
CGA 16K C
EGA 32K M or C
VGA 32K M or C
MDA and Hercules are the same to the console driver, because the graphics
mode of the Hercules is of no use to Minix. EGA and VGA are also mostly
seen as the same in text mode. An EGA adapter is either a monochrome or
a colour device depending on the screen attached to it. A VGA adapter
can run in either monochrome or colour (grayscale) mode depending on how
the Boot Monitor has initialized it.
The driver uses the video origin to avoid copying the screen contents
when scrolling up or down. Instead, the origin is simply moved one line.
This is named "hardware scrolling", as opposed to copying memory:
"software scrolling".
The video origin is also used to implement several virtual consoles
inside the video memory of the adapter. Each virtual console gets a
segment of video memory. The driver chooses which console to display by
moving the video origin. Note that an MDA or Hercules adapter can only
support one console. CGA can support up to four 80x25 consoles, and EGA
and VGA can have eight. It is best to configure one less console to
leave some video memory free so that hardware scrolling has some space to
work in.
Character codes are used as indices into a display font that is stored in
the adapter. The default font is the IBM character set, which is an
ASCII character set in the low 128 codes, and a number of mathematical,
greek, silly graphics, and accented characters in the upper 128 codes.
This font is fixed in the MDA, Hercules and CGA adapters, but can be
replaced by a user selected font for the EGA and VGA adapters.
A number of control characters and escape sequences are implemented by
the driver. The result is upward compatible with the ANSI standard
terminal. The <STRONG><A HREF="../man5/termcap.5.html">termcap(5)</A></STRONG> type is <STRONG>minix</STRONG>. Normal characters written to
the console are displayed at the cursor position and the cursor is
advanced one column to the right. If an entire line is filled then the
cursor wraps to the first column of the next line when the next character
must be displayed. The screen is scrolled up if needed to start a new
line. Some characters have special effects when sent to the console.
Some even have arguments in the form of comma separated decimal numbers.
These numbers default to the lowest possible value when omitted. The
top-left character is at position (1, 1). The following control
characters and escape sequences are implemented by the console:
Sequence Name Function
^@ Null Ignored (padding character)
^G Bell Produce a short tone from the speaker
^H Backspace Move the cursor back one column, wrapping
from the left edge up one line to the
right edge
^I Horizontal Tab Move to the next tab stop, with each tab
stop at columns 1, 9, 25, etc. Wrap to
the next line if necessary.
^J Line Feed Move one line down, scrolling the screen
up if necessary
^K Vertical Tab Same as LF
^L Form Feed Same as LF
^M Carriage Return Move to column 1
^[ Escape Start of an escape sequence
^[M Reverse Index Move one line up, scrolling the screen
down if necessary
^[[<EM>n</EM>A Cursor Up Move the cursor up <EM>n</EM> lines
^[[<EM>n</EM>B Cursor Down Move the cursor down <EM>n</EM> lines
^[[<EM>n</EM>C Cursor Forward Move the cursor right <EM>n</EM> columns
^[[<EM>n</EM>D Cursor Backward Move the cursor left <EM>n</EM> columns
^[[<EM>m</EM>;<EM>n</EM>H Cursor Position Move the cursor to line <EM>m</EM>, column <EM>n</EM>
^[[<EM>s</EM>J Erase in Display Clear characters as follows:
<EM>s</EM> = 0: From cursor to end of screen
<EM>s</EM> = 1: From start of screen to cursor
<EM>s</EM> = 2: Entire screen
^[[<EM>s</EM>K Erase in Line Clear characters as follows:
<EM>s</EM> = 0: From cursor to end of line
<EM>s</EM> = 1: From start of line to cursor
<EM>s</EM> = 2: Entire line
^[[<EM>n</EM>L Insert Lines Insert <EM>n</EM> blank lines
^[[<EM>n</EM>M Delete Lines Delete <EM>n</EM> lines
^[[<EM>n</EM>@ Insert Characters Insert <EM>n</EM> blank characters
^[[<EM>n</EM>P Delete Characters Delete <EM>n</EM> characters
^[[<EM>n</EM>m Character Attribute Set character attribute as follows:
<EM>n</EM> = 0: Normal (default) attribute
<EM>n</EM> = 1: Bold (mono) / Yellow (colour)
<EM>n</EM> = 4: Underline (M) / Light green (C)
<EM>n</EM> = 5: Blinking (M) / Magenta (C)
<EM>n</EM> = 7: Reverse Video
<EM>n</EM> = 30: Black foreground colour
<EM>n</EM> = 31: Red
<EM>n</EM> = 32: Green
<EM>n</EM> = 33: Orange
<EM>n</EM> = 34: Blue
<EM>n</EM> = 35: Magenta
<EM>n</EM> = 36: Light blue
<EM>n</EM> = 37: White
<EM>n</EM> = 40 - 47: Same for background colour
The console device implements the following ioctl to copy a font into
font memory on EGA and VGA adapters:
<STRONG>ioctl(</STRONG><EM>fd</EM><STRONG>,</STRONG> <STRONG>TIOCSFON,</STRONG> <STRONG>u8_t</STRONG> <EM>font</EM><STRONG>[256][32]);</STRONG>
Font memory consists of 256 character definitions of 32 lines per
character and 8 pixels per line. The first line is the topmost line of
the character. The leftmost pixel is lit if the most significant bit of
a line is set, etc. The 80x25 video mode used by Minix has an 8x16
character cell, which means that only the first 16 lines of a character
are displayed.
<STRONG>The</STRONG> <STRONG>Keyboard</STRONG>
The keyboard produces key codes for each key that is pressed. These keys
are transformed into character codes or sequences according to the
current keyboard translation table. The format of this table is
described in <STRONG><A HREF="../man5/keymap.5.html">keymap(5)</A></STRONG>. The character codes can be read from the console
device unless they map to special hotkeys. The hotkeys are as follows:
Name Key Function
CTRL-ALT-DEL Send an abort signal to process 1 (init). Init then
halts the system
CTRL-ALT-KP-. Likewise for keypad period
F1 Process table dump
F2 Show memory map
F3 Toggle software/hardware scrolling
F5 Show network statistics
CTRL-F7 Send a quit signal to all processes connected to the
console
CTRL-F8 Send an interrupt signal
CTRL-F9 Send a kill signal. If CTRL-F8 or CTRL-F7 don't get
'em, then this surely will. These keys are for
disaster recovery. You would normally use DEL and
CTRL-\ to send interrupt and quit signals.
ALT-F1 Select virtual console 0 (/dev/console)
ALT-F2 Select virtual console 1 (/dev/ttyc1)
ALT-F(<EM>n</EM>+1) Select virtual console <EM>n</EM> (/dev/ttyc<EM>n</EM>)
ALT-Left Select previous virtual console
ALT-Right Select next virtual console
The keyboard map is set with the <STRONG>KIOCSMAP</STRONG> ioctl whose precise details are
currently hidden in the <STRONG>loadkeys</STRONG> utility.
<STRONG>Log</STRONG> <STRONG>device</STRONG>
The <STRONG>log</STRONG> device can be used by processes to print debug messages onto the
console. The console is a terminal type device, so it is taken from
processes when a session leader exits. This does not happen with the log
device.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man4/tty.4.html">tty(4)</A></STRONG>, <STRONG><A HREF="../man1/loadkeys.1.html">loadkeys(1)</A></STRONG>, <STRONG><A HREF="../man5/keymap.5.html">keymap(5)</A></STRONG>, <STRONG><A HREF="../man8/boot.8.html">boot(8)</A></STRONG>.
</PRE>
<H2>NOTES</H2><PRE>
Output processing turns Line Feeds into CR LF sequences. Don't let this
surprise you. Either turn off output processing or use one of the
synonyms for LF.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,225 @@
<HTML>
<HEAD>
<TITLE>dev(4)</TITLE>
</HEAD>
<BODY>
<H1>dev(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
dev - device files in /dev
</PRE>
<H2>DESCRIPTION</H2><PRE>
Device files are the eyes and ears of the system. Through the device
files one has access to the disks, terminals and other parts of the
machine. Single bytes or disk blocks may be transferred to or from a
device with ordinary <STRONG><A HREF="../man2/read.2.html">read(2)</A></STRONG> or <STRONG><A HREF="../man2/write.2.html">write(2)</A></STRONG> calls, byte positions set with
<STRONG><A HREF="../man2/lseek.2.html">lseek(2)</A></STRONG>, or more complicated control functions performed with <STRONG>ioctl(2).</STRONG>
Device files as found in <STRONG>/dev</STRONG> have several attributes that must be
considered. Here are two examples as <STRONG>ls</STRONG> <STRONG>-l</STRONG> shows them:
brw-rw-rw- 1 root operator 2, 1 Jun 10 1995 fd1
crw--w---- 1 kjb tty 4, 0 May 11 09:41 console
Most attributes are the same as for a regular file and have the same
function. The file type and the major and minor device numbers are
special to devices.
Character devices are marked with a <STRONG>c</STRONG> as a file type letter. Any I/O on
a character device is sent down to the device driver without any
interpretation. This means that a process doing the I/O must know the
characteristics of the device and deal with them appropriately.
Block devices provoke the file system server into buffering the data on
those devices. Data read or written by processes is passed through the
file system block cache. Unaligned bytes read or written are extracted
or reassembled by the file server from or to whole blocks in the cache.
The file server transfers data to or from the device driver as blocks to
positions at block size boundaries. These blocks are Minix blocks of
1024 bytes, disk devices usually have a 512 byte block size. Only block
devices can be mounted as part of the file system tree if they contain a
Minix file system.
The major device number (2 for <STRONG>fd1</STRONG> and 4 for <STRONG>console</STRONG>) are used by FS to
find the device driver that manages a device. The minor device number (1
for <STRONG>fd1</STRONG> and 0 for <STRONG>console</STRONG>) is passed to the driver to select a device
among a number of related devices that are all managed by that driver.
The device drivers are usually kernel tasks under Minix, small processes
that are contained within the address space of the kernel. The following
tasks and associated devices exist:
<STRONG>Memory</STRONG> <STRONG>(major</STRONG> <STRONG>1)</STRONG>
The <STRONG>ram</STRONG>, <STRONG>mem</STRONG>, <STRONG>kmem</STRONG>, and <STRONG>null</STRONG> devices are managed by the memory task. The
<STRONG>ram</STRONG> device is a block device for a chunk of memory that is the RAM disk.
Any byte read from or written to the <STRONG>ram</STRONG> device is copied from or to that
memory chunk. The <STRONG>mem</STRONG> device is a character device for the entire
address space of the system, but <STRONG>kmem</STRONG> only for the kernel data area.
These two devices allow programs like <STRONG><A HREF="../man1/ps.1.html">ps(1)</A></STRONG> to hunt around the system
looking for interesting bits. The <STRONG>null</STRONG> device is a data sink. It
happily swallows any bytes written to it, and returns nothing on a read.
<STRONG>Floppy</STRONG> <STRONG>disk</STRONG> <STRONG>(major</STRONG> <STRONG>2)</STRONG>
The <STRONG>fd0</STRONG>, <STRONG>fd0a</STRONG>, <STRONG>fd0b</STRONG>, <STRONG>fd0c</STRONG>, and <STRONG>fd0d</STRONG> block devices are the first floppy
disk and the four partitions that may exist on a that floppy disk.
Likewise are <STRONG>fd1</STRONG> and <STRONG>fd1[a-d]</STRONG> the device and partitions for the second
floppy disk. The floppy disk devices are described in detail in <STRONG><A HREF="../man4/fd.4.html">fd(4)</A></STRONG>.
Partitioning in general is explained in <STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG>.
<STRONG>Hard</STRONG> <STRONG>disk</STRONG> <STRONG>(major</STRONG> <STRONG>3)</STRONG>
The first hard disk can be accessed by block device <STRONG>hd0</STRONG>. This device
addresses the entire hard disk from the first to the last sector. A hard
disk is normally partitioned in up to four primary partitions, <STRONG>hd1</STRONG>, <STRONG>hd2</STRONG>,
<STRONG>hd3</STRONG>, and <STRONG>hd4</STRONG>. Each of these devices accesses a range of sectors on the
<STRONG>hd0</STRONG> device. It is customary to give each operating system on a disk a
primary partition. So the MS-DOS C: "drive" can be on <STRONG>hd1</STRONG>, and Minix can
be on <STRONG>hd2</STRONG>. Minix wants to have several partitions on its own, so <STRONG>hd2</STRONG> can
be further subdivided into the subpartitions <STRONG>hd2a</STRONG>, <STRONG>hd2b</STRONG>, <STRONG>hd2c</STRONG>, and <STRONG>hd2d</STRONG>.
<STRONG>/dev</STRONG> contains devices for the first and second hard disk (<STRONG>hd0</STRONG> and <STRONG>hd5</STRONG>)
their primary partitions (<STRONG>hd[1-46-9]</STRONG>) and subpartitions thereof
(<STRONG>hd[1-46-9][a-d]</STRONG>). More detail can be found in <STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG>.
<STRONG>Terminals</STRONG> <STRONG>(minor</STRONG> <STRONG>4)</STRONG>
The TTY driver manages the system console device, aptly named <STRONG>console</STRONG>,
the serial lines, <STRONG>tty00</STRONG> and <STRONG>tty01</STRONG>, and the pseudo ttys. Through the
console device one can display characters on a screen attached to a
monochrome, Hercules, color, or VGA adapter. The <STRONG>ttyc1</STRONG>, <STRONG>ttyc2</STRONG>, etc.
devices are the so-called "virtual consoles" that share the one console
display. One can select which virtual console is to be visible on the
screen and take input from the keyboard. To allow remote login the
devices with minor numbers of 128 or higher offer virtual terminals.
These pseudo ttys come in tty, pty pairs that form a pipe between
processes running under the tty, and a controlling process attached to
the pty side. See also <STRONG><A HREF="../man4/console.4.html">console(4)</A></STRONG>, and <STRONG><A HREF="../man4/tty.4.html">tty(4)</A></STRONG>.
<STRONG>Anonymous</STRONG> <STRONG>TTY</STRONG> <STRONG>(major</STRONG> <STRONG>5)</STRONG>
This is just one device named <STRONG>tty</STRONG> that is a synonym for the controlling
tty of a process. This device is not managed by any device driver, but
is handled by FS itself. A process can get access to the terminal it is
running under by using <STRONG>/dev/tty</STRONG>.
<STRONG>Line</STRONG> <STRONG>printer</STRONG> <STRONG>(major</STRONG> <STRONG>6)</STRONG>
The <STRONG>lp</STRONG> device sends any bytes written to it to the printer.
<STRONG>TCP/IP</STRONG> <STRONG>(major</STRONG> <STRONG>7)</STRONG>
The TCP/IP task is not a kernel task, but a server like MM and FS. It
sits between FS and the DP8390 task that manages the ethernet boards.
Together they implement the TCP/IP protocol. See also <STRONG><A HREF="../man4/ip.4.html">ip(4)</A></STRONG>.
<STRONG>CD</STRONG>-<STRONG>ROM</STRONG> <STRONG>(major</STRONG> <STRONG>8)</STRONG>
This is the CD-ROM driver for the Mitsumi proprietary CD-ROM interface.
The <STRONG>cd0</STRONG> device addresses the whole CD, with extra <STRONG>cd[1-4]</STRONG> and
<STRONG>cd[1-4][a-d]</STRONG> devices for if the CD also contains partitions with Minix
file systems.
<STRONG>SCSI</STRONG> <STRONG>disks</STRONG> <STRONG>and</STRONG> <STRONG>tapes</STRONG> <STRONG>(major</STRONG> <STRONG>10)</STRONG>
The <STRONG>sd*</STRONG> devices are disks in the same way as the <STRONG>hd*</STRONG> devices. Except
that these disks are SCSI disks attached to an Adaptec 1540 controller or
compatible. The driver also manages the <STRONG>rst*</STRONG> and <STRONG>nrst*</STRONG> tape devices
(rewinding or non-rewinding). See <STRONG><A HREF="../man4/sd.4.html">sd(4)</A></STRONG>.
<STRONG>Audio</STRONG> <STRONG>(major</STRONG> <STRONG>13)</STRONG>
The <STRONG>audio</STRONG> device can be used to produce or record air vibrations using a
Soundblaster 16 type audio card. See <STRONG><A HREF="../man4/audio.4.html">audio(4)</A></STRONG>.
<STRONG>Mixer</STRONG> <STRONG>(major</STRONG> <STRONG>14)</STRONG>
The <STRONG>mixer</STRONG> device is used to control the audio driver.
</PRE>
<H2>FILES</H2><PRE>
<STRONG>/dev/*</STRONG> All Minix devices
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man2/read.2.html">read(2)</A></STRONG>, <STRONG><A HREF="../man2/write.2.html">write(2)</A></STRONG>, <STRONG><A HREF="../man2/lseek.2.html">lseek(2)</A></STRONG>, <STRONG><A HREF="../man2/ioctl.2.html">ioctl(2)</A></STRONG>, <STRONG><A HREF="../man4/console.4.html">console(4)</A></STRONG>, <STRONG><A HREF="../man4/fd.4.html">fd(4)</A></STRONG>, <STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG>, <STRONG><A HREF="../man4/ip.4.html">ip(4)</A></STRONG>,
<STRONG><A HREF="../man4/sd.4.html">sd(4)</A></STRONG>, <STRONG><A HREF="../man4/tty.4.html">tty(4)</A></STRONG>, <STRONG><A HREF="../man8/MAKEDEV.8.html">MAKEDEV(8)</A></STRONG>.
</PRE>
<H2>DIAGNOSTICS</H2><PRE>
There are five prominent errors that processes accessing device files may
provoke:
ENODEV - No such device
There is no driver managing the device class this device belongs to.
Either the driver is configured out, or it is not loaded (inet).
ENXIO - No such device or address
This device is not available. Either the driver does not support it
at all, or the hardware isn't available, i.e. accessing the second
disk on a system with only one disk.
EACCES - Permission denied
This error may cause a lot of head scratching if <STRONG>ls</STRONG> <STRONG>-l</STRONG> shows a
device file to be writable. The media you are trying to access is
simply physically write protected!
EINVAL - Invalid argument
Devices may not like reads or writes that are not block multiples,
or very big transfers, etc. The device manual page should list the
limits.
EIO - I/O error
This may be a real I/O error, i.e. a read or write on the device
failing due to a media error. But it may also be the result of an
operation that a device can't do, or an empty tape drive, etc.
</PRE>
<H2>NOTES</H2><PRE>
Some devices are not present by default. The <STRONG>MAKEDEV</STRONG> script knows how to
make them.
<STRONG>MS</STRONG>-<STRONG>DOS</STRONG> <STRONG>equivalents</STRONG>
The names of MS-DOS devices map to Minix devices as follows:
A: fd0
B: fd1
C: hd1, sd1 (usually the first partition)
D: hd6, sd1, sd6 (or an extended partition)
CON console
COM1 tty00 (UNIX counts from 0)
LPT1 lp
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

Binary file not shown.

View File

@@ -0,0 +1,123 @@
<HTML>
<HEAD>
<TITLE>fd(4)</TITLE>
</HEAD>
<BODY>
<H1>fd(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
fd - floppy disk
</PRE>
<H2>DESCRIPTION</H2><PRE>
The <STRONG>fd*</STRONG> devices refer to the Floppy disk driver using the NEC PD765
floppy disk controller. These diskettes are arrays of 512 byte sectors,
although Minix always works with two sectors at a time due to its 1024
byte block size. You can read or write any number of bytes however,
Minix takes care of cutting and pasting incomplete blocks together.
The driver is normally configured for two floppy disk devices <STRONG>fd0</STRONG> and
<STRONG>fd1</STRONG>. It can handle two more, but it is unlikely that the average PC can.
On the first access to an <STRONG>fd</STRONG> device (by <STRONG><A HREF="../man2/open.2.html">open(2)</A></STRONG> or <STRONG><A HREF="../man2/mount.2.html">mount(2)</A></STRONG>), the driver
will execute a series of read tests to determine the floppy type. This
works ok for all floppy types except the true 360k type, because it is
indistinguishable from the 720k type. This only means that the size of
the floppy is not estimated right.
Bits 2-6 of the minor device number may be set to the floppy disk type to
make it known to the driver what type of diskette it is reading or
writing. The non-auto devices should be used for formatting, or when one
wants to be absolutely sure that the device is accessed right. These
devices exist for drive 0:
type device minor media
0 fd0 0 autodetect
1 pc0 4 360k, 5.25"
2 at0 8 1.2M, 5.25"
3 qd0 12 360k in a 720k, 5.25" drive
4 ps0 16 720k, 3.5"
5 pat0 20 360k in a 1.2M, 5.25" drive
6 qh0 24 720k in a 1.2M, 5.25" drive
7 PS0 28 1.44M, 3.5"
Type 4 may also be used for the rarely seen 720k, 5.25" floppies (type 2
made them obsolete fast.) Note that these "types" only describe the
floppies from a software point of view, type 1 and 4 drives use the same
parameters.
If the format bit (bit 7) is set, then the driver interprets write
commands as track formatting requests. This is used by the <STRONG><A HREF="../man1/format.1.html">format(1)</A></STRONG>
command.
If the type bits are set to 28, 29, 30, or 31, then the driver uses a
partition table found in sector 0 to partition the floppy. The
partitions of <STRONG>fd0</STRONG> may be accessed as <STRONG>fd0a</STRONG> through <STRONG>fd0d</STRONG>. See <STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG> for a
description of the partition table, and associated ioctl commands.
</PRE>
<H2>FILES</H2><PRE>
/dev/fd[0-3], /dev/pc[0-3], /dev/at[0-3], /dev/qd[0-3], /dev/ps[0-3],
/dev/pat[0-3], /dev/qh[0-3], /dev/PS[0-3], /dev/fd[0-3][a-d]
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/format.1.html">format(1)</A></STRONG>, <STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG>, <STRONG><A HREF="../man8/part.8.html">part(8)</A></STRONG>.
</PRE>
<H2>BUGS</H2><PRE>
The driver does not know the size of a 360k diskette in a 360k 5.25"
drive, because it uses the 720k parameters for it. So it will happily
try to read past the end making all kinds of interesting noises. It's a
good thing these drives are practically obsolete.
The partition table is only read when the drive motor is off and only for
an auto or partition device. The driver assumes that a floppy in a drive
with a running motor can't have been replaced all of a sudden.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,175 @@
<HTML>
<HEAD>
<TITLE>hd(4)</TITLE>
</HEAD>
<BODY>
<H1>hd(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
hd - winchester hard disk
</PRE>
<H2>DESCRIPTION</H2><PRE>
The <STRONG>hd*</STRONG> family of devices refer to the Winchester hard disk drivers for
the IBM XT, AT and PS/2 machines, but may also refer to the generic (and
slower) BIOS based hard disk driver. These disks are arrays of 512 byte
sectors, although Minix always works with two sectors at a time due to
its 1024 byte block size. You can read or write any number of bytes
however, Minix takes care of cutting and pasting incomplete blocks
together.
The devices may be divided into three classes:
The devices with a minor device number that is a multiple of 5, i.e.
<STRONG>hd0</STRONG> or <STRONG>hd5</STRONG>, refer to the whole hard disk 0 and 1. Through these
devices one has access to any block on the hard disk. Most notably
the partition table, that can be found in the first sector of the
disk.
The devices with a minor device number that is not a multiple of 5,
i.e. <STRONG>hd1</STRONG>, <STRONG>hd2</STRONG>, ..., <STRONG>hd6</STRONG>, ..., refer to primary partitions of the
lower numbered whole hard disk device. These devices normally
contain MS-DOS or Minix file systems. /dev/hd1 is often the MS-DOS
C: drive.
Minor devices from 128 up may refer to Minix subpartitions within
primary partitions if a subpartition table has been placed in a
Minix primary partition. The subpartitions of <STRONG>hd3</STRONG> for instance, are
named <STRONG>hd3a</STRONG> through <STRONG>hd3d</STRONG>. Their minor device numbers may be
calculated as 128 + 16*drive + 4*partition + subpartition, counting
the partitions from zero.
If a primary partition is an extended partition then up to four logical
partitions can be accessed as subpartitions of that extended partition.
This allows one to access foreign file systems of other operating
systems, Minix file systems are not normally placed in logical
partitions.
</PRE>
<H2>PARTITIONING</H2><PRE>
The first sector of a drive (or partition for subpartitioning) contains
the partition table at byte offset 446. This is what each of the four
entries looks like as defined in &lt;ibm/partition.h&gt;:
/* Description of entry in the partition table. */
struct part_entry {
unsigned char bootind; /* boot indicator 0/ACTIVE_FLAG */
unsigned char start_head; /* head value for first sector */
unsigned char start_sec; /* sector value + high 2 cyl bits */
unsigned char start_cyl; /* low 8 cylinder bits */
unsigned char sysind; /* system indicator */
unsigned char last_head; /* h/s/c for the last sector */
unsigned char last_sec;
unsigned char last_cyl;
unsigned long lowsec; /* logical first sector */
unsigned long size; /* size of partition in sectors */
};
#define ACTIVE_FLAG 0x80 /* value for active in bootind field */
#define NR_PARTITIONS 4 /* number of entries in table */
#define PART_TABLE_OFF 0x1BE /* offset of table in boot sector */
/* Partition types (sysind). */
#define MINIX_PART 0x81 /* Minix partition type */
#define NO_PART 0x00 /* unused entry */
#define OLD_MINIX_PART 0x80 /* created before 1.4b, obsolete */
#define EXT_PART 0x05 /* extended partition */
The cylinder numbers are encoded in a very strange way, bits 8 and 9 are
in the high two bits of the sector number. The sector numbers count from
1, not 0! More useful are the lowsec and size fields however, they
simply give the location of the partition as an absolute sector offset
and length within the drive.
The partition table entry defined above is specific to IBM type disks.
The device drivers use another partition entry structure to pass
information on a partition. This is what &lt;minix/partition.h&gt; looks like:
struct partition {
u64_t base; /* byte offset to the partition start */
u64_t size; /* number of bytes in the partition */
unsigned cylinders; /* disk geometry for partitioning */
unsigned heads;
unsigned sectors;
};
The base and size fields are the byte offset and length of a partition.
(These are 64 bit numbers under Minix-vmd, but only 32 bit numbers under
standard Minix.) The geometry of the disk is also given for the benefit
of partition table editors. This information can be obtained from an
open disk device with the call:
<STRONG>ioctl(</STRONG><EM>fd</EM><STRONG>,</STRONG> <STRONG>DIOCGETP,</STRONG> <STRONG>&amp;</STRONG><EM>entry</EM><STRONG>);</STRONG>
One can change the placement of the device to the lowsec and size fields
of <EM>entry</EM> by using the <STRONG>DIOCSETP</STRONG> call instead. Only the base and size
fields are used for <STRONG>DIOCSETP</STRONG>.
The partition tables when read from disk by the driver are checked and
truncated to fit within the primary partition or drive. The first sector
should be left free for the partition table.
The partition tables are read when the in-use count (opens and mounts)
changes from 0 to 1. So an idle disk is automatically repartitioned on
the next access. This means that repartitioning programs only have
effect if a disk stays in use, unless they reload a changed partition
table.
</PRE>
<H2>FILES</H2><PRE>
/dev/hd[0-9], /dev/hd[1-46-9][a-d]
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man2/ioctl.2.html">ioctl(2)</A></STRONG>, <STRONG><A HREF="../man3/int64.3.html">int64(3)</A></STRONG>, <STRONG><A HREF="../man8/part.8.html">part(8)</A></STRONG>, <STRONG><A HREF="../man8/repartition.8.html">repartition(8)</A></STRONG>.
</PRE>
<H2>BUGS</H2><PRE>
The subpartitioning is incompatible with the MS-DOS method of extended
partitions. The latter does not map well to the sparse minor device
number space.
The primary partition table is sorted by lowsec like MS-DOS does,
subpartition tables are not. Just think about what happens when you
delete a partition in the MS-DOS scheme.
Don't move a partition that is mounted or kept open by some process. The
file system may write cached blocks to the new location.
The BIOS driver is not slow at all on a buffered disk.
Some IDE disks send an interrupt when they spin down under hardware power
management. The driver acknowledges the interrupt as it is supposed to
do by reading the status register. The disk then spins up again... You
have to disable the spin down in the computer setup to fix the problem.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

Binary file not shown.

View File

@@ -0,0 +1,221 @@
<HTML>
<HEAD>
<TITLE>console(4)</TITLE>
</HEAD>
<BODY>
<H1>console(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
console, keyboard, log - system console
</PRE>
<H2>DESCRIPTION</H2><PRE>
The TTY device driver manages two devices related to the main user
interface, the system screen and the keyboard. These two together are
named "the Console".
<STRONG>The</STRONG> <STRONG>Screen</STRONG>
The screen of a PC can be managed by a Monochrome Display Adapter, a
Hercules card, a Color Graphics Adapter, an Enhanced Graphics Adapter, or
a Video Graphics Array. To the console driver these devices are seen as
a block of video memory into which characters can be written to be
displayed, an I/O register that sets the video memory origin to the
character that is to be displayed on the top-left position of the screen,
and an I/O register that sets the position of the hardware cursor. Each
character within video memory is a two-byte word. The low byte is the
character code, and the high byte is the "attribute byte", a set of bits
that controls the way the character is displayed, character and
background colours for a colour card, or intensity/underline/reverse
video for monochrome.
These are the characteristics of the adapters in text mode:
Adapter Usable memory Mono/Colour
MDA 4K M
Hercules 4K M
CGA 16K C
EGA 32K M or C
VGA 32K M or C
MDA and Hercules are the same to the console driver, because the graphics
mode of the Hercules is of no use to Minix. EGA and VGA are also mostly
seen as the same in text mode. An EGA adapter is either a monochrome or
a colour device depending on the screen attached to it. A VGA adapter
can run in either monochrome or colour (grayscale) mode depending on how
the Boot Monitor has initialized it.
The driver uses the video origin to avoid copying the screen contents
when scrolling up or down. Instead, the origin is simply moved one line.
This is named "hardware scrolling", as opposed to copying memory:
"software scrolling".
The video origin is also used to implement several virtual consoles
inside the video memory of the adapter. Each virtual console gets a
segment of video memory. The driver chooses which console to display by
moving the video origin. Note that an MDA or Hercules adapter can only
support one console. CGA can support up to four 80x25 consoles, and EGA
and VGA can have eight. It is best to configure one less console to
leave some video memory free so that hardware scrolling has some space to
work in.
Character codes are used as indices into a display font that is stored in
the adapter. The default font is the IBM character set, which is an
ASCII character set in the low 128 codes, and a number of mathematical,
greek, silly graphics, and accented characters in the upper 128 codes.
This font is fixed in the MDA, Hercules and CGA adapters, but can be
replaced by a user selected font for the EGA and VGA adapters.
A number of control characters and escape sequences are implemented by
the driver. The result is upward compatible with the ANSI standard
terminal. The <STRONG><A HREF="../man5/termcap.5.html">termcap(5)</A></STRONG> type is <STRONG>minix</STRONG>. Normal characters written to
the console are displayed at the cursor position and the cursor is
advanced one column to the right. If an entire line is filled then the
cursor wraps to the first column of the next line when the next character
must be displayed. The screen is scrolled up if needed to start a new
line. Some characters have special effects when sent to the console.
Some even have arguments in the form of comma separated decimal numbers.
These numbers default to the lowest possible value when omitted. The
top-left character is at position (1, 1). The following control
characters and escape sequences are implemented by the console:
Sequence Name Function
^@ Null Ignored (padding character)
^G Bell Produce a short tone from the speaker
^H Backspace Move the cursor back one column, wrapping
from the left edge up one line to the
right edge
^I Horizontal Tab Move to the next tab stop, with each tab
stop at columns 1, 9, 25, etc. Wrap to
the next line if necessary.
^J Line Feed Move one line down, scrolling the screen
up if necessary
^K Vertical Tab Same as LF
^L Form Feed Same as LF
^M Carriage Return Move to column 1
^[ Escape Start of an escape sequence
^[M Reverse Index Move one line up, scrolling the screen
down if necessary
^[[<EM>n</EM>A Cursor Up Move the cursor up <EM>n</EM> lines
^[[<EM>n</EM>B Cursor Down Move the cursor down <EM>n</EM> lines
^[[<EM>n</EM>C Cursor Forward Move the cursor right <EM>n</EM> columns
^[[<EM>n</EM>D Cursor Backward Move the cursor left <EM>n</EM> columns
^[[<EM>m</EM>;<EM>n</EM>H Cursor Position Move the cursor to line <EM>m</EM>, column <EM>n</EM>
^[[<EM>s</EM>J Erase in Display Clear characters as follows:
<EM>s</EM> = 0: From cursor to end of screen
<EM>s</EM> = 1: From start of screen to cursor
<EM>s</EM> = 2: Entire screen
^[[<EM>s</EM>K Erase in Line Clear characters as follows:
<EM>s</EM> = 0: From cursor to end of line
<EM>s</EM> = 1: From start of line to cursor
<EM>s</EM> = 2: Entire line
^[[<EM>n</EM>L Insert Lines Insert <EM>n</EM> blank lines
^[[<EM>n</EM>M Delete Lines Delete <EM>n</EM> lines
^[[<EM>n</EM>@ Insert Characters Insert <EM>n</EM> blank characters
^[[<EM>n</EM>P Delete Characters Delete <EM>n</EM> characters
^[[<EM>n</EM>m Character Attribute Set character attribute as follows:
<EM>n</EM> = 0: Normal (default) attribute
<EM>n</EM> = 1: Bold (mono) / Yellow (colour)
<EM>n</EM> = 4: Underline (M) / Light green (C)
<EM>n</EM> = 5: Blinking (M) / Magenta (C)
<EM>n</EM> = 7: Reverse Video
<EM>n</EM> = 30: Black foreground colour
<EM>n</EM> = 31: Red
<EM>n</EM> = 32: Green
<EM>n</EM> = 33: Orange
<EM>n</EM> = 34: Blue
<EM>n</EM> = 35: Magenta
<EM>n</EM> = 36: Light blue
<EM>n</EM> = 37: White
<EM>n</EM> = 40 - 47: Same for background colour
The console device implements the following ioctl to copy a font into
font memory on EGA and VGA adapters:
<STRONG>ioctl(</STRONG><EM>fd</EM><STRONG>,</STRONG> <STRONG>TIOCSFON,</STRONG> <STRONG>u8_t</STRONG> <EM>font</EM><STRONG>[256][32]);</STRONG>
Font memory consists of 256 character definitions of 32 lines per
character and 8 pixels per line. The first line is the topmost line of
the character. The leftmost pixel is lit if the most significant bit of
a line is set, etc. The 80x25 video mode used by Minix has an 8x16
character cell, which means that only the first 16 lines of a character
are displayed.
<STRONG>The</STRONG> <STRONG>Keyboard</STRONG>
The keyboard produces key codes for each key that is pressed. These keys
are transformed into character codes or sequences according to the
current keyboard translation table. The format of this table is
described in <STRONG><A HREF="../man5/keymap.5.html">keymap(5)</A></STRONG>. The character codes can be read from the console
device unless they map to special hotkeys. The hotkeys are as follows:
Name Key Function
CTRL-ALT-DEL Send an abort signal to process 1 (init). Init then
halts the system
CTRL-ALT-KP-. Likewise for keypad period
F1 Process table dump
F2 Show memory map
F3 Toggle software/hardware scrolling
F5 Show network statistics
CTRL-F7 Send a quit signal to all processes connected to the
console
CTRL-F8 Send an interrupt signal
CTRL-F9 Send a kill signal. If CTRL-F8 or CTRL-F7 don't get
'em, then this surely will. These keys are for
disaster recovery. You would normally use DEL and
CTRL-\ to send interrupt and quit signals.
ALT-F1 Select virtual console 0 (/dev/console)
ALT-F2 Select virtual console 1 (/dev/ttyc1)
ALT-F(<EM>n</EM>+1) Select virtual console <EM>n</EM> (/dev/ttyc<EM>n</EM>)
ALT-Left Select previous virtual console
ALT-Right Select next virtual console
The keyboard map is set with the <STRONG>KIOCSMAP</STRONG> ioctl whose precise details are
currently hidden in the <STRONG>loadkeys</STRONG> utility.
<STRONG>Log</STRONG> <STRONG>device</STRONG>
The <STRONG>log</STRONG> device can be used by processes to print debug messages onto the
console. The console is a terminal type device, so it is taken from
processes when a session leader exits. This does not happen with the log
device.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man4/tty.4.html">tty(4)</A></STRONG>, <STRONG><A HREF="../man1/loadkeys.1.html">loadkeys(1)</A></STRONG>, <STRONG><A HREF="../man5/keymap.5.html">keymap(5)</A></STRONG>, <STRONG><A HREF="../man8/boot.8.html">boot(8)</A></STRONG>.
</PRE>
<H2>NOTES</H2><PRE>
Output processing turns Line Feeds into CR LF sequences. Don't let this
surprise you. Either turn off output processing or use one of the
synonyms for LF.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,221 @@
<HTML>
<HEAD>
<TITLE>console(4)</TITLE>
</HEAD>
<BODY>
<H1>console(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
console, keyboard, log - system console
</PRE>
<H2>DESCRIPTION</H2><PRE>
The TTY device driver manages two devices related to the main user
interface, the system screen and the keyboard. These two together are
named "the Console".
<STRONG>The</STRONG> <STRONG>Screen</STRONG>
The screen of a PC can be managed by a Monochrome Display Adapter, a
Hercules card, a Color Graphics Adapter, an Enhanced Graphics Adapter, or
a Video Graphics Array. To the console driver these devices are seen as
a block of video memory into which characters can be written to be
displayed, an I/O register that sets the video memory origin to the
character that is to be displayed on the top-left position of the screen,
and an I/O register that sets the position of the hardware cursor. Each
character within video memory is a two-byte word. The low byte is the
character code, and the high byte is the "attribute byte", a set of bits
that controls the way the character is displayed, character and
background colours for a colour card, or intensity/underline/reverse
video for monochrome.
These are the characteristics of the adapters in text mode:
Adapter Usable memory Mono/Colour
MDA 4K M
Hercules 4K M
CGA 16K C
EGA 32K M or C
VGA 32K M or C
MDA and Hercules are the same to the console driver, because the graphics
mode of the Hercules is of no use to Minix. EGA and VGA are also mostly
seen as the same in text mode. An EGA adapter is either a monochrome or
a colour device depending on the screen attached to it. A VGA adapter
can run in either monochrome or colour (grayscale) mode depending on how
the Boot Monitor has initialized it.
The driver uses the video origin to avoid copying the screen contents
when scrolling up or down. Instead, the origin is simply moved one line.
This is named "hardware scrolling", as opposed to copying memory:
"software scrolling".
The video origin is also used to implement several virtual consoles
inside the video memory of the adapter. Each virtual console gets a
segment of video memory. The driver chooses which console to display by
moving the video origin. Note that an MDA or Hercules adapter can only
support one console. CGA can support up to four 80x25 consoles, and EGA
and VGA can have eight. It is best to configure one less console to
leave some video memory free so that hardware scrolling has some space to
work in.
Character codes are used as indices into a display font that is stored in
the adapter. The default font is the IBM character set, which is an
ASCII character set in the low 128 codes, and a number of mathematical,
greek, silly graphics, and accented characters in the upper 128 codes.
This font is fixed in the MDA, Hercules and CGA adapters, but can be
replaced by a user selected font for the EGA and VGA adapters.
A number of control characters and escape sequences are implemented by
the driver. The result is upward compatible with the ANSI standard
terminal. The <STRONG><A HREF="../man5/termcap.5.html">termcap(5)</A></STRONG> type is <STRONG>minix</STRONG>. Normal characters written to
the console are displayed at the cursor position and the cursor is
advanced one column to the right. If an entire line is filled then the
cursor wraps to the first column of the next line when the next character
must be displayed. The screen is scrolled up if needed to start a new
line. Some characters have special effects when sent to the console.
Some even have arguments in the form of comma separated decimal numbers.
These numbers default to the lowest possible value when omitted. The
top-left character is at position (1, 1). The following control
characters and escape sequences are implemented by the console:
Sequence Name Function
^@ Null Ignored (padding character)
^G Bell Produce a short tone from the speaker
^H Backspace Move the cursor back one column, wrapping
from the left edge up one line to the
right edge
^I Horizontal Tab Move to the next tab stop, with each tab
stop at columns 1, 9, 25, etc. Wrap to
the next line if necessary.
^J Line Feed Move one line down, scrolling the screen
up if necessary
^K Vertical Tab Same as LF
^L Form Feed Same as LF
^M Carriage Return Move to column 1
^[ Escape Start of an escape sequence
^[M Reverse Index Move one line up, scrolling the screen
down if necessary
^[[<EM>n</EM>A Cursor Up Move the cursor up <EM>n</EM> lines
^[[<EM>n</EM>B Cursor Down Move the cursor down <EM>n</EM> lines
^[[<EM>n</EM>C Cursor Forward Move the cursor right <EM>n</EM> columns
^[[<EM>n</EM>D Cursor Backward Move the cursor left <EM>n</EM> columns
^[[<EM>m</EM>;<EM>n</EM>H Cursor Position Move the cursor to line <EM>m</EM>, column <EM>n</EM>
^[[<EM>s</EM>J Erase in Display Clear characters as follows:
<EM>s</EM> = 0: From cursor to end of screen
<EM>s</EM> = 1: From start of screen to cursor
<EM>s</EM> = 2: Entire screen
^[[<EM>s</EM>K Erase in Line Clear characters as follows:
<EM>s</EM> = 0: From cursor to end of line
<EM>s</EM> = 1: From start of line to cursor
<EM>s</EM> = 2: Entire line
^[[<EM>n</EM>L Insert Lines Insert <EM>n</EM> blank lines
^[[<EM>n</EM>M Delete Lines Delete <EM>n</EM> lines
^[[<EM>n</EM>@ Insert Characters Insert <EM>n</EM> blank characters
^[[<EM>n</EM>P Delete Characters Delete <EM>n</EM> characters
^[[<EM>n</EM>m Character Attribute Set character attribute as follows:
<EM>n</EM> = 0: Normal (default) attribute
<EM>n</EM> = 1: Bold (mono) / Yellow (colour)
<EM>n</EM> = 4: Underline (M) / Light green (C)
<EM>n</EM> = 5: Blinking (M) / Magenta (C)
<EM>n</EM> = 7: Reverse Video
<EM>n</EM> = 30: Black foreground colour
<EM>n</EM> = 31: Red
<EM>n</EM> = 32: Green
<EM>n</EM> = 33: Orange
<EM>n</EM> = 34: Blue
<EM>n</EM> = 35: Magenta
<EM>n</EM> = 36: Light blue
<EM>n</EM> = 37: White
<EM>n</EM> = 40 - 47: Same for background colour
The console device implements the following ioctl to copy a font into
font memory on EGA and VGA adapters:
<STRONG>ioctl(</STRONG><EM>fd</EM><STRONG>,</STRONG> <STRONG>TIOCSFON,</STRONG> <STRONG>u8_t</STRONG> <EM>font</EM><STRONG>[256][32]);</STRONG>
Font memory consists of 256 character definitions of 32 lines per
character and 8 pixels per line. The first line is the topmost line of
the character. The leftmost pixel is lit if the most significant bit of
a line is set, etc. The 80x25 video mode used by Minix has an 8x16
character cell, which means that only the first 16 lines of a character
are displayed.
<STRONG>The</STRONG> <STRONG>Keyboard</STRONG>
The keyboard produces key codes for each key that is pressed. These keys
are transformed into character codes or sequences according to the
current keyboard translation table. The format of this table is
described in <STRONG><A HREF="../man5/keymap.5.html">keymap(5)</A></STRONG>. The character codes can be read from the console
device unless they map to special hotkeys. The hotkeys are as follows:
Name Key Function
CTRL-ALT-DEL Send an abort signal to process 1 (init). Init then
halts the system
CTRL-ALT-KP-. Likewise for keypad period
F1 Process table dump
F2 Show memory map
F3 Toggle software/hardware scrolling
F5 Show network statistics
CTRL-F7 Send a quit signal to all processes connected to the
console
CTRL-F8 Send an interrupt signal
CTRL-F9 Send a kill signal. If CTRL-F8 or CTRL-F7 don't get
'em, then this surely will. These keys are for
disaster recovery. You would normally use DEL and
CTRL-\ to send interrupt and quit signals.
ALT-F1 Select virtual console 0 (/dev/console)
ALT-F2 Select virtual console 1 (/dev/ttyc1)
ALT-F(<EM>n</EM>+1) Select virtual console <EM>n</EM> (/dev/ttyc<EM>n</EM>)
ALT-Left Select previous virtual console
ALT-Right Select next virtual console
The keyboard map is set with the <STRONG>KIOCSMAP</STRONG> ioctl whose precise details are
currently hidden in the <STRONG>loadkeys</STRONG> utility.
<STRONG>Log</STRONG> <STRONG>device</STRONG>
The <STRONG>log</STRONG> device can be used by processes to print debug messages onto the
console. The console is a terminal type device, so it is taken from
processes when a session leader exits. This does not happen with the log
device.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man4/tty.4.html">tty(4)</A></STRONG>, <STRONG><A HREF="../man1/loadkeys.1.html">loadkeys(1)</A></STRONG>, <STRONG><A HREF="../man5/keymap.5.html">keymap(5)</A></STRONG>, <STRONG><A HREF="../man8/boot.8.html">boot(8)</A></STRONG>.
</PRE>
<H2>NOTES</H2><PRE>
Output processing turns Line Feeds into CR LF sequences. Don't let this
surprise you. Either turn off output processing or use one of the
synonyms for LF.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,73 @@
<HTML>
<HEAD>
<TITLE>lp(4)</TITLE>
</HEAD>
<BODY>
<H1>lp(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
lp - line printer
</PRE>
<H2>DESCRIPTION</H2><PRE>
The <STRONG>lp</STRONG> device refers to the line printer attached to the parallel port.
Any byte written to this device is printed. Only one process may have
the device open.
The <STRONG>write</STRONG> <STRONG>(2)</STRONG> call may return with a smaller count then the number of
bytes requested to write. The next write call is then likely to fail
with the error code <STRONG>EAGAIN</STRONG> if the printer is out of paper, or <STRONG>EIO</STRONG> if the
printer is turned off.
</PRE>
<H2>FILES</H2><PRE>
/dev/lp Parallel port device.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/lp.1.html">lp(1)</A></STRONG>.
</PRE>
<H2>BUGS</H2><PRE>
Only one parallel port is supported.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,121 @@
<HTML>
<HEAD>
<TITLE>mtio(4)</TITLE>
</HEAD>
<BODY>
<H1>mtio(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
mtio - magnetic tape commands
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>#include</STRONG> <STRONG>&lt;sys/types.h&gt;</STRONG>
<STRONG>#include</STRONG> <STRONG>&lt;sys/mtio.h&gt;</STRONG>
<STRONG>#include</STRONG> <STRONG>&lt;sys/ioctl.h&gt;</STRONG>
</PRE>
<H2>DESCRIPTION</H2><PRE>
The magnetic tape devices described in <STRONG><A HREF="../man4/sd.4.html">sd(4)</A></STRONG> may be sent commands or
queried for their status using the following ioctl calls:
<STRONG>ioctl</STRONG>(<EM>fd</EM>, <STRONG>MTIOCTOP</STRONG>, &amp;<STRONG>struct</STRONG> <STRONG>mtop</STRONG>)
<STRONG>ioctl</STRONG>(<EM>fd</EM>, <STRONG>MTIOCGET</STRONG>, &amp;<STRONG>struct</STRONG> <STRONG>mtget</STRONG>)
The struct mtop, struct mtget and associated definitions are defined in
&lt;sys/mtio.h&gt; as follows:
/* Tape operations: ioctl(fd, MTIOCTOP, &amp;struct mtop) */
struct mtop {
short mt_op; /* Operation (MTWEOF, etc.) */
int mt_count; /* Repeat count. */
};
#define MTWEOF 0 /* Write End-Of-File Marker */
#define MTFSF 1 /* Forward Space File mark */
#define MTBSF 2 /* Backward Space File mark */
#define MTFSR 3 /* Forward Space Record */
#define MTBSR 4 /* Backward Space Record */
#define MTREW 5 /* Rewind tape */
#define MTOFFL 6 /* Rewind and take Offline */
#define MTNOP 7 /* No-Operation, set status only */
#define MTRETEN 8 /* Retension (completely wind and rewind) */
#define MTERASE 9 /* Erase the tape and rewind */
#define MTEOM 10 /* Position at End-Of-Media */
#define MTMODE 11 /* Select tape density */
#define MTBLKZ 12 /* Select tape block size */
/* Tape status: ioctl(fd, MTIOCGET, &amp;struct mtget) */
struct mtget {
short mt_type; /* Type of tape device. */
/* Device dependent "registers". */
short mt_dsreg; /* Drive status register. */
short mt_erreg; /* Error register. */
/* Misc info. */
off_t mt_resid; /* Residual count. */
off_t mt_fileno; /* Current File Number. */
off_t mt_blkno; /* Current Block Number within file. */
off_t mt_blksize; /* Current block size. */
};
See <STRONG><A HREF="../man1/mt.1.html">mt(1)</A></STRONG> for a detailed description on what each operation does. The
mt_type field is always zero, there is no use for it yet. Mt_dsreg is 0
(OK), 1 (Error), or 2 (EOF encountered.) Mt_erreg holds the SCSI sense
key of the last operation. Mt_blksize is the current tape block size in
bytes, zero if the block size is variable.
Note that one can issue these commands on a file descriptor that is in
use to read or write data, something that <STRONG>mt</STRONG> can't do. So you can add
eof markers in the middle of an output stream, or get the status of a
device before a rewind-on-close tape rewinds.
The driver will automatically add an end of file marker to a tape that is
written to if you execute a space command. If you write eof markers
yourself then the driver will not add one extra on close.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man1/mt.1.html">mt(1)</A></STRONG>, <STRONG><A HREF="../man4/sd.4.html">sd(4)</A></STRONG>.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

Binary file not shown.

View File

@@ -0,0 +1,172 @@
<HTML>
<HEAD>
<TITLE>sd(4)</TITLE>
</HEAD>
<BODY>
<H1>sd(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
sd, st, sg - SCSI hard disk / tape / generic
</PRE>
<H2>DESCRIPTION</H2><PRE>
The <STRONG>sd*</STRONG>, <STRONG>st*</STRONG>, <STRONG>sg*</STRONG> family of devices refer to the SCSI hard disk, tape and
generic driver using the Adaptec 154x series of controllers. This manual
page only describes the differences between the sd and hd devices, read
<STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG> first.
The devices numbers of the SCSI devices are statically mapped onto the
SCSI targets 0 to 7. This is done like the hd devices with <STRONG>sd[0-4]</STRONG>
referring to target 0, <STRONG>sd[5-9]</STRONG> to target 1, etc. The logical unit number
is always 0, because devices with more than one logical unit are
virtually extinct. The mapping may be changed from the boot environment
however (see <STRONG><A HREF="../man8/boot.8.html">boot(8)</A></STRONG>).
Tapes start at minor device 64, with <STRONG>nrst0</STRONG> at minor 64, <STRONG>rst0</STRONG> at 65, <STRONG>nrst1</STRONG>
at 66, etc. The mapping is again static to target (minor - 64) / 2. The
<STRONG>rst</STRONG> devices rewind the tape on close, the <STRONG>nrst</STRONG> devices do not. See
<STRONG><A HREF="../man1/mt.1.html">mt(1)</A></STRONG>, and <STRONG><A HREF="../man4/mtio.4.html">mtio(4)</A></STRONG> for a description of the commands that may be sent to
the tape, either from the command prompt or from a program.
Through the eight raw generic devices <STRONG>rsg[0-7]</STRONG> starting at minor 120, one
can send SCSI commands to any SCSI device from user mode. (Minix-vmd
only.)
The driver returns a drive geometry of 64 heads by 32 sectors per track
for small disks with the DIOCGETP ioctl. For large disks 255x63 is
returned. The size in sectors is usually larger than the largest
cylinder number indicates, because the disk is not likely to exactly
match that faked geometry. Note that DOS may not be able to access those
last few sectors.
<STRONG>Disk</STRONG> <STRONG>like</STRONG> <STRONG>devices.</STRONG>
Removable disks (floppies), CD-ROM's and WORM disks may also be accessed
through the <STRONG>sd</STRONG> devices. One is not allowed to write a WORM disk however,
because it is likely to be taken from an alien operating system, so it
seems safer to not allow Minix to stomp over it. One usually needs
special O.S. support to keep one from writing to the same block twice.
The <STRONG>DIOCEJECT</STRONG> ioctl ejects CD-ROMs, floppies, etc. (See <STRONG><A HREF="../man1/eject.1.html">eject(1)</A></STRONG>.) A
fixed disk spins down if it supports the stop command.
<STRONG>SCSI</STRONG> <STRONG>Tapes</STRONG>
There are two types of SCSI tapes drives supported by the driver: fixed
or variable block size tape drives. Examples of the first kind are
cartridge tapes, with a fixed 512 bytes block size. An Exabyte tape
drive has a variable block size, with a minimum of 1 byte and a maximum
of 245760 bytes (see the documentation of such devices.) The maximum is
truncated to 32767 bytes for Minix-86 and 61440 bytes for Minix-vmd,
because the driver can't move more bytes in a single request.
A read or write to a fixed block size tape must be a precise multiple of
the block size, any other count gives results in an I/O error. A read
from a variable block sized tape must be large enough to accept the block
that is read, otherwise an I/O error will be returned. A write can be
any size above the minimum, creating a block of that size. If the write
count is larger than the maximum block size then more blocks are written
until the count becomes zero. The last block must be larger than the
minimum of course. (This minimum is often as small as 1 byte, as for the
Exabyte.)
The <STRONG>mt</STRONG> <STRONG>blksize</STRONG> command may be used to select a fixed block size for a
variable block sized tape. This will speed up I/O considerably for small
block sizes. (Some systems can only use fixed mode and will write an
Exabyte tape with 1024 byte blocks, which read very slow in variable
mode.)
A tape is a sequence of blocks and filemarks. A tape may be opened and
blocks may be read from it upto a filemark, after that all further reads
return 0. After the tape is closed and reopened one can read the blocks
following the filemark if using a non-rewinding device. This makes the
tape look like a sequence of files.
If a tape has been written to or opened in write-only mode, then a
filemark is written if the tape is closed or if a space command is
issued. No extra filemark is written if the drive is instructed to write
filemarks.
<STRONG>Raw</STRONG> <STRONG>Generic</STRONG> <STRONG>Devices</STRONG>
Under Minix-vmd one can use the generic SCSI devices to program a SCSI
device entirely from user mode. The disk and tape devices probe for
devices when opened, start disks and load tapes, but the generic devices
do nothing of this. Given an open file descriptor to any SCSI character
device (not just the generic devices) one can use the following ioctl:
ioctl(fd, SCIOCCMD, &amp;scsicmd)
The structure whose address is passed as the third argument is defined in
&lt;sys/scsi.h&gt; as follows:
struct scsicmd {
void *cmd;
size_t cmdlen;
void *buf;
size_t buflen;
void *sense;
size_t senselen;
int dir;
};
<STRONG>Cmd</STRONG> and <STRONG>cmdlen</STRONG> hold the address and length of an object holding a Group 0
or Group 1 SCSI command. The next two fields describe a buffer of at
most 8 kilobytes used in the data in or out phase. <STRONG>Dir</STRONG> is 0 if data is
to be read from the device, 1 if data is written to the device. If the
ioctl succeeds then 0 is returned, otherwise -1 with <STRONG>errno</STRONG> set to <STRONG>EIO</STRONG> and
the request sense info returned in the buffer described by the sense and
senselen fields. If the sense key is zero on error then a host adapter
error occurred, this means that the device is most likely turned off or
not present.
</PRE>
<H2>FILES</H2><PRE>
/dev/sd[0-9], /dev/sd[1-46-9][a-d] Usual disk devices.
/dev/rst4, /dev/nrst4 Usual tape device.
/dev/rsg[0-7] Raw generic devices.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG>, <STRONG><A HREF="../man1/mt.1.html">mt(1)</A></STRONG>, <STRONG><A HREF="../man1/eject.1.html">eject(1)</A></STRONG>, <STRONG><A HREF="../man4/mtio.4.html">mtio(4)</A></STRONG>, <STRONG><A HREF="../man1/dd.1.html">dd(1)</A></STRONG>.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,172 @@
<HTML>
<HEAD>
<TITLE>sd(4)</TITLE>
</HEAD>
<BODY>
<H1>sd(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
sd, st, sg - SCSI hard disk / tape / generic
</PRE>
<H2>DESCRIPTION</H2><PRE>
The <STRONG>sd*</STRONG>, <STRONG>st*</STRONG>, <STRONG>sg*</STRONG> family of devices refer to the SCSI hard disk, tape and
generic driver using the Adaptec 154x series of controllers. This manual
page only describes the differences between the sd and hd devices, read
<STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG> first.
The devices numbers of the SCSI devices are statically mapped onto the
SCSI targets 0 to 7. This is done like the hd devices with <STRONG>sd[0-4]</STRONG>
referring to target 0, <STRONG>sd[5-9]</STRONG> to target 1, etc. The logical unit number
is always 0, because devices with more than one logical unit are
virtually extinct. The mapping may be changed from the boot environment
however (see <STRONG><A HREF="../man8/boot.8.html">boot(8)</A></STRONG>).
Tapes start at minor device 64, with <STRONG>nrst0</STRONG> at minor 64, <STRONG>rst0</STRONG> at 65, <STRONG>nrst1</STRONG>
at 66, etc. The mapping is again static to target (minor - 64) / 2. The
<STRONG>rst</STRONG> devices rewind the tape on close, the <STRONG>nrst</STRONG> devices do not. See
<STRONG><A HREF="../man1/mt.1.html">mt(1)</A></STRONG>, and <STRONG><A HREF="../man4/mtio.4.html">mtio(4)</A></STRONG> for a description of the commands that may be sent to
the tape, either from the command prompt or from a program.
Through the eight raw generic devices <STRONG>rsg[0-7]</STRONG> starting at minor 120, one
can send SCSI commands to any SCSI device from user mode. (Minix-vmd
only.)
The driver returns a drive geometry of 64 heads by 32 sectors per track
for small disks with the DIOCGETP ioctl. For large disks 255x63 is
returned. The size in sectors is usually larger than the largest
cylinder number indicates, because the disk is not likely to exactly
match that faked geometry. Note that DOS may not be able to access those
last few sectors.
<STRONG>Disk</STRONG> <STRONG>like</STRONG> <STRONG>devices.</STRONG>
Removable disks (floppies), CD-ROM's and WORM disks may also be accessed
through the <STRONG>sd</STRONG> devices. One is not allowed to write a WORM disk however,
because it is likely to be taken from an alien operating system, so it
seems safer to not allow Minix to stomp over it. One usually needs
special O.S. support to keep one from writing to the same block twice.
The <STRONG>DIOCEJECT</STRONG> ioctl ejects CD-ROMs, floppies, etc. (See <STRONG><A HREF="../man1/eject.1.html">eject(1)</A></STRONG>.) A
fixed disk spins down if it supports the stop command.
<STRONG>SCSI</STRONG> <STRONG>Tapes</STRONG>
There are two types of SCSI tapes drives supported by the driver: fixed
or variable block size tape drives. Examples of the first kind are
cartridge tapes, with a fixed 512 bytes block size. An Exabyte tape
drive has a variable block size, with a minimum of 1 byte and a maximum
of 245760 bytes (see the documentation of such devices.) The maximum is
truncated to 32767 bytes for Minix-86 and 61440 bytes for Minix-vmd,
because the driver can't move more bytes in a single request.
A read or write to a fixed block size tape must be a precise multiple of
the block size, any other count gives results in an I/O error. A read
from a variable block sized tape must be large enough to accept the block
that is read, otherwise an I/O error will be returned. A write can be
any size above the minimum, creating a block of that size. If the write
count is larger than the maximum block size then more blocks are written
until the count becomes zero. The last block must be larger than the
minimum of course. (This minimum is often as small as 1 byte, as for the
Exabyte.)
The <STRONG>mt</STRONG> <STRONG>blksize</STRONG> command may be used to select a fixed block size for a
variable block sized tape. This will speed up I/O considerably for small
block sizes. (Some systems can only use fixed mode and will write an
Exabyte tape with 1024 byte blocks, which read very slow in variable
mode.)
A tape is a sequence of blocks and filemarks. A tape may be opened and
blocks may be read from it upto a filemark, after that all further reads
return 0. After the tape is closed and reopened one can read the blocks
following the filemark if using a non-rewinding device. This makes the
tape look like a sequence of files.
If a tape has been written to or opened in write-only mode, then a
filemark is written if the tape is closed or if a space command is
issued. No extra filemark is written if the drive is instructed to write
filemarks.
<STRONG>Raw</STRONG> <STRONG>Generic</STRONG> <STRONG>Devices</STRONG>
Under Minix-vmd one can use the generic SCSI devices to program a SCSI
device entirely from user mode. The disk and tape devices probe for
devices when opened, start disks and load tapes, but the generic devices
do nothing of this. Given an open file descriptor to any SCSI character
device (not just the generic devices) one can use the following ioctl:
ioctl(fd, SCIOCCMD, &amp;scsicmd)
The structure whose address is passed as the third argument is defined in
&lt;sys/scsi.h&gt; as follows:
struct scsicmd {
void *cmd;
size_t cmdlen;
void *buf;
size_t buflen;
void *sense;
size_t senselen;
int dir;
};
<STRONG>Cmd</STRONG> and <STRONG>cmdlen</STRONG> hold the address and length of an object holding a Group 0
or Group 1 SCSI command. The next two fields describe a buffer of at
most 8 kilobytes used in the data in or out phase. <STRONG>Dir</STRONG> is 0 if data is
to be read from the device, 1 if data is written to the device. If the
ioctl succeeds then 0 is returned, otherwise -1 with <STRONG>errno</STRONG> set to <STRONG>EIO</STRONG> and
the request sense info returned in the buffer described by the sense and
senselen fields. If the sense key is zero on error then a host adapter
error occurred, this means that the device is most likely turned off or
not present.
</PRE>
<H2>FILES</H2><PRE>
/dev/sd[0-9], /dev/sd[1-46-9][a-d] Usual disk devices.
/dev/rst4, /dev/nrst4 Usual tape device.
/dev/rsg[0-7] Raw generic devices.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG>, <STRONG><A HREF="../man1/mt.1.html">mt(1)</A></STRONG>, <STRONG><A HREF="../man1/eject.1.html">eject(1)</A></STRONG>, <STRONG><A HREF="../man4/mtio.4.html">mtio(4)</A></STRONG>, <STRONG><A HREF="../man1/dd.1.html">dd(1)</A></STRONG>.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

View File

@@ -0,0 +1,172 @@
<HTML>
<HEAD>
<TITLE>sd(4)</TITLE>
</HEAD>
<BODY>
<H1>sd(4)</H1>
<HR>
<PRE>
</PRE>
<H2>NAME</H2><PRE>
sd, st, sg - SCSI hard disk / tape / generic
</PRE>
<H2>DESCRIPTION</H2><PRE>
The <STRONG>sd*</STRONG>, <STRONG>st*</STRONG>, <STRONG>sg*</STRONG> family of devices refer to the SCSI hard disk, tape and
generic driver using the Adaptec 154x series of controllers. This manual
page only describes the differences between the sd and hd devices, read
<STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG> first.
The devices numbers of the SCSI devices are statically mapped onto the
SCSI targets 0 to 7. This is done like the hd devices with <STRONG>sd[0-4]</STRONG>
referring to target 0, <STRONG>sd[5-9]</STRONG> to target 1, etc. The logical unit number
is always 0, because devices with more than one logical unit are
virtually extinct. The mapping may be changed from the boot environment
however (see <STRONG><A HREF="../man8/boot.8.html">boot(8)</A></STRONG>).
Tapes start at minor device 64, with <STRONG>nrst0</STRONG> at minor 64, <STRONG>rst0</STRONG> at 65, <STRONG>nrst1</STRONG>
at 66, etc. The mapping is again static to target (minor - 64) / 2. The
<STRONG>rst</STRONG> devices rewind the tape on close, the <STRONG>nrst</STRONG> devices do not. See
<STRONG><A HREF="../man1/mt.1.html">mt(1)</A></STRONG>, and <STRONG><A HREF="../man4/mtio.4.html">mtio(4)</A></STRONG> for a description of the commands that may be sent to
the tape, either from the command prompt or from a program.
Through the eight raw generic devices <STRONG>rsg[0-7]</STRONG> starting at minor 120, one
can send SCSI commands to any SCSI device from user mode. (Minix-vmd
only.)
The driver returns a drive geometry of 64 heads by 32 sectors per track
for small disks with the DIOCGETP ioctl. For large disks 255x63 is
returned. The size in sectors is usually larger than the largest
cylinder number indicates, because the disk is not likely to exactly
match that faked geometry. Note that DOS may not be able to access those
last few sectors.
<STRONG>Disk</STRONG> <STRONG>like</STRONG> <STRONG>devices.</STRONG>
Removable disks (floppies), CD-ROM's and WORM disks may also be accessed
through the <STRONG>sd</STRONG> devices. One is not allowed to write a WORM disk however,
because it is likely to be taken from an alien operating system, so it
seems safer to not allow Minix to stomp over it. One usually needs
special O.S. support to keep one from writing to the same block twice.
The <STRONG>DIOCEJECT</STRONG> ioctl ejects CD-ROMs, floppies, etc. (See <STRONG><A HREF="../man1/eject.1.html">eject(1)</A></STRONG>.) A
fixed disk spins down if it supports the stop command.
<STRONG>SCSI</STRONG> <STRONG>Tapes</STRONG>
There are two types of SCSI tapes drives supported by the driver: fixed
or variable block size tape drives. Examples of the first kind are
cartridge tapes, with a fixed 512 bytes block size. An Exabyte tape
drive has a variable block size, with a minimum of 1 byte and a maximum
of 245760 bytes (see the documentation of such devices.) The maximum is
truncated to 32767 bytes for Minix-86 and 61440 bytes for Minix-vmd,
because the driver can't move more bytes in a single request.
A read or write to a fixed block size tape must be a precise multiple of
the block size, any other count gives results in an I/O error. A read
from a variable block sized tape must be large enough to accept the block
that is read, otherwise an I/O error will be returned. A write can be
any size above the minimum, creating a block of that size. If the write
count is larger than the maximum block size then more blocks are written
until the count becomes zero. The last block must be larger than the
minimum of course. (This minimum is often as small as 1 byte, as for the
Exabyte.)
The <STRONG>mt</STRONG> <STRONG>blksize</STRONG> command may be used to select a fixed block size for a
variable block sized tape. This will speed up I/O considerably for small
block sizes. (Some systems can only use fixed mode and will write an
Exabyte tape with 1024 byte blocks, which read very slow in variable
mode.)
A tape is a sequence of blocks and filemarks. A tape may be opened and
blocks may be read from it upto a filemark, after that all further reads
return 0. After the tape is closed and reopened one can read the blocks
following the filemark if using a non-rewinding device. This makes the
tape look like a sequence of files.
If a tape has been written to or opened in write-only mode, then a
filemark is written if the tape is closed or if a space command is
issued. No extra filemark is written if the drive is instructed to write
filemarks.
<STRONG>Raw</STRONG> <STRONG>Generic</STRONG> <STRONG>Devices</STRONG>
Under Minix-vmd one can use the generic SCSI devices to program a SCSI
device entirely from user mode. The disk and tape devices probe for
devices when opened, start disks and load tapes, but the generic devices
do nothing of this. Given an open file descriptor to any SCSI character
device (not just the generic devices) one can use the following ioctl:
ioctl(fd, SCIOCCMD, &amp;scsicmd)
The structure whose address is passed as the third argument is defined in
&lt;sys/scsi.h&gt; as follows:
struct scsicmd {
void *cmd;
size_t cmdlen;
void *buf;
size_t buflen;
void *sense;
size_t senselen;
int dir;
};
<STRONG>Cmd</STRONG> and <STRONG>cmdlen</STRONG> hold the address and length of an object holding a Group 0
or Group 1 SCSI command. The next two fields describe a buffer of at
most 8 kilobytes used in the data in or out phase. <STRONG>Dir</STRONG> is 0 if data is
to be read from the device, 1 if data is written to the device. If the
ioctl succeeds then 0 is returned, otherwise -1 with <STRONG>errno</STRONG> set to <STRONG>EIO</STRONG> and
the request sense info returned in the buffer described by the sense and
senselen fields. If the sense key is zero on error then a host adapter
error occurred, this means that the device is most likely turned off or
not present.
</PRE>
<H2>FILES</H2><PRE>
/dev/sd[0-9], /dev/sd[1-46-9][a-d] Usual disk devices.
/dev/rst4, /dev/nrst4 Usual tape device.
/dev/rsg[0-7] Raw generic devices.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="../man4/hd.4.html">hd(4)</A></STRONG>, <STRONG><A HREF="../man1/mt.1.html">mt(1)</A></STRONG>, <STRONG><A HREF="../man1/eject.1.html">eject(1)</A></STRONG>, <STRONG><A HREF="../man4/mtio.4.html">mtio(4)</A></STRONG>, <STRONG><A HREF="../man1/dd.1.html">dd(1)</A></STRONG>.
</PRE>
<H2>AUTHOR</H2><PRE>
Kees J. Bot (kjb@cs.vu.nl)
</PRE>
</BODY>
</HTML>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.