Annotation of coherent/a/usr/include/sys/abios.h, revision 1.1.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.