Annotation of qemu/roms/openbios/drivers/hdreg.h, revision 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.