|
|
1.1 ! root 1: ! 2: struct lun_map { ! 3: __u8 id:5, ! 4: chan:3; ! 5: __u8 lun; ! 6: }; ! 7: ! 8: typedef struct emul_pp { ! 9: __u8 p_code:6, ! 10: null:1, ! 11: p_save:1; ! 12: __u8 p_length; ! 13: __u16 cylinder; ! 14: __u8 heads; ! 15: __u8 sectors; ! 16: __u8 null2; ! 17: __u8 s_lunmap:4, ! 18: ems:1; ! 19: __u16 drive_type; /* In Little Endian ! */ ! 20: struct lun_map lunmap[4]; ! 21: }emulpp; ! 22: ! 23: ! 24: /* Log Sense pages */ ! 25: ! 26: typedef struct log_sheader { ! 27: __u8 page_code, ! 28: reserved; ! 29: __u16 length; ! 30: }logsh; ! 31: ! 32: ! 33: /* Log Sense Statistics */ ! 34: ! 35: typedef struct read_command_statistics { ! 36: __u16 code; /* 0x01 */ ! 37: __u8 flags; ! 38: __u8 length; /* 0x24 */ ! 39: __u32 h_commands, ! 40: uncached, ! 41: la_cmds, ! 42: la_blks, ! 43: la_hits, ! 44: missed, ! 45: hits, ! 46: seq_la_blks, ! 47: seq_la_hits; ! 48: }r_cmd_stat; ! 49: ! 50: typedef struct write_command_statistics { ! 51: __u16 code; /* 0x03 */ ! 52: __u8 flags; ! 53: __u8 length; /* 0x28 */ ! 54: __u32 h_commands, ! 55: uncached, ! 56: thru, ! 57: bypass, ! 58: soft_err, ! 59: hits, ! 60: b_idle, ! 61: b_activ, ! 62: b_blks, ! 63: b_blks_clean; ! 64: }w_cmd_stat; ! 65: ! 66: typedef struct host_command_statistics { ! 67: __u16 code; /* 0x02, 0x04 */ ! 68: __u8 flags; ! 69: __u8 length; /* 0x30 */ ! 70: __u32 sizes[12]; ! 71: }hst_cmd_stat; ! 72: ! 73: typedef struct physical_command_statistics { ! 74: __u16 code; /* 0x06, 0x07 */ ! 75: __u8 flags; ! 76: __u8 length; /* 0x34 */ ! 77: __u32 sizes[13]; ! 78: }phy_cmd_stat; ! 79: ! 80: typedef struct misc_device_statistics { ! 81: __u16 code; /* 0x05 */ ! 82: __u8 flags; ! 83: __u8 length; /* 0x10 */ ! 84: __u32 disconnect, ! 85: pass_thru, ! 86: sg_commands, ! 87: stripe_boundary_crosses; ! 88: }msc_stats; ! 89: ! 90: /* Configuration Pages */ ! 91: ! 92: typedef struct controller_configuration { ! 93: __u16 code; /* 0x01 */ ! 94: __u8 flags; ! 95: __u8 length; /* 0x02 */ ! 96: __u8 intt:1, ! 97: sec:1, ! 98: csh:1, ! 99: key:1, ! 100: tmr:1, ! 101: srs:1, ! 102: nvr:1; ! 103: __u8 interrupt; ! 104: }coco; ! 105: ! 106: typedef struct controller_hardware_errors { ! 107: __u16 code; /* 0x02 */ ! 108: __u8 flags; ! 109: __u8 length; /* 0x02 */ ! 110: __u8 unused:1, ! 111: per:1; ! 112: __u8 interrupt; ! 113: }coher; ! 114: ! 115: typedef struct memory_map { ! 116: __u16 code; /* 0x03, 0x04 */ ! 117: __u8 flags; ! 118: __u8 length; /* 0x04 */ ! 119: __u32 memory_map; ! 120: }mema; ! 121: ! 122: typedef struct scsi_transfer { ! 123: __u16 code; /* 0x05 */ ! 124: __u8 flags; ! 125: __u8 length; /* 0x04 */ ! 126: __u8 offset, ! 127: period; ! 128: __u16 speed; ! 129: }scsitrans; ! 130: ! 131: typedef struct scsi_modes { ! 132: __u16 code; /* 0x06 */ ! 133: __u8 flags; ! 134: __u8 length; /* 0x02 */ ! 135: __u8 que:1, ! 136: cdis:1, ! 137: wtru:1, ! 138: dasd:1, ! 139: ncr:1, ! 140: awre:1; ! 141: __u8 reserved; ! 142: }scsimod; ! 143: ! 144: typedef struct host_bus { ! 145: __u16 code; /* 0x07 */ ! 146: __u8 flags; ! 147: __u8 length; /* 0x02 */ ! 148: __u8 speed:6, ! 149: pci:1, ! 150: eisa:1; ! 151: __u8 reserved; ! 152: }hobu; ! 153: ! 154: typedef struct scsi_bus { ! 155: __u16 code; /* 0x08 */ ! 156: __u8 flags; ! 157: __u8 length; /* 0x02 */ ! 158: __u8 speed:4, ! 159: res:1, ! 160: ext:1, ! 161: wide:1, ! 162: dif:1; ! 163: __u8 busnum; ! 164: }scbu; ! 165: ! 166: typedef struct board_type { ! 167: __u16 code; /* 0x09 */ ! 168: __u8 flags; ! 169: __u8 length; /* 0x04 */ ! 170: __u8 unused:1, ! 171: cmi:1, ! 172: dmi:1, ! 173: cm4k:1, ! 174: cm4:1, ! 175: dm4k:1, ! 176: dm4:1, ! 177: hba:1; ! 178: __u8 cpu_type, ! 179: cpu_speed; ! 180: __u8 sx1:1, ! 181: sx2:1, ! 182: unused2:4, ! 183: alrm:1, ! 184: srom:1; ! 185: }boty; ! 186: ! 187: typedef struct memory_config { ! 188: __u16 code; /* 0x0a */ ! 189: __u8 flags; ! 190: __u8 length; /* 0x04 */ ! 191: __u8 banksize[4]; ! 192: }memco; ! 193: ! 194: typedef struct firmware_info { ! 195: __u16 code; /* 0x0b */ ! 196: __u8 flags; ! 197: __u8 length; /* 0x04 */ ! 198: __u8 dnld:1, ! 199: bs528:1, ! 200: fmt:1, ! 201: fw528:1; ! 202: __u8 unused1, ! 203: fw_type, ! 204: unused; ! 205: }firm; ! 206: ! 207: typedef struct subsystem_info { ! 208: __u16 code; /* 0x0c */ ! 209: __u8 flags; ! 210: __u8 length; /* 0x02 */ ! 211: __u8 shlf:1, ! 212: swap:1, ! 213: noss:1; ! 214: __u8 reserved; ! 215: }subinf; ! 216: ! 217: typedef struct per_channel_info { ! 218: __u16 code; /* 0x0d */ ! 219: __u8 flags; ! 220: __u8 length; /* 0x02 */ ! 221: __u8 channel; ! 222: __u8 shlf:1, ! 223: swap:1, ! 224: noss:1, ! 225: srs:1, ! 226: que:1, ! 227: ext:1, ! 228: wide:1, ! 229: diff:1; ! 230: }pcinf; ! 231: ! 232: typedef struct array_limits { ! 233: __u16 code; /* 0x0e */ ! 234: __u8 flags; ! 235: __u8 length; /* 0x04 */ ! 236: __u8 max_groups, ! 237: raid0_drv, ! 238: raid35_drv, ! 239: unused; ! 240: }arrlim; ! 241: ! 242: /* ! 243: * Overrides for Emacs so that we follow Linus's tabbing style. ! 244: * Emacs will notice this stuff at the end of the file and automatically ! 245: * adjust the settings for this buffer only. This must remain at the end ! 246: * of the file. ! 247: * --------------------------------------------------------------------------- ! 248: * Local variables: ! 249: * c-indent-level: 4 ! 250: * c-brace-imaginary-offset: 0 ! 251: * c-brace-offset: -4 ! 252: * c-argdecl-indent: 4 ! 253: * c-label-offset: -4 ! 254: * c-continued-statement-offset: 4 ! 255: * c-continued-brace-offset: 0 ! 256: * indent-tabs-mode: nil ! 257: * tab-width: 8 ! 258: * End: ! 259: */ ! 260:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.