Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fba(4) — AIX PS/2 1.2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ioctlx, ioctl, gtty, stty

open, openx, creat

read, readv, readx

write, writex



FBA(4,F)                    AIX Technical Reference                    FBA(4,F)



-------------------------------------------------------------------------------
fba



PURPOSE

Supports the Fixed Block Architecture Direct Access Storage Device driver.

SYNOPSIS

# include <sys/devinfo.h>
# include <sys/b370/dkfba.h>

DESCRIPTION

Fixed disk devices on an AIX/370 system provide block and character access to
minidisks on physical disk devices.  The fba special file is unique to AIX/370.

The particular device accessed is of the form /dev/fhdnnn and /dev/rfhdnnn,
where nnn is the given device minor number.  The driver supports up to 32
separate AIX minidisks (partitions) on a single physical disk.  Thus, each
physical disk has 32 minor numbers associated with it.  The first of these
refers to the entire disk and is normally used for disk maintenance only.  The
other 31 minors are available for user or system AIX minidisks.

In raw I/O, the buffer must always be aligned on a 4096 byte boundary, and
counts must be a multiple of 4096 bytes (an integral number of physical
blocks).  lseek system calls should also specify such an aligned address.

A number of IOCTL operations are available.  In addition to IOCTYPE and
IOCINFO, the following calls are defined:

DEVADDR   Returns the device address

                ioctl(fd, DEVADDR, arg);
                int *arg;

HDIOPAR   Return driver internal structure

               ioctl(fd, DEVADDR, arg);
               struct fba_info *arg;

          where struct fba_info is declared as:











Processed November 7, 1990         FBA(4,F)                                   1





FBA(4,F)                    AIX Technical Reference                    FBA(4,F)



                struct fba_info {
                  struct buf   fi_tab;
                         /* Queue header */
                  bool_t       fi_alive;
                         /* Is it really there ? */
                  bool_t       fi_ro;
                         /* Disk is read-only */
                  short        fi_ocount;
                         /* Open count */
                  short        fi_rocount;
                         /* Raw open count */
                  ioaddr_t     fi_daddr;
                         /* I/O address for this device */

                  int          fi_physec;
                        /* Physical sector size */
                  int          fi_maxsecno;
                        /* Maximum number of sectors */
                  short        fi_secptrk;
                        /* Sectors per track (unused) */
                  short        fi_trkpcyl;
                        /* Tracks per cylinder (unused) */
                  int          fi_secpcyl;
                        /* Sectors per cylinder (unused) */
                  int          fi_ncyl;
                        /* Number of cylinders (unused) */

                  caddr_t      fi_realccw;
                        /* Real address of the ccw's */
                  ccw_t        fi_deccw;
                        /* Define extent ccw */
                  ccw_t        fi_locccw;
                        /* Locate ccw */
                  ccw_t        fi_rwccw;
                        /* Read/write ccw */
                  delist_t     fi_delst;
                        /* Define extent list */
                  loclist_t    fi_loclst;
                        /* Locate list */
                  caddr_t      fi_idaws -MAX_FBA_COUNT / NBIDA +1 -;
                        /* IDA words */














Processed November 7, 1990         FBA(4,F)                                   2





FBA(4,F)                    AIX Technical Reference                    FBA(4,F)



                  unsigned int fi_nsiord;
                        /* number of read sio */
                  unsigned int fi_nsiowr;
                        /* number of write sio */
                  unsigned int fi_nblksrd;
                        /* number of blocks read */
                  unsigned int fi_nblkswr;
                        /* number of blocks written */
                  unsigned int fi_nretry;
                        /* number of retries */
                  unsigned int fi_tsio;
                        /* rmtime for last sio */
                  double   fi_tottsio;
                        /* microsecs from sio to intr */
                };

HDIORST   Reread the VTOC minidisk partition table.

                ioctl(fd, HDIORST, arg);
                caddr_t arg;

          The argument is not used.  This command only works on the whole
          partition maintenance minidisk.

RELATED INFORMATION

In this book:  "ioctlx, ioctl, gtty, stty," "open, openx, creat," "read, readv,
readx," and "write, writex."



























Processed November 7, 1990         FBA(4,F)                                   3



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