Annotation of coherent/a/usr/include/sys/abios.h, revision 1.1

1.1     ! root        1: /* (-lgl
        !             2:  *     COHERENT Version 3.2.1
        !             3:  *     Copyright (c) 1982, 1991 by Mark Williams Company.
        !             4:  *     All rights reserved. May not be copied without permission.
        !             5:  -lgl) */
        !             6: 
        !             7: #ifndef ABIOS_H
        !             8: #define ABIOS_H        ABIOS_H
        !             9: 
        !            10: /* These point to the proper offset in the function transfer tables */
        !            11: #define START_P        0
        !            12: #define        INTERRUPT_P     4
        !            13: #define TIME_OUT_P     8
        !            14: 
        !            15: /* 
        !            16:  * Initialization structures.
        !            17:  */
        !            18: 
        !            19: typedef struct a_sys_parm_struct {
        !            20:        long common_start_fptr;    /* Far ptr to Start Routine Entry    */
        !            21:        long common_interrupt_fptr;/* Far ptr to Interrupt Routine Entry*/
        !            22:        long common_timeout_fptr;  /* Far ptr to TIme Out Routine Entry */
        !            23:        int  stack;                /* Amount of stack required by ABIOS */
        !            24:        long reserved[4];
        !            25:        int  num_entries;          /* Number of ABIOS extensions        */
        !            26: } a_sys_parm;
        !            27: 
        !            28: typedef struct a_init_table_struct {
        !            29:        int     deviceid;       /* This will always be 02h for the HD */
        !            30:        int     num_logicalids; /* The number of HDs with the same id */
        !            31:        int     db_length;      /* Length of dev block for this dev   */
        !            32:        long    initdev_fptr;   /* Far ptr to init dev routine entry  */
        !            33:        int     rb_length;      /* Length of request blk for this dev */
        !            34:        int     ftt_length;     /* Length of function transfer table  */
        !            35:        int     dp_length;      /* Required Length of the data ptr    */
        !            36:                                /* fields in the Common Data Area     */
        !            37:        char    secdevice_id;   /* Level of hw that ABIOS supports    */
        !            38:        char    revision;       /* DD revsion that ABIOS supports     */
        !            39:        int     reserved[3];
        !            40: } a_init_table;
        !            41: 
        !            42: 
        !            43: /* 
        !            44:  * Floppy Disk Structures
        !            45:  */
        !            46: 
        !            47: typedef struct f3vals1_struct {        /* Read device Parameters */
        !            48:        int     sectors_track;
        !            49:        int     sector_size;
        !            50:        int     device_control;
        !            51:        int     drive_type;
        !            52:        long    reserved;       /* Init to 0 */
        !            53:        long    motor_off;      /* Time to delay before turning motor off */
        !            54:        long    motor_on;
        !            55:        int     reserved1;
        !            56:        int     cylinders;
        !            57:        int     reserved2;
        !            58:        char    heads;
        !            59:        char    retries;
        !            60:        char    fill_byte;      /* Fill byte for formats */
        !            61:        long    head_settle;
        !            62:        char    gap_rwv;        /* Gap length for read/write/verify */
        !            63:        char    gap_format;     /* Gap length for format */
        !            64:        char    dlength;        /* Data length */
        !            65:        char    reserved3[6];
        !            66:        char    status;         /* Disk controller status byte */
        !            67: } f3vals1;
        !            68: 
        !            69: typedef struct f5vals1_struct {        /* Reset/Initialize Floppy Disk */
        !            70:        int     reserved;       /* Init to 0 */
        !            71: } f5vals1;
        !            72: 
        !            73: typedef struct f8vals1_struct {        /* Read/write floppy disk */
        !            74:        int     reserved;       /* Init to 0 */
        !            75:        long    dummy;
        !            76:        long    reserved1;      /* Init to 0 */
        !            77:        long    dptr;           /* 32 bit data pointer */
        !            78:        int     reserved2;      /* Init to 0 */
        !            79:        long    wait_time;      /* Time to wait */
        !            80:        int     sectors_read;   /* Before the call - Number of sectors
        !            81:                                 * to read. After the call completes -
        !            82:                                 * number of sectors read. */
        !            83:        int     cylinder;       /* Cylinder number 0 based */
        !            84:        int     dummy1;
        !            85:        char    head;           /* Head number */
        !            86:        char    dummy2[6];
        !            87:        int     sector;         /* Sector number */
        !            88: } f8vals1;
        !            89: 
        !            90: typedef struct fbvals1_struct {        /* Verify floppy disk */
        !            91:        char    dummy[6];
        !            92:        long    reserved1;      /* Init to 0 */
        !            93:        int     reserved2;      /* Init to 0 */
        !            94:        long    rb_address;     /* Relative block address */
        !            95:        long    reserved3;      /* Init to 0 */
        !            96:        long    wait_time;      /* Time to wait */
        !            97:        int     blocks_verify;  /* Before the call - Number of blocks 
        !            98:                                 * to verify.After the call completes 
        !            99:                                 * - number of blocks verified. */
        !           100:        char    caching;        /* 0-caching is ok, 1-do not cache */
        !           101:        int     soft_error;
        !           102: } fbvals1;
        !           103: 
        !           104: typedef struct ffvals1_struct {        /* Turn disk motor off */
        !           105:        int     reserved;       /* Init to 0 */
        !           106: } ffvals1;
        !           107: 
        !           108: typedef struct request_block_struct_fl {
        !           109:        int     length;         /* Request block length */
        !           110:        int     logical_id;     /* Logical Id of the device */
        !           111:        int     unit;           /* Which Hard disk: 0 - 1st etc */
        !           112:        int     function;       /* Function number to execute */
        !           113:        long    reserved;       /* Init to 0 */
        !           114:        int     ret_code;       /* Value returned by the function */
        !           115:        int     time_out;
        !           116:        union   
        !           117:        {
        !           118:                f3vals1 f3;
        !           119:                f5vals1 f5;
        !           120:                f8vals1 f8;
        !           121:                fbvals1 fb;
        !           122:                ffvals1 ff;
        !           123:                char    padding[0x41];  /* To make the Requset Block 
        !           124:                                                at least 0x51 bytes long */
        !           125:        } vars;
        !           126: } request_block_fl;
        !           127: 
        !           128: 
        !           129: /* 
        !           130:  * Hard Disk Structures
        !           131:  */
        !           132: 
        !           133: typedef struct f3vals2_struct {        /* Read device Parameters */
        !           134:        int     sectors_track;
        !           135:        int     sector_size;
        !           136:        int     device_control;
        !           137:        int     drive_type;
        !           138:        long    cylinders;
        !           139:        char    heads;
        !           140:        char    retries;
        !           141:        long    block_addresses;
        !           142:        long    reserved;       /* Init to 0 */
        !           143:        long    reserved1;
        !           144:        int     max_blocks;
        !           145: } f3vals2;
        !           146: 
        !           147: typedef struct f5vals2_struct {        /* Reset/Initialize Fixed Disk */
        !           148:        int     reserved;       /* Init to 0 */
        !           149:        char    dummy[22];
        !           150:        long    wait_time;
        !           151: } f5vals2;
        !           152: 
        !           153: typedef struct f8vals2_struct {        /* Read/Write fixed disk */
        !           154:        int     reserved;       /* Init to 0 */
        !           155:        long    dummy;
        !           156:        long    reserved1;      /* Init to 0 */
        !           157:        long    dptr;           /* 32 bit data pointer */
        !           158:        int     reserved2;      /* Init to 0 */
        !           159:        long    rb_address;     /* Relative block address */
        !           160:        long    reserved3;      /* Init to 0 */
        !           161:        long    wait_time;      /* Time to wait */
        !           162:        int     blocks_read;    /* Before the call - Number of blocks 
        !           163:                                 * to read. After the call completes 
        !           164:                                 * - number of blocks read. */
        !           165:        char    caching;        /* 0-caching is ok, 1-do not cache */
        !           166:        int     soft_error;
        !           167: } f8vals2;
        !           168: 
        !           169: typedef struct fbvals2_struct {        /* Verify fixed disk */
        !           170:        char    dummy[6];
        !           171:        long    reserved1;      /* Init to 0 */
        !           172:        int     reserved2;      /* Init to 0 */
        !           173:        long    rb_address;     /* Relative block address */
        !           174:        long    reserved3;      /* Init to 0 */
        !           175:        long    wait_time;      /* Time to wait */
        !           176:        int     blocks_verify;  /* Before the call - Number of blocks 
        !           177:                                 * to verify.After the call completes 
        !           178:                                 * - number of blocks verified. */
        !           179:        char    caching;        /* 0-caching is ok, 1-do not cache */
        !           180:        int     soft_error;
        !           181: } fbvals2;
        !           182: 
        !           183: typedef struct request_block_struct_hd {
        !           184:        int     length;         /* Request block length */
        !           185:        int     logical_id;     /* Logical Id of the device */
        !           186:        int     unit;           /* Which Hard disk: 0 - 1st etc */
        !           187:        int     function;       /* Function number to execute */
        !           188:        long    reserved;       /* Init to 0 */
        !           189:        int     ret_code;       /* Value returned by the function */
        !           190:        int     time_out;
        !           191:        union   
        !           192:        {
        !           193:                f3vals2 f3;
        !           194:                f5vals2 f5;
        !           195:                f8vals2 f8;
        !           196:                fbvals2 fb;
        !           197:                char    padding[0x72];  /* To make the Requset Block 
        !           198:                                                0x80 bytes long */
        !           199:        } vars;
        !           200: } request_block_hd;
        !           201: 
        !           202: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.