diff options
Diffstat (limited to 'drivers/scsi/gdth.h')
-rw-r--r-- | drivers/scsi/gdth.h | 952 |
1 files changed, 476 insertions, 476 deletions
diff --git a/drivers/scsi/gdth.h b/drivers/scsi/gdth.h index 1646444e9bd5..120a0625a7b5 100644 --- a/drivers/scsi/gdth.h +++ b/drivers/scsi/gdth.h | |||
@@ -321,524 +321,524 @@ | |||
321 | 321 | ||
322 | /* screenservice message */ | 322 | /* screenservice message */ |
323 | typedef struct { | 323 | typedef struct { |
324 | ulong32 msg_handle; /* message handle */ | 324 | u32 msg_handle; /* message handle */ |
325 | ulong32 msg_len; /* size of message */ | 325 | u32 msg_len; /* size of message */ |
326 | ulong32 msg_alen; /* answer length */ | 326 | u32 msg_alen; /* answer length */ |
327 | unchar msg_answer; /* answer flag */ | 327 | u8 msg_answer; /* answer flag */ |
328 | unchar msg_ext; /* more messages */ | 328 | u8 msg_ext; /* more messages */ |
329 | unchar msg_reserved[2]; | 329 | u8 msg_reserved[2]; |
330 | char msg_text[MSGLEN+2]; /* the message text */ | 330 | char msg_text[MSGLEN+2]; /* the message text */ |
331 | } PACKED gdth_msg_str; | 331 | } __attribute__((packed)) gdth_msg_str; |
332 | 332 | ||
333 | 333 | ||
334 | /* IOCTL data structures */ | 334 | /* IOCTL data structures */ |
335 | 335 | ||
336 | /* Status coalescing buffer for returning multiple requests per interrupt */ | 336 | /* Status coalescing buffer for returning multiple requests per interrupt */ |
337 | typedef struct { | 337 | typedef struct { |
338 | ulong32 status; | 338 | u32 status; |
339 | ulong32 ext_status; | 339 | u32 ext_status; |
340 | ulong32 info0; | 340 | u32 info0; |
341 | ulong32 info1; | 341 | u32 info1; |
342 | } PACKED gdth_coal_status; | 342 | } __attribute__((packed)) gdth_coal_status; |
343 | 343 | ||
344 | /* performance mode data structure */ | 344 | /* performance mode data structure */ |
345 | typedef struct { | 345 | typedef struct { |
346 | ulong32 version; /* The version of this IOCTL structure. */ | 346 | u32 version; /* The version of this IOCTL structure. */ |
347 | ulong32 st_mode; /* 0=dis., 1=st_buf_addr1 valid, 2=both */ | 347 | u32 st_mode; /* 0=dis., 1=st_buf_addr1 valid, 2=both */ |
348 | ulong32 st_buff_addr1; /* physical address of status buffer 1 */ | 348 | u32 st_buff_addr1; /* physical address of status buffer 1 */ |
349 | ulong32 st_buff_u_addr1; /* reserved for 64 bit addressing */ | 349 | u32 st_buff_u_addr1; /* reserved for 64 bit addressing */ |
350 | ulong32 st_buff_indx1; /* reserved command idx. for this buffer */ | 350 | u32 st_buff_indx1; /* reserved command idx. for this buffer */ |
351 | ulong32 st_buff_addr2; /* physical address of status buffer 1 */ | 351 | u32 st_buff_addr2; /* physical address of status buffer 1 */ |
352 | ulong32 st_buff_u_addr2; /* reserved for 64 bit addressing */ | 352 | u32 st_buff_u_addr2; /* reserved for 64 bit addressing */ |
353 | ulong32 st_buff_indx2; /* reserved command idx. for this buffer */ | 353 | u32 st_buff_indx2; /* reserved command idx. for this buffer */ |
354 | ulong32 st_buff_size; /* size of each buffer in bytes */ | 354 | u32 st_buff_size; /* size of each buffer in bytes */ |
355 | ulong32 cmd_mode; /* 0 = mode disabled, 1 = cmd_buff_addr1 */ | 355 | u32 cmd_mode; /* 0 = mode disabled, 1 = cmd_buff_addr1 */ |
356 | ulong32 cmd_buff_addr1; /* physical address of cmd buffer 1 */ | 356 | u32 cmd_buff_addr1; /* physical address of cmd buffer 1 */ |
357 | ulong32 cmd_buff_u_addr1; /* reserved for 64 bit addressing */ | 357 | u32 cmd_buff_u_addr1; /* reserved for 64 bit addressing */ |
358 | ulong32 cmd_buff_indx1; /* cmd buf addr1 unique identifier */ | 358 | u32 cmd_buff_indx1; /* cmd buf addr1 unique identifier */ |
359 | ulong32 cmd_buff_addr2; /* physical address of cmd buffer 1 */ | 359 | u32 cmd_buff_addr2; /* physical address of cmd buffer 1 */ |
360 | ulong32 cmd_buff_u_addr2; /* reserved for 64 bit addressing */ | 360 | u32 cmd_buff_u_addr2; /* reserved for 64 bit addressing */ |
361 | ulong32 cmd_buff_indx2; /* cmd buf addr1 unique identifier */ | 361 | u32 cmd_buff_indx2; /* cmd buf addr1 unique identifier */ |
362 | ulong32 cmd_buff_size; /* size of each cmd bufer in bytes */ | 362 | u32 cmd_buff_size; /* size of each cmd bufer in bytes */ |
363 | ulong32 reserved1; | 363 | u32 reserved1; |
364 | ulong32 reserved2; | 364 | u32 reserved2; |
365 | } PACKED gdth_perf_modes; | 365 | } __attribute__((packed)) gdth_perf_modes; |
366 | 366 | ||
367 | /* SCSI drive info */ | 367 | /* SCSI drive info */ |
368 | typedef struct { | 368 | typedef struct { |
369 | unchar vendor[8]; /* vendor string */ | 369 | u8 vendor[8]; /* vendor string */ |
370 | unchar product[16]; /* product string */ | 370 | u8 product[16]; /* product string */ |
371 | unchar revision[4]; /* revision */ | 371 | u8 revision[4]; /* revision */ |
372 | ulong32 sy_rate; /* current rate for sync. tr. */ | 372 | u32 sy_rate; /* current rate for sync. tr. */ |
373 | ulong32 sy_max_rate; /* max. rate for sync. tr. */ | 373 | u32 sy_max_rate; /* max. rate for sync. tr. */ |
374 | ulong32 no_ldrive; /* belongs to this log. drv.*/ | 374 | u32 no_ldrive; /* belongs to this log. drv.*/ |
375 | ulong32 blkcnt; /* number of blocks */ | 375 | u32 blkcnt; /* number of blocks */ |
376 | ushort blksize; /* size of block in bytes */ | 376 | u16 blksize; /* size of block in bytes */ |
377 | unchar available; /* flag: access is available */ | 377 | u8 available; /* flag: access is available */ |
378 | unchar init; /* medium is initialized */ | 378 | u8 init; /* medium is initialized */ |
379 | unchar devtype; /* SCSI devicetype */ | 379 | u8 devtype; /* SCSI devicetype */ |
380 | unchar rm_medium; /* medium is removable */ | 380 | u8 rm_medium; /* medium is removable */ |
381 | unchar wp_medium; /* medium is write protected */ | 381 | u8 wp_medium; /* medium is write protected */ |
382 | unchar ansi; /* SCSI I/II or III? */ | 382 | u8 ansi; /* SCSI I/II or III? */ |
383 | unchar protocol; /* same as ansi */ | 383 | u8 protocol; /* same as ansi */ |
384 | unchar sync; /* flag: sync. transfer enab. */ | 384 | u8 sync; /* flag: sync. transfer enab. */ |
385 | unchar disc; /* flag: disconnect enabled */ | 385 | u8 disc; /* flag: disconnect enabled */ |
386 | unchar queueing; /* flag: command queing enab. */ | 386 | u8 queueing; /* flag: command queing enab. */ |
387 | unchar cached; /* flag: caching enabled */ | 387 | u8 cached; /* flag: caching enabled */ |
388 | unchar target_id; /* target ID of device */ | 388 | u8 target_id; /* target ID of device */ |
389 | unchar lun; /* LUN id of device */ | 389 | u8 lun; /* LUN id of device */ |
390 | unchar orphan; /* flag: drive fragment */ | 390 | u8 orphan; /* flag: drive fragment */ |
391 | ulong32 last_error; /* sense key or drive state */ | 391 | u32 last_error; /* sense key or drive state */ |
392 | ulong32 last_result; /* result of last command */ | 392 | u32 last_result; /* result of last command */ |
393 | ulong32 check_errors; /* err. in last surface check */ | 393 | u32 check_errors; /* err. in last surface check */ |
394 | unchar percent; /* progress for surface check */ | 394 | u8 percent; /* progress for surface check */ |
395 | unchar last_check; /* IOCTRL operation */ | 395 | u8 last_check; /* IOCTRL operation */ |
396 | unchar res[2]; | 396 | u8 res[2]; |
397 | ulong32 flags; /* from 1.19/2.19: raw reserv.*/ | 397 | u32 flags; /* from 1.19/2.19: raw reserv.*/ |
398 | unchar multi_bus; /* multi bus dev? (fibre ch.) */ | 398 | u8 multi_bus; /* multi bus dev? (fibre ch.) */ |
399 | unchar mb_status; /* status: available? */ | 399 | u8 mb_status; /* status: available? */ |
400 | unchar res2[2]; | 400 | u8 res2[2]; |
401 | unchar mb_alt_status; /* status on second bus */ | 401 | u8 mb_alt_status; /* status on second bus */ |
402 | unchar mb_alt_bid; /* number of second bus */ | 402 | u8 mb_alt_bid; /* number of second bus */ |
403 | unchar mb_alt_tid; /* target id on second bus */ | 403 | u8 mb_alt_tid; /* target id on second bus */ |
404 | unchar res3; | 404 | u8 res3; |
405 | unchar fc_flag; /* from 1.22/2.22: info valid?*/ | 405 | u8 fc_flag; /* from 1.22/2.22: info valid?*/ |
406 | unchar res4; | 406 | u8 res4; |
407 | ushort fc_frame_size; /* frame size (bytes) */ | 407 | u16 fc_frame_size; /* frame size (bytes) */ |
408 | char wwn[8]; /* world wide name */ | 408 | char wwn[8]; /* world wide name */ |
409 | } PACKED gdth_diskinfo_str; | 409 | } __attribute__((packed)) gdth_diskinfo_str; |
410 | 410 | ||
411 | /* get SCSI channel count */ | 411 | /* get SCSI channel count */ |
412 | typedef struct { | 412 | typedef struct { |
413 | ulong32 channel_no; /* number of channel */ | 413 | u32 channel_no; /* number of channel */ |
414 | ulong32 drive_cnt; /* drive count */ | 414 | u32 drive_cnt; /* drive count */ |
415 | unchar siop_id; /* SCSI processor ID */ | 415 | u8 siop_id; /* SCSI processor ID */ |
416 | unchar siop_state; /* SCSI processor state */ | 416 | u8 siop_state; /* SCSI processor state */ |
417 | } PACKED gdth_getch_str; | 417 | } __attribute__((packed)) gdth_getch_str; |
418 | 418 | ||
419 | /* get SCSI drive numbers */ | 419 | /* get SCSI drive numbers */ |
420 | typedef struct { | 420 | typedef struct { |
421 | ulong32 sc_no; /* SCSI channel */ | 421 | u32 sc_no; /* SCSI channel */ |
422 | ulong32 sc_cnt; /* sc_list[] elements */ | 422 | u32 sc_cnt; /* sc_list[] elements */ |
423 | ulong32 sc_list[MAXID]; /* minor device numbers */ | 423 | u32 sc_list[MAXID]; /* minor device numbers */ |
424 | } PACKED gdth_drlist_str; | 424 | } __attribute__((packed)) gdth_drlist_str; |
425 | 425 | ||
426 | /* get grown/primary defect count */ | 426 | /* get grown/primary defect count */ |
427 | typedef struct { | 427 | typedef struct { |
428 | unchar sddc_type; /* 0x08: grown, 0x10: prim. */ | 428 | u8 sddc_type; /* 0x08: grown, 0x10: prim. */ |
429 | unchar sddc_format; /* list entry format */ | 429 | u8 sddc_format; /* list entry format */ |
430 | unchar sddc_len; /* list entry length */ | 430 | u8 sddc_len; /* list entry length */ |
431 | unchar sddc_res; | 431 | u8 sddc_res; |
432 | ulong32 sddc_cnt; /* entry count */ | 432 | u32 sddc_cnt; /* entry count */ |
433 | } PACKED gdth_defcnt_str; | 433 | } __attribute__((packed)) gdth_defcnt_str; |
434 | 434 | ||
435 | /* disk statistics */ | 435 | /* disk statistics */ |
436 | typedef struct { | 436 | typedef struct { |
437 | ulong32 bid; /* SCSI channel */ | 437 | u32 bid; /* SCSI channel */ |
438 | ulong32 first; /* first SCSI disk */ | 438 | u32 first; /* first SCSI disk */ |
439 | ulong32 entries; /* number of elements */ | 439 | u32 entries; /* number of elements */ |
440 | ulong32 count; /* (R) number of init. el. */ | 440 | u32 count; /* (R) number of init. el. */ |
441 | ulong32 mon_time; /* time stamp */ | 441 | u32 mon_time; /* time stamp */ |
442 | struct { | 442 | struct { |
443 | unchar tid; /* target ID */ | 443 | u8 tid; /* target ID */ |
444 | unchar lun; /* LUN */ | 444 | u8 lun; /* LUN */ |
445 | unchar res[2]; | 445 | u8 res[2]; |
446 | ulong32 blk_size; /* block size in bytes */ | 446 | u32 blk_size; /* block size in bytes */ |
447 | ulong32 rd_count; /* bytes read */ | 447 | u32 rd_count; /* bytes read */ |
448 | ulong32 wr_count; /* bytes written */ | 448 | u32 wr_count; /* bytes written */ |
449 | ulong32 rd_blk_count; /* blocks read */ | 449 | u32 rd_blk_count; /* blocks read */ |
450 | ulong32 wr_blk_count; /* blocks written */ | 450 | u32 wr_blk_count; /* blocks written */ |
451 | ulong32 retries; /* retries */ | 451 | u32 retries; /* retries */ |
452 | ulong32 reassigns; /* reassigns */ | 452 | u32 reassigns; /* reassigns */ |
453 | } PACKED list[1]; | 453 | } __attribute__((packed)) list[1]; |
454 | } PACKED gdth_dskstat_str; | 454 | } __attribute__((packed)) gdth_dskstat_str; |
455 | 455 | ||
456 | /* IO channel header */ | 456 | /* IO channel header */ |
457 | typedef struct { | 457 | typedef struct { |
458 | ulong32 version; /* version (-1UL: newest) */ | 458 | u32 version; /* version (-1UL: newest) */ |
459 | unchar list_entries; /* list entry count */ | 459 | u8 list_entries; /* list entry count */ |
460 | unchar first_chan; /* first channel number */ | 460 | u8 first_chan; /* first channel number */ |
461 | unchar last_chan; /* last channel number */ | 461 | u8 last_chan; /* last channel number */ |
462 | unchar chan_count; /* (R) channel count */ | 462 | u8 chan_count; /* (R) channel count */ |
463 | ulong32 list_offset; /* offset of list[0] */ | 463 | u32 list_offset; /* offset of list[0] */ |
464 | } PACKED gdth_iochan_header; | 464 | } __attribute__((packed)) gdth_iochan_header; |
465 | 465 | ||
466 | /* get IO channel description */ | 466 | /* get IO channel description */ |
467 | typedef struct { | 467 | typedef struct { |
468 | gdth_iochan_header hdr; | 468 | gdth_iochan_header hdr; |
469 | struct { | 469 | struct { |
470 | ulong32 address; /* channel address */ | 470 | u32 address; /* channel address */ |
471 | unchar type; /* type (SCSI, FCAL) */ | 471 | u8 type; /* type (SCSI, FCAL) */ |
472 | unchar local_no; /* local number */ | 472 | u8 local_no; /* local number */ |
473 | ushort features; /* channel features */ | 473 | u16 features; /* channel features */ |
474 | } PACKED list[MAXBUS]; | 474 | } __attribute__((packed)) list[MAXBUS]; |
475 | } PACKED gdth_iochan_str; | 475 | } __attribute__((packed)) gdth_iochan_str; |
476 | 476 | ||
477 | /* get raw IO channel description */ | 477 | /* get raw IO channel description */ |
478 | typedef struct { | 478 | typedef struct { |
479 | gdth_iochan_header hdr; | 479 | gdth_iochan_header hdr; |
480 | struct { | 480 | struct { |
481 | unchar proc_id; /* processor id */ | 481 | u8 proc_id; /* processor id */ |
482 | unchar proc_defect; /* defect ? */ | 482 | u8 proc_defect; /* defect ? */ |
483 | unchar reserved[2]; | 483 | u8 reserved[2]; |
484 | } PACKED list[MAXBUS]; | 484 | } __attribute__((packed)) list[MAXBUS]; |
485 | } PACKED gdth_raw_iochan_str; | 485 | } __attribute__((packed)) gdth_raw_iochan_str; |
486 | 486 | ||
487 | /* array drive component */ | 487 | /* array drive component */ |
488 | typedef struct { | 488 | typedef struct { |
489 | ulong32 al_controller; /* controller ID */ | 489 | u32 al_controller; /* controller ID */ |
490 | unchar al_cache_drive; /* cache drive number */ | 490 | u8 al_cache_drive; /* cache drive number */ |
491 | unchar al_status; /* cache drive state */ | 491 | u8 al_status; /* cache drive state */ |
492 | unchar al_res[2]; | 492 | u8 al_res[2]; |
493 | } PACKED gdth_arraycomp_str; | 493 | } __attribute__((packed)) gdth_arraycomp_str; |
494 | 494 | ||
495 | /* array drive information */ | 495 | /* array drive information */ |
496 | typedef struct { | 496 | typedef struct { |
497 | unchar ai_type; /* array type (RAID0,4,5) */ | 497 | u8 ai_type; /* array type (RAID0,4,5) */ |
498 | unchar ai_cache_drive_cnt; /* active cachedrives */ | 498 | u8 ai_cache_drive_cnt; /* active cachedrives */ |
499 | unchar ai_state; /* array drive state */ | 499 | u8 ai_state; /* array drive state */ |
500 | unchar ai_master_cd; /* master cachedrive */ | 500 | u8 ai_master_cd; /* master cachedrive */ |
501 | ulong32 ai_master_controller; /* ID of master controller */ | 501 | u32 ai_master_controller; /* ID of master controller */ |
502 | ulong32 ai_size; /* user capacity [sectors] */ | 502 | u32 ai_size; /* user capacity [sectors] */ |
503 | ulong32 ai_striping_size; /* striping size [sectors] */ | 503 | u32 ai_striping_size; /* striping size [sectors] */ |
504 | ulong32 ai_secsize; /* sector size [bytes] */ | 504 | u32 ai_secsize; /* sector size [bytes] */ |
505 | ulong32 ai_err_info; /* failed cache drive */ | 505 | u32 ai_err_info; /* failed cache drive */ |
506 | unchar ai_name[8]; /* name of the array drive */ | 506 | u8 ai_name[8]; /* name of the array drive */ |
507 | unchar ai_controller_cnt; /* number of controllers */ | 507 | u8 ai_controller_cnt; /* number of controllers */ |
508 | unchar ai_removable; /* flag: removable */ | 508 | u8 ai_removable; /* flag: removable */ |
509 | unchar ai_write_protected; /* flag: write protected */ | 509 | u8 ai_write_protected; /* flag: write protected */ |
510 | unchar ai_devtype; /* type: always direct access */ | 510 | u8 ai_devtype; /* type: always direct access */ |
511 | gdth_arraycomp_str ai_drives[35]; /* drive components: */ | 511 | gdth_arraycomp_str ai_drives[35]; /* drive components: */ |
512 | unchar ai_drive_entries; /* number of drive components */ | 512 | u8 ai_drive_entries; /* number of drive components */ |
513 | unchar ai_protected; /* protection flag */ | 513 | u8 ai_protected; /* protection flag */ |
514 | unchar ai_verify_state; /* state of a parity verify */ | 514 | u8 ai_verify_state; /* state of a parity verify */ |
515 | unchar ai_ext_state; /* extended array drive state */ | 515 | u8 ai_ext_state; /* extended array drive state */ |
516 | unchar ai_expand_state; /* array expand state (>=2.18)*/ | 516 | u8 ai_expand_state; /* array expand state (>=2.18)*/ |
517 | unchar ai_reserved[3]; | 517 | u8 ai_reserved[3]; |
518 | } PACKED gdth_arrayinf_str; | 518 | } __attribute__((packed)) gdth_arrayinf_str; |
519 | 519 | ||
520 | /* get array drive list */ | 520 | /* get array drive list */ |
521 | typedef struct { | 521 | typedef struct { |
522 | ulong32 controller_no; /* controller no. */ | 522 | u32 controller_no; /* controller no. */ |
523 | unchar cd_handle; /* master cachedrive */ | 523 | u8 cd_handle; /* master cachedrive */ |
524 | unchar is_arrayd; /* Flag: is array drive? */ | 524 | u8 is_arrayd; /* Flag: is array drive? */ |
525 | unchar is_master; /* Flag: is array master? */ | 525 | u8 is_master; /* Flag: is array master? */ |
526 | unchar is_parity; /* Flag: is parity drive? */ | 526 | u8 is_parity; /* Flag: is parity drive? */ |
527 | unchar is_hotfix; /* Flag: is hotfix drive? */ | 527 | u8 is_hotfix; /* Flag: is hotfix drive? */ |
528 | unchar res[3]; | 528 | u8 res[3]; |
529 | } PACKED gdth_alist_str; | 529 | } __attribute__((packed)) gdth_alist_str; |
530 | 530 | ||
531 | typedef struct { | 531 | typedef struct { |
532 | ulong32 entries_avail; /* allocated entries */ | 532 | u32 entries_avail; /* allocated entries */ |
533 | ulong32 entries_init; /* returned entries */ | 533 | u32 entries_init; /* returned entries */ |
534 | ulong32 first_entry; /* first entry number */ | 534 | u32 first_entry; /* first entry number */ |
535 | ulong32 list_offset; /* offset of following list */ | 535 | u32 list_offset; /* offset of following list */ |
536 | gdth_alist_str list[1]; /* list */ | 536 | gdth_alist_str list[1]; /* list */ |
537 | } PACKED gdth_arcdl_str; | 537 | } __attribute__((packed)) gdth_arcdl_str; |
538 | 538 | ||
539 | /* cache info/config IOCTL */ | 539 | /* cache info/config IOCTL */ |
540 | typedef struct { | 540 | typedef struct { |
541 | ulong32 version; /* firmware version */ | 541 | u32 version; /* firmware version */ |
542 | ushort state; /* cache state (on/off) */ | 542 | u16 state; /* cache state (on/off) */ |
543 | ushort strategy; /* cache strategy */ | 543 | u16 strategy; /* cache strategy */ |
544 | ushort write_back; /* write back state (on/off) */ | 544 | u16 write_back; /* write back state (on/off) */ |
545 | ushort block_size; /* cache block size */ | 545 | u16 block_size; /* cache block size */ |
546 | } PACKED gdth_cpar_str; | 546 | } __attribute__((packed)) gdth_cpar_str; |
547 | 547 | ||
548 | typedef struct { | 548 | typedef struct { |
549 | ulong32 csize; /* cache size */ | 549 | u32 csize; /* cache size */ |
550 | ulong32 read_cnt; /* read/write counter */ | 550 | u32 read_cnt; /* read/write counter */ |
551 | ulong32 write_cnt; | 551 | u32 write_cnt; |
552 | ulong32 tr_hits; /* hits */ | 552 | u32 tr_hits; /* hits */ |
553 | ulong32 sec_hits; | 553 | u32 sec_hits; |
554 | ulong32 sec_miss; /* misses */ | 554 | u32 sec_miss; /* misses */ |
555 | } PACKED gdth_cstat_str; | 555 | } __attribute__((packed)) gdth_cstat_str; |
556 | 556 | ||
557 | typedef struct { | 557 | typedef struct { |
558 | gdth_cpar_str cpar; | 558 | gdth_cpar_str cpar; |
559 | gdth_cstat_str cstat; | 559 | gdth_cstat_str cstat; |
560 | } PACKED gdth_cinfo_str; | 560 | } __attribute__((packed)) gdth_cinfo_str; |
561 | 561 | ||
562 | /* cache drive info */ | 562 | /* cache drive info */ |
563 | typedef struct { | 563 | typedef struct { |
564 | unchar cd_name[8]; /* cache drive name */ | 564 | u8 cd_name[8]; /* cache drive name */ |
565 | ulong32 cd_devtype; /* SCSI devicetype */ | 565 | u32 cd_devtype; /* SCSI devicetype */ |
566 | ulong32 cd_ldcnt; /* number of log. drives */ | 566 | u32 cd_ldcnt; /* number of log. drives */ |
567 | ulong32 cd_last_error; /* last error */ | 567 | u32 cd_last_error; /* last error */ |
568 | unchar cd_initialized; /* drive is initialized */ | 568 | u8 cd_initialized; /* drive is initialized */ |
569 | unchar cd_removable; /* media is removable */ | 569 | u8 cd_removable; /* media is removable */ |
570 | unchar cd_write_protected; /* write protected */ | 570 | u8 cd_write_protected; /* write protected */ |
571 | unchar cd_flags; /* Pool Hot Fix? */ | 571 | u8 cd_flags; /* Pool Hot Fix? */ |
572 | ulong32 ld_blkcnt; /* number of blocks */ | 572 | u32 ld_blkcnt; /* number of blocks */ |
573 | ulong32 ld_blksize; /* blocksize */ | 573 | u32 ld_blksize; /* blocksize */ |
574 | ulong32 ld_dcnt; /* number of disks */ | 574 | u32 ld_dcnt; /* number of disks */ |
575 | ulong32 ld_slave; /* log. drive index */ | 575 | u32 ld_slave; /* log. drive index */ |
576 | ulong32 ld_dtype; /* type of logical drive */ | 576 | u32 ld_dtype; /* type of logical drive */ |
577 | ulong32 ld_last_error; /* last error */ | 577 | u32 ld_last_error; /* last error */ |
578 | unchar ld_name[8]; /* log. drive name */ | 578 | u8 ld_name[8]; /* log. drive name */ |
579 | unchar ld_error; /* error */ | 579 | u8 ld_error; /* error */ |
580 | } PACKED gdth_cdrinfo_str; | 580 | } __attribute__((packed)) gdth_cdrinfo_str; |
581 | 581 | ||
582 | /* OEM string */ | 582 | /* OEM string */ |
583 | typedef struct { | 583 | typedef struct { |
584 | ulong32 ctl_version; | 584 | u32 ctl_version; |
585 | ulong32 file_major_version; | 585 | u32 file_major_version; |
586 | ulong32 file_minor_version; | 586 | u32 file_minor_version; |
587 | ulong32 buffer_size; | 587 | u32 buffer_size; |
588 | ulong32 cpy_count; | 588 | u32 cpy_count; |
589 | ulong32 ext_error; | 589 | u32 ext_error; |
590 | ulong32 oem_id; | 590 | u32 oem_id; |
591 | ulong32 board_id; | 591 | u32 board_id; |
592 | } PACKED gdth_oem_str_params; | 592 | } __attribute__((packed)) gdth_oem_str_params; |
593 | 593 | ||
594 | typedef struct { | 594 | typedef struct { |
595 | unchar product_0_1_name[16]; | 595 | u8 product_0_1_name[16]; |
596 | unchar product_4_5_name[16]; | 596 | u8 product_4_5_name[16]; |
597 | unchar product_cluster_name[16]; | 597 | u8 product_cluster_name[16]; |
598 | unchar product_reserved[16]; | 598 | u8 product_reserved[16]; |
599 | unchar scsi_cluster_target_vendor_id[16]; | 599 | u8 scsi_cluster_target_vendor_id[16]; |
600 | unchar cluster_raid_fw_name[16]; | 600 | u8 cluster_raid_fw_name[16]; |
601 | unchar oem_brand_name[16]; | 601 | u8 oem_brand_name[16]; |
602 | unchar oem_raid_type[16]; | 602 | u8 oem_raid_type[16]; |
603 | unchar bios_type[13]; | 603 | u8 bios_type[13]; |
604 | unchar bios_title[50]; | 604 | u8 bios_title[50]; |
605 | unchar oem_company_name[37]; | 605 | u8 oem_company_name[37]; |
606 | ulong32 pci_id_1; | 606 | u32 pci_id_1; |
607 | ulong32 pci_id_2; | 607 | u32 pci_id_2; |
608 | unchar validation_status[80]; | 608 | u8 validation_status[80]; |
609 | unchar reserved_1[4]; | 609 | u8 reserved_1[4]; |
610 | unchar scsi_host_drive_inquiry_vendor_id[16]; | 610 | u8 scsi_host_drive_inquiry_vendor_id[16]; |
611 | unchar library_file_template[16]; | 611 | u8 library_file_template[16]; |
612 | unchar reserved_2[16]; | 612 | u8 reserved_2[16]; |
613 | unchar tool_name_1[32]; | 613 | u8 tool_name_1[32]; |
614 | unchar tool_name_2[32]; | 614 | u8 tool_name_2[32]; |
615 | unchar tool_name_3[32]; | 615 | u8 tool_name_3[32]; |
616 | unchar oem_contact_1[84]; | 616 | u8 oem_contact_1[84]; |
617 | unchar oem_contact_2[84]; | 617 | u8 oem_contact_2[84]; |
618 | unchar oem_contact_3[84]; | 618 | u8 oem_contact_3[84]; |
619 | } PACKED gdth_oem_str; | 619 | } __attribute__((packed)) gdth_oem_str; |
620 | 620 | ||
621 | typedef struct { | 621 | typedef struct { |
622 | gdth_oem_str_params params; | 622 | gdth_oem_str_params params; |
623 | gdth_oem_str text; | 623 | gdth_oem_str text; |
624 | } PACKED gdth_oem_str_ioctl; | 624 | } __attribute__((packed)) gdth_oem_str_ioctl; |
625 | 625 | ||
626 | /* board features */ | 626 | /* board features */ |
627 | typedef struct { | 627 | typedef struct { |
628 | unchar chaining; /* Chaining supported */ | 628 | u8 chaining; /* Chaining supported */ |
629 | unchar striping; /* Striping (RAID-0) supp. */ | 629 | u8 striping; /* Striping (RAID-0) supp. */ |
630 | unchar mirroring; /* Mirroring (RAID-1) supp. */ | 630 | u8 mirroring; /* Mirroring (RAID-1) supp. */ |
631 | unchar raid; /* RAID-4/5/10 supported */ | 631 | u8 raid; /* RAID-4/5/10 supported */ |
632 | } PACKED gdth_bfeat_str; | 632 | } __attribute__((packed)) gdth_bfeat_str; |
633 | 633 | ||
634 | /* board info IOCTL */ | 634 | /* board info IOCTL */ |
635 | typedef struct { | 635 | typedef struct { |
636 | ulong32 ser_no; /* serial no. */ | 636 | u32 ser_no; /* serial no. */ |
637 | unchar oem_id[2]; /* OEM ID */ | 637 | u8 oem_id[2]; /* OEM ID */ |
638 | ushort ep_flags; /* eprom flags */ | 638 | u16 ep_flags; /* eprom flags */ |
639 | ulong32 proc_id; /* processor ID */ | 639 | u32 proc_id; /* processor ID */ |
640 | ulong32 memsize; /* memory size (bytes) */ | 640 | u32 memsize; /* memory size (bytes) */ |
641 | unchar mem_banks; /* memory banks */ | 641 | u8 mem_banks; /* memory banks */ |
642 | unchar chan_type; /* channel type */ | 642 | u8 chan_type; /* channel type */ |
643 | unchar chan_count; /* channel count */ | 643 | u8 chan_count; /* channel count */ |
644 | unchar rdongle_pres; /* dongle present? */ | 644 | u8 rdongle_pres; /* dongle present? */ |
645 | ulong32 epr_fw_ver; /* (eprom) firmware version */ | 645 | u32 epr_fw_ver; /* (eprom) firmware version */ |
646 | ulong32 upd_fw_ver; /* (update) firmware version */ | 646 | u32 upd_fw_ver; /* (update) firmware version */ |
647 | ulong32 upd_revision; /* update revision */ | 647 | u32 upd_revision; /* update revision */ |
648 | char type_string[16]; /* controller name */ | 648 | char type_string[16]; /* controller name */ |
649 | char raid_string[16]; /* RAID firmware name */ | 649 | char raid_string[16]; /* RAID firmware name */ |
650 | unchar update_pres; /* update present? */ | 650 | u8 update_pres; /* update present? */ |
651 | unchar xor_pres; /* XOR engine present? */ | 651 | u8 xor_pres; /* XOR engine present? */ |
652 | unchar prom_type; /* ROM type (eprom/flash) */ | 652 | u8 prom_type; /* ROM type (eprom/flash) */ |
653 | unchar prom_count; /* number of ROM devices */ | 653 | u8 prom_count; /* number of ROM devices */ |
654 | ulong32 dup_pres; /* duplexing module present? */ | 654 | u32 dup_pres; /* duplexing module present? */ |
655 | ulong32 chan_pres; /* number of expansion chn. */ | 655 | u32 chan_pres; /* number of expansion chn. */ |
656 | ulong32 mem_pres; /* memory expansion inst. ? */ | 656 | u32 mem_pres; /* memory expansion inst. ? */ |
657 | unchar ft_bus_system; /* fault bus supported? */ | 657 | u8 ft_bus_system; /* fault bus supported? */ |
658 | unchar subtype_valid; /* board_subtype valid? */ | 658 | u8 subtype_valid; /* board_subtype valid? */ |
659 | unchar board_subtype; /* subtype/hardware level */ | 659 | u8 board_subtype; /* subtype/hardware level */ |
660 | unchar ramparity_pres; /* RAM parity check hardware? */ | 660 | u8 ramparity_pres; /* RAM parity check hardware? */ |
661 | } PACKED gdth_binfo_str; | 661 | } __attribute__((packed)) gdth_binfo_str; |
662 | 662 | ||
663 | /* get host drive info */ | 663 | /* get host drive info */ |
664 | typedef struct { | 664 | typedef struct { |
665 | char name[8]; /* host drive name */ | 665 | char name[8]; /* host drive name */ |
666 | ulong32 size; /* size (sectors) */ | 666 | u32 size; /* size (sectors) */ |
667 | unchar host_drive; /* host drive number */ | 667 | u8 host_drive; /* host drive number */ |
668 | unchar log_drive; /* log. drive (master) */ | 668 | u8 log_drive; /* log. drive (master) */ |
669 | unchar reserved; | 669 | u8 reserved; |
670 | unchar rw_attribs; /* r/w attribs */ | 670 | u8 rw_attribs; /* r/w attribs */ |
671 | ulong32 start_sec; /* start sector */ | 671 | u32 start_sec; /* start sector */ |
672 | } PACKED gdth_hentry_str; | 672 | } __attribute__((packed)) gdth_hentry_str; |
673 | 673 | ||
674 | typedef struct { | 674 | typedef struct { |
675 | ulong32 entries; /* entry count */ | 675 | u32 entries; /* entry count */ |
676 | ulong32 offset; /* offset of entries */ | 676 | u32 offset; /* offset of entries */ |
677 | unchar secs_p_head; /* sectors/head */ | 677 | u8 secs_p_head; /* sectors/head */ |
678 | unchar heads_p_cyl; /* heads/cylinder */ | 678 | u8 heads_p_cyl; /* heads/cylinder */ |
679 | unchar reserved; | 679 | u8 reserved; |
680 | unchar clust_drvtype; /* cluster drive type */ | 680 | u8 clust_drvtype; /* cluster drive type */ |
681 | ulong32 location; /* controller number */ | 681 | u32 location; /* controller number */ |
682 | gdth_hentry_str entry[MAX_HDRIVES]; /* entries */ | 682 | gdth_hentry_str entry[MAX_HDRIVES]; /* entries */ |
683 | } PACKED gdth_hget_str; | 683 | } __attribute__((packed)) gdth_hget_str; |
684 | 684 | ||
685 | 685 | ||
686 | /* DPRAM structures */ | 686 | /* DPRAM structures */ |
687 | 687 | ||
688 | /* interface area ISA/PCI */ | 688 | /* interface area ISA/PCI */ |
689 | typedef struct { | 689 | typedef struct { |
690 | unchar S_Cmd_Indx; /* special command */ | 690 | u8 S_Cmd_Indx; /* special command */ |
691 | unchar volatile S_Status; /* status special command */ | 691 | u8 volatile S_Status; /* status special command */ |
692 | ushort reserved1; | 692 | u16 reserved1; |
693 | ulong32 S_Info[4]; /* add. info special command */ | 693 | u32 S_Info[4]; /* add. info special command */ |
694 | unchar volatile Sema0; /* command semaphore */ | 694 | u8 volatile Sema0; /* command semaphore */ |
695 | unchar reserved2[3]; | 695 | u8 reserved2[3]; |
696 | unchar Cmd_Index; /* command number */ | 696 | u8 Cmd_Index; /* command number */ |
697 | unchar reserved3[3]; | 697 | u8 reserved3[3]; |
698 | ushort volatile Status; /* command status */ | 698 | u16 volatile Status; /* command status */ |
699 | ushort Service; /* service(for async.events) */ | 699 | u16 Service; /* service(for async.events) */ |
700 | ulong32 Info[2]; /* additional info */ | 700 | u32 Info[2]; /* additional info */ |
701 | struct { | 701 | struct { |
702 | ushort offset; /* command offs. in the DPRAM*/ | 702 | u16 offset; /* command offs. in the DPRAM*/ |
703 | ushort serv_id; /* service */ | 703 | u16 serv_id; /* service */ |
704 | } PACKED comm_queue[MAXOFFSETS]; /* command queue */ | 704 | } __attribute__((packed)) comm_queue[MAXOFFSETS]; /* command queue */ |
705 | ulong32 bios_reserved[2]; | 705 | u32 bios_reserved[2]; |
706 | unchar gdt_dpr_cmd[1]; /* commands */ | 706 | u8 gdt_dpr_cmd[1]; /* commands */ |
707 | } PACKED gdt_dpr_if; | 707 | } __attribute__((packed)) gdt_dpr_if; |
708 | 708 | ||
709 | /* SRAM structure PCI controllers */ | 709 | /* SRAM structure PCI controllers */ |
710 | typedef struct { | 710 | typedef struct { |
711 | ulong32 magic; /* controller ID from BIOS */ | 711 | u32 magic; /* controller ID from BIOS */ |
712 | ushort need_deinit; /* switch betw. BIOS/driver */ | 712 | u16 need_deinit; /* switch betw. BIOS/driver */ |
713 | unchar switch_support; /* see need_deinit */ | 713 | u8 switch_support; /* see need_deinit */ |
714 | unchar padding[9]; | 714 | u8 padding[9]; |
715 | unchar os_used[16]; /* OS code per service */ | 715 | u8 os_used[16]; /* OS code per service */ |
716 | unchar unused[28]; | 716 | u8 unused[28]; |
717 | unchar fw_magic; /* contr. ID from firmware */ | 717 | u8 fw_magic; /* contr. ID from firmware */ |
718 | } PACKED gdt_pci_sram; | 718 | } __attribute__((packed)) gdt_pci_sram; |
719 | 719 | ||
720 | /* SRAM structure EISA controllers (but NOT GDT3000/3020) */ | 720 | /* SRAM structure EISA controllers (but NOT GDT3000/3020) */ |
721 | typedef struct { | 721 | typedef struct { |
722 | unchar os_used[16]; /* OS code per service */ | 722 | u8 os_used[16]; /* OS code per service */ |
723 | ushort need_deinit; /* switch betw. BIOS/driver */ | 723 | u16 need_deinit; /* switch betw. BIOS/driver */ |
724 | unchar switch_support; /* see need_deinit */ | 724 | u8 switch_support; /* see need_deinit */ |
725 | unchar padding; | 725 | u8 padding; |
726 | } PACKED gdt_eisa_sram; | 726 | } __attribute__((packed)) gdt_eisa_sram; |
727 | 727 | ||
728 | 728 | ||
729 | /* DPRAM ISA controllers */ | 729 | /* DPRAM ISA controllers */ |
730 | typedef struct { | 730 | typedef struct { |
731 | union { | 731 | union { |
732 | struct { | 732 | struct { |
733 | unchar bios_used[0x3c00-32]; /* 15KB - 32Bytes BIOS */ | 733 | u8 bios_used[0x3c00-32]; /* 15KB - 32Bytes BIOS */ |
734 | ulong32 magic; /* controller (EISA) ID */ | 734 | u32 magic; /* controller (EISA) ID */ |
735 | ushort need_deinit; /* switch betw. BIOS/driver */ | 735 | u16 need_deinit; /* switch betw. BIOS/driver */ |
736 | unchar switch_support; /* see need_deinit */ | 736 | u8 switch_support; /* see need_deinit */ |
737 | unchar padding[9]; | 737 | u8 padding[9]; |
738 | unchar os_used[16]; /* OS code per service */ | 738 | u8 os_used[16]; /* OS code per service */ |
739 | } PACKED dp_sram; | 739 | } __attribute__((packed)) dp_sram; |
740 | unchar bios_area[0x4000]; /* 16KB reserved for BIOS */ | 740 | u8 bios_area[0x4000]; /* 16KB reserved for BIOS */ |
741 | } bu; | 741 | } bu; |
742 | union { | 742 | union { |
743 | gdt_dpr_if ic; /* interface area */ | 743 | gdt_dpr_if ic; /* interface area */ |
744 | unchar if_area[0x3000]; /* 12KB for interface */ | 744 | u8 if_area[0x3000]; /* 12KB for interface */ |
745 | } u; | 745 | } u; |
746 | struct { | 746 | struct { |
747 | unchar memlock; /* write protection DPRAM */ | 747 | u8 memlock; /* write protection DPRAM */ |
748 | unchar event; /* release event */ | 748 | u8 event; /* release event */ |
749 | unchar irqen; /* board interrupts enable */ | 749 | u8 irqen; /* board interrupts enable */ |
750 | unchar irqdel; /* acknowledge board int. */ | 750 | u8 irqdel; /* acknowledge board int. */ |
751 | unchar volatile Sema1; /* status semaphore */ | 751 | u8 volatile Sema1; /* status semaphore */ |
752 | unchar rq; /* IRQ/DRQ configuration */ | 752 | u8 rq; /* IRQ/DRQ configuration */ |
753 | } PACKED io; | 753 | } __attribute__((packed)) io; |
754 | } PACKED gdt2_dpram_str; | 754 | } __attribute__((packed)) gdt2_dpram_str; |
755 | 755 | ||
756 | /* DPRAM PCI controllers */ | 756 | /* DPRAM PCI controllers */ |
757 | typedef struct { | 757 | typedef struct { |
758 | union { | 758 | union { |
759 | gdt_dpr_if ic; /* interface area */ | 759 | gdt_dpr_if ic; /* interface area */ |
760 | unchar if_area[0xff0-sizeof(gdt_pci_sram)]; | 760 | u8 if_area[0xff0-sizeof(gdt_pci_sram)]; |
761 | } u; | 761 | } u; |
762 | gdt_pci_sram gdt6sr; /* SRAM structure */ | 762 | gdt_pci_sram gdt6sr; /* SRAM structure */ |
763 | struct { | 763 | struct { |
764 | unchar unused0[1]; | 764 | u8 unused0[1]; |
765 | unchar volatile Sema1; /* command semaphore */ | 765 | u8 volatile Sema1; /* command semaphore */ |
766 | unchar unused1[3]; | 766 | u8 unused1[3]; |
767 | unchar irqen; /* board interrupts enable */ | 767 | u8 irqen; /* board interrupts enable */ |
768 | unchar unused2[2]; | 768 | u8 unused2[2]; |
769 | unchar event; /* release event */ | 769 | u8 event; /* release event */ |
770 | unchar unused3[3]; | 770 | u8 unused3[3]; |
771 | unchar irqdel; /* acknowledge board int. */ | 771 | u8 irqdel; /* acknowledge board int. */ |
772 | unchar unused4[3]; | 772 | u8 unused4[3]; |
773 | } PACKED io; | 773 | } __attribute__((packed)) io; |
774 | } PACKED gdt6_dpram_str; | 774 | } __attribute__((packed)) gdt6_dpram_str; |
775 | 775 | ||
776 | /* PLX register structure (new PCI controllers) */ | 776 | /* PLX register structure (new PCI controllers) */ |
777 | typedef struct { | 777 | typedef struct { |
778 | unchar cfg_reg; /* DPRAM cfg.(2:below 1MB,0:anywhere)*/ | 778 | u8 cfg_reg; /* DPRAM cfg.(2:below 1MB,0:anywhere)*/ |
779 | unchar unused1[0x3f]; | 779 | u8 unused1[0x3f]; |
780 | unchar volatile sema0_reg; /* command semaphore */ | 780 | u8 volatile sema0_reg; /* command semaphore */ |
781 | unchar volatile sema1_reg; /* status semaphore */ | 781 | u8 volatile sema1_reg; /* status semaphore */ |
782 | unchar unused2[2]; | 782 | u8 unused2[2]; |
783 | ushort volatile status; /* command status */ | 783 | u16 volatile status; /* command status */ |
784 | ushort service; /* service */ | 784 | u16 service; /* service */ |
785 | ulong32 info[2]; /* additional info */ | 785 | u32 info[2]; /* additional info */ |
786 | unchar unused3[0x10]; | 786 | u8 unused3[0x10]; |
787 | unchar ldoor_reg; /* PCI to local doorbell */ | 787 | u8 ldoor_reg; /* PCI to local doorbell */ |
788 | unchar unused4[3]; | 788 | u8 unused4[3]; |
789 | unchar volatile edoor_reg; /* local to PCI doorbell */ | 789 | u8 volatile edoor_reg; /* local to PCI doorbell */ |
790 | unchar unused5[3]; | 790 | u8 unused5[3]; |
791 | unchar control0; /* control0 register(unused) */ | 791 | u8 control0; /* control0 register(unused) */ |
792 | unchar control1; /* board interrupts enable */ | 792 | u8 control1; /* board interrupts enable */ |
793 | unchar unused6[0x16]; | 793 | u8 unused6[0x16]; |
794 | } PACKED gdt6c_plx_regs; | 794 | } __attribute__((packed)) gdt6c_plx_regs; |
795 | 795 | ||
796 | /* DPRAM new PCI controllers */ | 796 | /* DPRAM new PCI controllers */ |
797 | typedef struct { | 797 | typedef struct { |
798 | union { | 798 | union { |
799 | gdt_dpr_if ic; /* interface area */ | 799 | gdt_dpr_if ic; /* interface area */ |
800 | unchar if_area[0x4000-sizeof(gdt_pci_sram)]; | 800 | u8 if_area[0x4000-sizeof(gdt_pci_sram)]; |
801 | } u; | 801 | } u; |
802 | gdt_pci_sram gdt6sr; /* SRAM structure */ | 802 | gdt_pci_sram gdt6sr; /* SRAM structure */ |
803 | } PACKED gdt6c_dpram_str; | 803 | } __attribute__((packed)) gdt6c_dpram_str; |
804 | 804 | ||
805 | /* i960 register structure (PCI MPR controllers) */ | 805 | /* i960 register structure (PCI MPR controllers) */ |
806 | typedef struct { | 806 | typedef struct { |
807 | unchar unused1[16]; | 807 | u8 unused1[16]; |
808 | unchar volatile sema0_reg; /* command semaphore */ | 808 | u8 volatile sema0_reg; /* command semaphore */ |
809 | unchar unused2; | 809 | u8 unused2; |
810 | unchar volatile sema1_reg; /* status semaphore */ | 810 | u8 volatile sema1_reg; /* status semaphore */ |
811 | unchar unused3; | 811 | u8 unused3; |
812 | ushort volatile status; /* command status */ | 812 | u16 volatile status; /* command status */ |
813 | ushort service; /* service */ | 813 | u16 service; /* service */ |
814 | ulong32 info[2]; /* additional info */ | 814 | u32 info[2]; /* additional info */ |
815 | unchar ldoor_reg; /* PCI to local doorbell */ | 815 | u8 ldoor_reg; /* PCI to local doorbell */ |
816 | unchar unused4[11]; | 816 | u8 unused4[11]; |
817 | unchar volatile edoor_reg; /* local to PCI doorbell */ | 817 | u8 volatile edoor_reg; /* local to PCI doorbell */ |
818 | unchar unused5[7]; | 818 | u8 unused5[7]; |
819 | unchar edoor_en_reg; /* board interrupts enable */ | 819 | u8 edoor_en_reg; /* board interrupts enable */ |
820 | unchar unused6[27]; | 820 | u8 unused6[27]; |
821 | ulong32 unused7[939]; | 821 | u32 unused7[939]; |
822 | ulong32 severity; | 822 | u32 severity; |
823 | char evt_str[256]; /* event string */ | 823 | char evt_str[256]; /* event string */ |
824 | } PACKED gdt6m_i960_regs; | 824 | } __attribute__((packed)) gdt6m_i960_regs; |
825 | 825 | ||
826 | /* DPRAM PCI MPR controllers */ | 826 | /* DPRAM PCI MPR controllers */ |
827 | typedef struct { | 827 | typedef struct { |
828 | gdt6m_i960_regs i960r; /* 4KB i960 registers */ | 828 | gdt6m_i960_regs i960r; /* 4KB i960 registers */ |
829 | union { | 829 | union { |
830 | gdt_dpr_if ic; /* interface area */ | 830 | gdt_dpr_if ic; /* interface area */ |
831 | unchar if_area[0x3000-sizeof(gdt_pci_sram)]; | 831 | u8 if_area[0x3000-sizeof(gdt_pci_sram)]; |
832 | } u; | 832 | } u; |
833 | gdt_pci_sram gdt6sr; /* SRAM structure */ | 833 | gdt_pci_sram gdt6sr; /* SRAM structure */ |
834 | } PACKED gdt6m_dpram_str; | 834 | } __attribute__((packed)) gdt6m_dpram_str; |
835 | 835 | ||
836 | 836 | ||
837 | /* PCI resources */ | 837 | /* PCI resources */ |
838 | typedef struct { | 838 | typedef struct { |
839 | struct pci_dev *pdev; | 839 | struct pci_dev *pdev; |
840 | ulong dpmem; /* DPRAM address */ | 840 | unsigned long dpmem; /* DPRAM address */ |
841 | ulong io; /* IO address */ | 841 | unsigned long io; /* IO address */ |
842 | } gdth_pci_str; | 842 | } gdth_pci_str; |
843 | 843 | ||
844 | 844 | ||
@@ -846,93 +846,93 @@ typedef struct { | |||
846 | typedef struct { | 846 | typedef struct { |
847 | struct Scsi_Host *shost; | 847 | struct Scsi_Host *shost; |
848 | struct list_head list; | 848 | struct list_head list; |
849 | ushort hanum; | 849 | u16 hanum; |
850 | ushort oem_id; /* OEM */ | 850 | u16 oem_id; /* OEM */ |
851 | ushort type; /* controller class */ | 851 | u16 type; /* controller class */ |
852 | ulong32 stype; /* subtype (PCI: device ID) */ | 852 | u32 stype; /* subtype (PCI: device ID) */ |
853 | ushort fw_vers; /* firmware version */ | 853 | u16 fw_vers; /* firmware version */ |
854 | ushort cache_feat; /* feat. cache serv. (s/g,..)*/ | 854 | u16 cache_feat; /* feat. cache serv. (s/g,..)*/ |
855 | ushort raw_feat; /* feat. raw service (s/g,..)*/ | 855 | u16 raw_feat; /* feat. raw service (s/g,..)*/ |
856 | ushort screen_feat; /* feat. raw service (s/g,..)*/ | 856 | u16 screen_feat; /* feat. raw service (s/g,..)*/ |
857 | ushort bmic; /* BMIC address (EISA) */ | 857 | u16 bmic; /* BMIC address (EISA) */ |
858 | void __iomem *brd; /* DPRAM address */ | 858 | void __iomem *brd; /* DPRAM address */ |
859 | ulong32 brd_phys; /* slot number/BIOS address */ | 859 | u32 brd_phys; /* slot number/BIOS address */ |
860 | gdt6c_plx_regs *plx; /* PLX regs (new PCI contr.) */ | 860 | gdt6c_plx_regs *plx; /* PLX regs (new PCI contr.) */ |
861 | gdth_cmd_str cmdext; | 861 | gdth_cmd_str cmdext; |
862 | gdth_cmd_str *pccb; /* address command structure */ | 862 | gdth_cmd_str *pccb; /* address command structure */ |
863 | ulong32 ccb_phys; /* phys. address */ | 863 | u32 ccb_phys; /* phys. address */ |
864 | #ifdef INT_COAL | 864 | #ifdef INT_COAL |
865 | gdth_coal_status *coal_stat; /* buffer for coalescing int.*/ | 865 | gdth_coal_status *coal_stat; /* buffer for coalescing int.*/ |
866 | ulong64 coal_stat_phys; /* phys. address */ | 866 | u64 coal_stat_phys; /* phys. address */ |
867 | #endif | 867 | #endif |
868 | char *pscratch; /* scratch (DMA) buffer */ | 868 | char *pscratch; /* scratch (DMA) buffer */ |
869 | ulong64 scratch_phys; /* phys. address */ | 869 | u64 scratch_phys; /* phys. address */ |
870 | unchar scratch_busy; /* in use? */ | 870 | u8 scratch_busy; /* in use? */ |
871 | unchar dma64_support; /* 64-bit DMA supported? */ | 871 | u8 dma64_support; /* 64-bit DMA supported? */ |
872 | gdth_msg_str *pmsg; /* message buffer */ | 872 | gdth_msg_str *pmsg; /* message buffer */ |
873 | ulong64 msg_phys; /* phys. address */ | 873 | u64 msg_phys; /* phys. address */ |
874 | unchar scan_mode; /* current scan mode */ | 874 | u8 scan_mode; /* current scan mode */ |
875 | unchar irq; /* IRQ */ | 875 | u8 irq; /* IRQ */ |
876 | unchar drq; /* DRQ (ISA controllers) */ | 876 | u8 drq; /* DRQ (ISA controllers) */ |
877 | ushort status; /* command status */ | 877 | u16 status; /* command status */ |
878 | ushort service; /* service/firmware ver./.. */ | 878 | u16 service; /* service/firmware ver./.. */ |
879 | ulong32 info; | 879 | u32 info; |
880 | ulong32 info2; /* additional info */ | 880 | u32 info2; /* additional info */ |
881 | Scsi_Cmnd *req_first; /* top of request queue */ | 881 | Scsi_Cmnd *req_first; /* top of request queue */ |
882 | struct { | 882 | struct { |
883 | unchar present; /* Flag: host drive present? */ | 883 | u8 present; /* Flag: host drive present? */ |
884 | unchar is_logdrv; /* Flag: log. drive (master)? */ | 884 | u8 is_logdrv; /* Flag: log. drive (master)? */ |
885 | unchar is_arraydrv; /* Flag: array drive? */ | 885 | u8 is_arraydrv; /* Flag: array drive? */ |
886 | unchar is_master; /* Flag: array drive master? */ | 886 | u8 is_master; /* Flag: array drive master? */ |
887 | unchar is_parity; /* Flag: parity drive? */ | 887 | u8 is_parity; /* Flag: parity drive? */ |
888 | unchar is_hotfix; /* Flag: hotfix drive? */ | 888 | u8 is_hotfix; /* Flag: hotfix drive? */ |
889 | unchar master_no; /* number of master drive */ | 889 | u8 master_no; /* number of master drive */ |
890 | unchar lock; /* drive locked? (hot plug) */ | 890 | u8 lock; /* drive locked? (hot plug) */ |
891 | unchar heads; /* mapping */ | 891 | u8 heads; /* mapping */ |
892 | unchar secs; | 892 | u8 secs; |
893 | ushort devtype; /* further information */ | 893 | u16 devtype; /* further information */ |
894 | ulong64 size; /* capacity */ | 894 | u64 size; /* capacity */ |
895 | unchar ldr_no; /* log. drive no. */ | 895 | u8 ldr_no; /* log. drive no. */ |
896 | unchar rw_attribs; /* r/w attributes */ | 896 | u8 rw_attribs; /* r/w attributes */ |
897 | unchar cluster_type; /* cluster properties */ | 897 | u8 cluster_type; /* cluster properties */ |
898 | unchar media_changed; /* Flag:MOUNT/UNMOUNT occured */ | 898 | u8 media_changed; /* Flag:MOUNT/UNMOUNT occured */ |
899 | ulong32 start_sec; /* start sector */ | 899 | u32 start_sec; /* start sector */ |
900 | } hdr[MAX_LDRIVES]; /* host drives */ | 900 | } hdr[MAX_LDRIVES]; /* host drives */ |
901 | struct { | 901 | struct { |
902 | unchar lock; /* channel locked? (hot plug) */ | 902 | u8 lock; /* channel locked? (hot plug) */ |
903 | unchar pdev_cnt; /* physical device count */ | 903 | u8 pdev_cnt; /* physical device count */ |
904 | unchar local_no; /* local channel number */ | 904 | u8 local_no; /* local channel number */ |
905 | unchar io_cnt[MAXID]; /* current IO count */ | 905 | u8 io_cnt[MAXID]; /* current IO count */ |
906 | ulong32 address; /* channel address */ | 906 | u32 address; /* channel address */ |
907 | ulong32 id_list[MAXID]; /* IDs of the phys. devices */ | 907 | u32 id_list[MAXID]; /* IDs of the phys. devices */ |
908 | } raw[MAXBUS]; /* SCSI channels */ | 908 | } raw[MAXBUS]; /* SCSI channels */ |
909 | struct { | 909 | struct { |
910 | Scsi_Cmnd *cmnd; /* pending request */ | 910 | Scsi_Cmnd *cmnd; /* pending request */ |
911 | ushort service; /* service */ | 911 | u16 service; /* service */ |
912 | } cmd_tab[GDTH_MAXCMDS]; /* table of pend. requests */ | 912 | } cmd_tab[GDTH_MAXCMDS]; /* table of pend. requests */ |
913 | struct gdth_cmndinfo { /* per-command private info */ | 913 | struct gdth_cmndinfo { /* per-command private info */ |
914 | int index; | 914 | int index; |
915 | int internal_command; /* don't call scsi_done */ | 915 | int internal_command; /* don't call scsi_done */ |
916 | gdth_cmd_str *internal_cmd_str; /* crier for internal messages*/ | 916 | gdth_cmd_str *internal_cmd_str; /* crier for internal messages*/ |
917 | dma_addr_t sense_paddr; /* sense dma-addr */ | 917 | dma_addr_t sense_paddr; /* sense dma-addr */ |
918 | unchar priority; | 918 | u8 priority; |
919 | int timeout_count; /* # of timeout calls */ | 919 | int timeout_count; /* # of timeout calls */ |
920 | volatile int wait_for_completion; | 920 | volatile int wait_for_completion; |
921 | ushort status; | 921 | u16 status; |
922 | ulong32 info; | 922 | u32 info; |
923 | enum dma_data_direction dma_dir; | 923 | enum dma_data_direction dma_dir; |
924 | int phase; /* ???? */ | 924 | int phase; /* ???? */ |
925 | int OpCode; | 925 | int OpCode; |
926 | } cmndinfo[GDTH_MAXCMDS]; /* index==0 is free */ | 926 | } cmndinfo[GDTH_MAXCMDS]; /* index==0 is free */ |
927 | unchar bus_cnt; /* SCSI bus count */ | 927 | u8 bus_cnt; /* SCSI bus count */ |
928 | unchar tid_cnt; /* Target ID count */ | 928 | u8 tid_cnt; /* Target ID count */ |
929 | unchar bus_id[MAXBUS]; /* IOP IDs */ | 929 | u8 bus_id[MAXBUS]; /* IOP IDs */ |
930 | unchar virt_bus; /* number of virtual bus */ | 930 | u8 virt_bus; /* number of virtual bus */ |
931 | unchar more_proc; /* more /proc info supported */ | 931 | u8 more_proc; /* more /proc info supported */ |
932 | ushort cmd_cnt; /* command count in DPRAM */ | 932 | u16 cmd_cnt; /* command count in DPRAM */ |
933 | ushort cmd_len; /* length of actual command */ | 933 | u16 cmd_len; /* length of actual command */ |
934 | ushort cmd_offs_dpmem; /* actual offset in DPRAM */ | 934 | u16 cmd_offs_dpmem; /* actual offset in DPRAM */ |
935 | ushort ic_all_size; /* sizeof DPRAM interf. area */ | 935 | u16 ic_all_size; /* sizeof DPRAM interf. area */ |
936 | gdth_cpar_str cpar; /* controller cache par. */ | 936 | gdth_cpar_str cpar; /* controller cache par. */ |
937 | gdth_bfeat_str bfeat; /* controller features */ | 937 | gdth_bfeat_str bfeat; /* controller features */ |
938 | gdth_binfo_str binfo; /* controller info */ | 938 | gdth_binfo_str binfo; /* controller info */ |
@@ -941,7 +941,7 @@ typedef struct { | |||
941 | struct pci_dev *pdev; | 941 | struct pci_dev *pdev; |
942 | char oem_name[8]; | 942 | char oem_name[8]; |
943 | #ifdef GDTH_DMA_STATISTICS | 943 | #ifdef GDTH_DMA_STATISTICS |
944 | ulong dma32_cnt, dma64_cnt; /* statistics: DMA buffer */ | 944 | unsigned long dma32_cnt, dma64_cnt; /* statistics: DMA buffer */ |
945 | #endif | 945 | #endif |
946 | struct scsi_device *sdev; | 946 | struct scsi_device *sdev; |
947 | } gdth_ha_str; | 947 | } gdth_ha_str; |
@@ -953,65 +953,65 @@ static inline struct gdth_cmndinfo *gdth_cmnd_priv(struct scsi_cmnd* cmd) | |||
953 | 953 | ||
954 | /* INQUIRY data format */ | 954 | /* INQUIRY data format */ |
955 | typedef struct { | 955 | typedef struct { |
956 | unchar type_qual; | 956 | u8 type_qual; |
957 | unchar modif_rmb; | 957 | u8 modif_rmb; |
958 | unchar version; | 958 | u8 version; |
959 | unchar resp_aenc; | 959 | u8 resp_aenc; |
960 | unchar add_length; | 960 | u8 add_length; |
961 | unchar reserved1; | 961 | u8 reserved1; |
962 | unchar reserved2; | 962 | u8 reserved2; |
963 | unchar misc; | 963 | u8 misc; |
964 | unchar vendor[8]; | 964 | u8 vendor[8]; |
965 | unchar product[16]; | 965 | u8 product[16]; |
966 | unchar revision[4]; | 966 | u8 revision[4]; |
967 | } PACKED gdth_inq_data; | 967 | } __attribute__((packed)) gdth_inq_data; |
968 | 968 | ||
969 | /* READ_CAPACITY data format */ | 969 | /* READ_CAPACITY data format */ |
970 | typedef struct { | 970 | typedef struct { |
971 | ulong32 last_block_no; | 971 | u32 last_block_no; |
972 | ulong32 block_length; | 972 | u32 block_length; |
973 | } PACKED gdth_rdcap_data; | 973 | } __attribute__((packed)) gdth_rdcap_data; |
974 | 974 | ||
975 | /* READ_CAPACITY (16) data format */ | 975 | /* READ_CAPACITY (16) data format */ |
976 | typedef struct { | 976 | typedef struct { |
977 | ulong64 last_block_no; | 977 | u64 last_block_no; |
978 | ulong32 block_length; | 978 | u32 block_length; |
979 | } PACKED gdth_rdcap16_data; | 979 | } __attribute__((packed)) gdth_rdcap16_data; |
980 | 980 | ||
981 | /* REQUEST_SENSE data format */ | 981 | /* REQUEST_SENSE data format */ |
982 | typedef struct { | 982 | typedef struct { |
983 | unchar errorcode; | 983 | u8 errorcode; |
984 | unchar segno; | 984 | u8 segno; |
985 | unchar key; | 985 | u8 key; |
986 | ulong32 info; | 986 | u32 info; |
987 | unchar add_length; | 987 | u8 add_length; |
988 | ulong32 cmd_info; | 988 | u32 cmd_info; |
989 | unchar adsc; | 989 | u8 adsc; |
990 | unchar adsq; | 990 | u8 adsq; |
991 | unchar fruc; | 991 | u8 fruc; |
992 | unchar key_spec[3]; | 992 | u8 key_spec[3]; |
993 | } PACKED gdth_sense_data; | 993 | } __attribute__((packed)) gdth_sense_data; |
994 | 994 | ||
995 | /* MODE_SENSE data format */ | 995 | /* MODE_SENSE data format */ |
996 | typedef struct { | 996 | typedef struct { |
997 | struct { | 997 | struct { |
998 | unchar data_length; | 998 | u8 data_length; |
999 | unchar med_type; | 999 | u8 med_type; |
1000 | unchar dev_par; | 1000 | u8 dev_par; |
1001 | unchar bd_length; | 1001 | u8 bd_length; |
1002 | } PACKED hd; | 1002 | } __attribute__((packed)) hd; |
1003 | struct { | 1003 | struct { |
1004 | unchar dens_code; | 1004 | u8 dens_code; |
1005 | unchar block_count[3]; | 1005 | u8 block_count[3]; |
1006 | unchar reserved; | 1006 | u8 reserved; |
1007 | unchar block_length[3]; | 1007 | u8 block_length[3]; |
1008 | } PACKED bd; | 1008 | } __attribute__((packed)) bd; |
1009 | } PACKED gdth_modep_data; | 1009 | } __attribute__((packed)) gdth_modep_data; |
1010 | 1010 | ||
1011 | /* stack frame */ | 1011 | /* stack frame */ |
1012 | typedef struct { | 1012 | typedef struct { |
1013 | ulong b[10]; /* 32/64 bit compiler ! */ | 1013 | unsigned long b[10]; /* 32/64 bit compiler ! */ |
1014 | } PACKED gdth_stackframe; | 1014 | } __attribute__((packed)) gdth_stackframe; |
1015 | 1015 | ||
1016 | 1016 | ||
1017 | /* function prototyping */ | 1017 | /* function prototyping */ |