Annotation of qemu/roms/openbios/drivers/hdreg.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * this header holds data structures as dictated by spec
                      3:  */
                      4: #ifndef HDREG_H
                      5: #define HDREG_H
                      6: 
                      7: struct hd_driveid {
                      8:        unsigned short  config;         /* lots of obsolete bit flags */
                      9:        unsigned short  cyls;           /* Obsolete, "physical" cyls */
                     10:        unsigned short  reserved2;      /* reserved (word 2) */
                     11:        unsigned short  heads;          /* Obsolete, "physical" heads */
                     12:        unsigned short  track_bytes;    /* unformatted bytes per track */
                     13:        unsigned short  sector_bytes;   /* unformatted bytes per sector */
                     14:        unsigned short  sectors;        /* Obsolete, "physical" sectors per track */
                     15:        unsigned short  vendor0;        /* vendor unique */
                     16:        unsigned short  vendor1;        /* vendor unique */
                     17:        unsigned short  vendor2;        /* Retired vendor unique */
                     18:        unsigned char   serial_no[20];  /* 0 = not_specified */
                     19:        unsigned short  buf_type;       /* Retired */
                     20:        unsigned short  buf_size;       /* Retired, 512 byte increments
                     21:                                         * 0 = not_specified
                     22:                                         */
                     23:        unsigned short  ecc_bytes;      /* for r/w long cmds; 0 = not_specified */
                     24:        unsigned char   fw_rev[8];      /* 0 = not_specified */
                     25:        unsigned char   model[40];      /* 0 = not_specified */
                     26:        unsigned char   max_multsect;   /* 0=not_implemented */
                     27:        unsigned char   vendor3;        /* vendor unique */
                     28:        unsigned short  dword_io;       /* 0=not_implemented; 1=implemented */
                     29:        unsigned char   vendor4;        /* vendor unique */
                     30:        unsigned char   capability;     /* (upper byte of word 49)
                     31:                                         *  3:  IORDYsup
                     32:                                         *  2:  IORDYsw
                     33:                                         *  1:  LBA
                     34:                                         *  0:  DMA
                     35:                                         */
                     36:        unsigned short  reserved50;     /* reserved (word 50) */
                     37:        unsigned char   vendor5;        /* Obsolete, vendor unique */
                     38:        unsigned char   tPIO;           /* Obsolete, 0=slow, 1=medium, 2=fast */
                     39:        unsigned char   vendor6;        /* Obsolete, vendor unique */
                     40:        unsigned char   tDMA;           /* Obsolete, 0=slow, 1=medium, 2=fast */
                     41:        unsigned short  field_valid;    /* (word 53)
                     42:                                         *  2:  ultra_ok        word  88
                     43:                                         *  1:  eide_ok         words 64-70
                     44:                                         *  0:  cur_ok          words 54-58
                     45:                                         */
                     46:        unsigned short  cur_cyls;       /* Obsolete, logical cylinders */
                     47:        unsigned short  cur_heads;      /* Obsolete, l heads */
                     48:        unsigned short  cur_sectors;    /* Obsolete, l sectors per track */
                     49:        unsigned short  cur_capacity0;  /* Obsolete, l total sectors on drive */
                     50:        unsigned short  cur_capacity1;  /* Obsolete, (2 words, misaligned int)     */
                     51:        unsigned char   multsect;       /* current multiple sector count */
                     52:        unsigned char   multsect_valid; /* when (bit0==1) multsect is ok */
                     53:        unsigned int    lba_capacity;   /* Obsolete, total number of sectors */
                     54:        unsigned short  dma_1word;      /* Obsolete, single-word dma info */
                     55:        unsigned short  dma_mword;      /* multiple-word dma info */
                     56:        unsigned short  eide_pio_modes; /* bits 0:mode3 1:mode4 */
                     57:        unsigned short  eide_dma_min;   /* min mword dma cycle time (ns) */
                     58:        unsigned short  eide_dma_time;  /* recommended mword dma cycle time (ns) */
                     59:        unsigned short  eide_pio;       /* min cycle time (ns), no IORDY  */
                     60:        unsigned short  eide_pio_iordy; /* min cycle time (ns), with IORDY */
                     61:        unsigned short  words69_70[2];  /* reserved words 69-70
                     62:                                         * future command overlap and queuing
                     63:                                         */
                     64:        /* HDIO_GET_IDENTITY currently returns only words 0 through 70 */
                     65:        unsigned short  words71_74[4];  /* reserved words 71-74
                     66:                                         * for IDENTIFY PACKET DEVICE command
                     67:                                         */
                     68:        unsigned short  queue_depth;    /* (word 75)
                     69:                                         * 15:5 reserved
                     70:                                         *  4:0 Maximum queue depth -1
                     71:                                         */
                     72:        unsigned short  words76_79[4];  /* reserved words 76-79 */
                     73:        unsigned short  major_rev_num;  /* (word 80) */
                     74:        unsigned short  minor_rev_num;  /* (word 81) */
                     75:        unsigned short  command_set_1;  /* (word 82) supported
                     76:                                         * 15:  Obsolete
                     77:                                         * 14:  NOP command
                     78:                                         * 13:  READ_BUFFER
                     79:                                         * 12:  WRITE_BUFFER
                     80:                                         * 11:  Obsolete
                     81:                                         * 10:  Host Protected Area
                     82:                                         *  9:  DEVICE Reset
                     83:                                         *  8:  SERVICE Interrupt
                     84:                                         *  7:  Release Interrupt
                     85:                                         *  6:  look-ahead
                     86:                                         *  5:  write cache
                     87:                                         *  4:  PACKET Command
                     88:                                         *  3:  Power Management Feature Set
                     89:                                         *  2:  Removable Feature Set
                     90:                                         *  1:  Security Feature Set
                     91:                                         *  0:  SMART Feature Set
                     92:                                         */
                     93:        unsigned short  command_set_2;  /* (word 83)
                     94:                                         * 15:  Shall be ZERO
                     95:                                         * 14:  Shall be ONE
                     96:                                         * 13:  FLUSH CACHE EXT
                     97:                                         * 12:  FLUSH CACHE
                     98:                                         * 11:  Device Configuration Overlay
                     99:                                         * 10:  48-bit Address Feature Set
                    100:                                         *  9:  Automatic Acoustic Management
                    101:                                         *  8:  SET MAX security
                    102:                                         *  7:  reserved 1407DT PARTIES
                    103:                                         *  6:  SetF sub-command Power-Up
                    104:                                         *  5:  Power-Up in Standby Feature Set
                    105:                                         *  4:  Removable Media Notification
                    106:                                         *  3:  APM Feature Set
                    107:                                         *  2:  CFA Feature Set
                    108:                                         *  1:  READ/WRITE DMA QUEUED
                    109:                                         *  0:  Download MicroCode
                    110:                                         */
                    111:        unsigned short  cfsse;          /* (word 84)
                    112:                                         * cmd set-feature supported extensions
                    113:                                         * 15:  Shall be ZERO
                    114:                                         * 14:  Shall be ONE
                    115:                                         * 13:6 reserved
                    116:                                         *  5:  General Purpose Logging
                    117:                                         *  4:  Streaming Feature Set
                    118:                                         *  3:  Media Card Pass Through
                    119:                                         *  2:  Media Serial Number Valid
                    120:                                         *  1:  SMART selt-test supported
                    121:                                         *  0:  SMART error logging
                    122:                                         */
                    123:        unsigned short  cfs_enable_1;   /* (word 85)
                    124:                                         * command set-feature enabled
                    125:                                         * 15:  Obsolete
                    126:                                         * 14:  NOP command
                    127:                                         * 13:  READ_BUFFER
                    128:                                         * 12:  WRITE_BUFFER
                    129:                                         * 11:  Obsolete
                    130:                                         * 10:  Host Protected Area
                    131:                                         *  9:  DEVICE Reset
                    132:                                         *  8:  SERVICE Interrupt
                    133:                                         *  7:  Release Interrupt
                    134:                                         *  6:  look-ahead
                    135:                                         *  5:  write cache
                    136:                                         *  4:  PACKET Command
                    137:                                         *  3:  Power Management Feature Set
                    138:                                         *  2:  Removable Feature Set
                    139:                                         *  1:  Security Feature Set
                    140:                                         *  0:  SMART Feature Set
                    141:                                         */
                    142:        unsigned short  cfs_enable_2;   /* (word 86)
                    143:                                         * command set-feature enabled
                    144:                                         * 15:  Shall be ZERO
                    145:                                         * 14:  Shall be ONE
                    146:                                         * 13:  FLUSH CACHE EXT
                    147:                                         * 12:  FLUSH CACHE
                    148:                                         * 11:  Device Configuration Overlay
                    149:                                         * 10:  48-bit Address Feature Set
                    150:                                         *  9:  Automatic Acoustic Management
                    151:                                         *  8:  SET MAX security
                    152:                                         *  7:  reserved 1407DT PARTIES
                    153:                                         *  6:  SetF sub-command Power-Up
                    154:                                         *  5:  Power-Up in Standby Feature Set
                    155:                                         *  4:  Removable Media Notification
                    156:                                         *  3:  APM Feature Set
                    157:                                         *  2:  CFA Feature Set
                    158:                                         *  1:  READ/WRITE DMA QUEUED
                    159:                                         *  0:  Download MicroCode
                    160:                                         */
                    161:        unsigned short  csf_default;    /* (word 87)
                    162:                                         * command set-feature default
                    163:                                         * 15:  Shall be ZERO
                    164:                                         * 14:  Shall be ONE
                    165:                                         * 13:6 reserved
                    166:                                         *  5:  General Purpose Logging enabled
                    167:                                         *  4:  Valid CONFIGURE STREAM executed
                    168:                                         *  3:  Media Card Pass Through enabled
                    169:                                         *  2:  Media Serial Number Valid
                    170:                                         *  1:  SMART selt-test supported
                    171:                                         *  0:  SMART error logging
                    172:                                         */
                    173:        unsigned short  dma_ultra;      /* (word 88) */
                    174:        unsigned short  trseuc;         /* time required for security erase */
                    175:        unsigned short  trsEuc;         /* time required for enhanced erase */
                    176:        unsigned short  CurAPMvalues;   /* current APM values */
                    177:        unsigned short  mprc;           /* master password revision code */
                    178:        unsigned short  hw_config;      /* hardware config (word 93)
                    179:                                         * 15:  Shall be ZERO
                    180:                                         * 14:  Shall be ONE
                    181:                                         * 13:
                    182:                                         * 12:
                    183:                                         * 11:
                    184:                                         * 10:
                    185:                                         *  9:
                    186:                                         *  8:
                    187:                                         *  7:
                    188:                                         *  6:
                    189:                                         *  5:
                    190:                                         *  4:
                    191:                                         *  3:
                    192:                                         *  2:
                    193:                                         *  1:
                    194:                                         *  0:  Shall be ONE
                    195:                                         */
                    196:        unsigned short  acoustic;       /* (word 94)
                    197:                                         * 15:8 Vendor's recommended value
                    198:                                         *  7:0 current value
                    199:                                         */
                    200:        unsigned short  msrqs;          /* min stream request size */
                    201:        unsigned short  sxfert;         /* stream transfer time */
                    202:        unsigned short  sal;            /* stream access latency */
                    203:        unsigned int    spg;            /* stream performance granularity */
                    204:        unsigned long long lba_capacity_2;/* 48-bit total number of sectors */
                    205:        unsigned short  words104_125[22];/* reserved words 104-125 */
                    206:        unsigned short  last_lun;       /* (word 126) */
                    207:        unsigned short  word127;        /* (word 127) Feature Set
                    208:                                         * Removable Media Notification
                    209:                                         * 15:2 reserved
                    210:                                         *  1:0 00 = not supported
                    211:                                         *      01 = supported
                    212:                                         *      10 = reserved
                    213:                                         *      11 = reserved
                    214:                                         */
                    215:        unsigned short  dlf;            /* (word 128)
                    216:                                         * device lock function
                    217:                                         * 15:9 reserved
                    218:                                         *  8   security level 1:max 0:high
                    219:                                         *  7:6 reserved
                    220:                                         *  5   enhanced erase
                    221:                                         *  4   expire
                    222:                                         *  3   frozen
                    223:                                         *  2   locked
                    224:                                         *  1   en/disabled
                    225:                                         *  0   capability
                    226:                                         */
                    227:        unsigned short  csfo;           /*  (word 129)
                    228:                                         * current set features options
                    229:                                         * 15:4 reserved
                    230:                                         *  3:  auto reassign
                    231:                                         *  2:  reverting
                    232:                                         *  1:  read-look-ahead
                    233:                                         *  0:  write cache
                    234:                                         */
                    235:        unsigned short  words130_155[26];/* reserved vendor words 130-155 */
                    236:        unsigned short  word156;        /* reserved vendor word 156 */
                    237:        unsigned short  words157_159[3];/* reserved vendor words 157-159 */
                    238:        unsigned short  cfa_power;      /* (word 160) CFA Power Mode
                    239:                                         * 15 word 160 supported
                    240:                                         * 14 reserved
                    241:                                         * 13
                    242:                                         * 12
                    243:                                         * 11:0
                    244:                                         */
                    245:        unsigned short  words161_175[15];/* Reserved for CFA */
                    246:        unsigned short  words176_205[30];/* Current Media Serial Number */
                    247:        unsigned short  words206_254[49];/* reserved words 206-254 */
                    248:        unsigned short  integrity_word; /* (word 255)
                    249:                                         * 15:8 Checksum
                    250:                                         *  7:0 Signature
                    251:                                         */
                    252: };
                    253: 
                    254: struct request_sense {
                    255: #if defined(CONFIG_BIG_ENDIAN)
                    256:        u8 valid                : 1;
                    257:        u8 error_code           : 7;
                    258: #elif defined(CONFIG_LITTLE_ENDIAN)
                    259:        u8 error_code           : 7;
                    260:        u8 valid                : 1;
                    261: #endif
                    262:        u8 segment_number;
                    263: #if defined(CONFIG_BIG_ENDIAN)
                    264:        u8 reserved1            : 2;
                    265:        u8 ili                  : 1;
                    266:        u8 reserved2            : 1;
                    267:        u8 sense_key            : 4;
                    268: #elif defined(CONFIG_LITTLE_ENDIAN)
                    269:        u8 sense_key            : 4;
                    270:        u8 reserved2            : 1;
                    271:        u8 ili                  : 1;
                    272:        u8 reserved1            : 2;
                    273: #endif
                    274:        u8 information[4];
                    275:        u8 add_sense_len;
                    276:        u8 command_info[4];
                    277:        u8 asc;
                    278:        u8 ascq;
                    279:        u8 fruc;
                    280:        u8 sks[3];
                    281:        u8 asb[46];
                    282: };
                    283: 
                    284: struct atapi_capacity {
                    285:        u32 lba;
                    286:        u32 block_size;
                    287: };
                    288: 
                    289: #endif

unix.superglobalmegacorp.com

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