Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getdiskbyname(3x)

ra(4)

rz(4)

disktab(5)

creatediskbyname(3x)

Name

creatediskbyname − get the disk description associated with a file name

Syntax

#include <disktab.h>

struct disktab *
creatediskbyname(name)
char *name;

Description

The creatediskbyname subroutine takes the name of the character device special file representing a disk device (for example, /dev/rra0a) and returns a structure pointer describing its geometry information and the default disk partition tables.  It obtains this information by polling the controlling disk device driver. The creatediskbyname subroutine returns information only for MSCP and SCSI disks.

The <disktab.h> file has the following form:

#define DISKTAB        "/etc/disktab"
 struct  disktab {
      char   *d_name;          /* drive name */
      char   *d_type;          /* drive type */
      int    d_secsize;        /* sector size in bytes */
      int    d_ntracks;        /* # tracks/cylinder */
      int    d_nsectors;       /* # sectors/track */
      int    d_ncylinders;     /* # cylinders */
      int    d_rpm;            /* revolutions/minute */
      struct partition {
              int     p_size;   /* #sectors in partition */
              short   p_bsize;  /* block size in bytes */
              short   p_fsize;  /* frag size in bytes */
        } d_partitions[8];
};
 struct  disktab *getdiskbyname();
struct  disktab *creatediskbyname();

Diagnostics

Successful completion of the creatediskbyname subroutine returns a pointer to a valid disktab structure.  Failure of this subroutine returns a null pointer.  The subroutine fails if it cannot obtain the necessary information from the device driver or disktab file.

A check is done to ensure that the disktab file exists and is readable.  This check ensures that the subroutine is not being called because the disktab file was accidentally removed.  If there is no disktab file, the subroutine fails. 

The creatediskbyname subroutine also fails if it cannot determine disk geometry attributes by polling the driver.  This can occur if the disk is not an MSCP or SCSI disk.  In some cases where the disk consists of removable media and the media is not loaded, the driver will be unable to determine disk attributes.

Restrictions

The creatediskbyname subroutine returns information only for MSCP and SCSI disks.

See Also

getdiskbyname(3x), ra(4), rz(4), disktab(5)

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