Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rb(4) — Ultrix/UWS 4.2 VAX

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

dkio(4)

nbuf(4)

MAKEDEV(8)

rb(4)  —  VAX

Name

rb − IDC/RL02 disk interface

Syntax

controller idc0 at uba? csr 0175606 vector idcintr
disk rb0 at idc0 drive 0

Description

Files with minor device numbers 0 through 7 refer to various portions of drive 0; minor devices 8 through 15 refer to drive 1, and so forth.  The standard device names begin with rb followed by the drive number and then a letter, a through h, for partitions 0 through 7. The question mark (?) character stands here for a drive number in the range 0 through 7.

The block files access the disk by the system’s normal buffering mechanism and can be read and written, without regard to physical disk records.  There is also a raw interface, which provides for direct transmission between the disk and the user’s read or write buffer.  A single read or write call results in exactly one I/O operation.  Therefore, raw I/O is considerably more efficient when many words are transmitted.  The names of the raw files conventionally begin with an additional letter r, for example, rrx2c.

Although RL02 disks have 256-byte sectors, the driver emulates 512-byte sectors.  Raw I/O counts should be multiples of 512 bytes (a normal disk sector).  In the same way, seek calls should specify a multiple of 512 bytes.

The origin and size (in 512-byte sectors) of the pseudodisks on each drive are as follows:

RL02 partitions:
diskstartlengthcyl
rb?a0158840-397
rb?b158844520398-510
rb?c0204800-511
rb?d158844520398-510
rb?g0204800-511

Restrictions

In raw I/O, read and write functions truncate file offsets to 512-byte block boundaries; write overwrites the tail of incomplete blocks. Thus, in programs that are likely to access raw devices, read(,), write(,), and lseek() should always deal in 512-byte multiples.

Diagnostics

The following messages can appear at the console:

rb%%d%c: hard error sn%d
An unrecoverable error occurred during transfer of the specified sector of the specified disk partition. Either the error was unrecoverable, or a large number of retry attempts (including offset positioning and drive recalibration) could not recover the error. Additional register information can be gathered from the system error log file, /usr/adm/syserr/syserr.<hostname>. 

rb%d: write protected
The write protect switch was set on the drive when a write was attempted. The write operation is not recoverable.

idc%d: lost interrupt
A timer watching the controller detected no interrupt for an extended period while an operation was outstanding. This indicates a hardware or software failure. The error causes a UNIBUS reset and retry of the pending operations. If the controller continues to lose interrupts, this error will recur a few seconds later.

Files

/dev/rb???
/dev/rrb???

See Also

dkio(4), nbuf(4), MAKEDEV(8)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026