case I2O_CLASS_BUS_ADAPTER_PORT:
case I2O_CLASS_BUS_ADAPTER:
static int i2o_seq_show_lct(struct seq_file *seq, void *v){	struct i2o_controller *c = (struct i2o_controller *)seq->private;	i2o_lct *lct = (i2o_lct *) c->lct;	int entries;	int i;#define BUS_TABLE_SIZE 3	static char *bus_ports[] = {		"Generic Bus",		"SCSI Bus",		"Fibre Channel Bus"	};	entries = (lct->table_size - 3) / 9;	seq_printf(seq, "LCT contains %d %s\n", entries,		   entries == 1 ? "entry" : "entries");	if (lct->boot_tid)		seq_printf(seq, "Boot Device @ ID %d\n", lct->boot_tid);	seq_printf(seq, "Current Change Indicator: %#10x\n", lct->change_ind);	for (i = 0; i < entries; i++) {		seq_printf(seq, "Entry %d\n", i);		seq_printf(seq, "  Class, SubClass  : %s",			   i2o_get_class_name(lct->lct_entry[i].class_id));		/*		 *      Classes which we'll print subclass info for		 */		switch (lct->lct_entry[i].class_id & 0xFFF) {		case I2O_CLASS_RANDOM_BLOCK_STORAGE:			switch (lct->lct_entry[i].sub_class) {			case 0x00:				seq_printf(seq, ", Direct-Access Read/Write");				break;			case 0x04:				seq_printf(seq, ", WORM Drive");				break;			case 0x05:				seq_printf(seq, ", CD-ROM Drive");				break;			case 0x07:				seq_printf(seq, ", Optical Memory Device");				break;			default:				seq_printf(seq, ", Unknown (0x%02x)",					   lct->lct_entry[i].sub_class);				break;			}			break;		case I2O_CLASS_LAN:			switch (lct->lct_entry[i].sub_class & 0xFF) {			case 0x30:				seq_printf(seq, ", Ethernet");				break;			case 0x40:				seq_printf(seq, ", 100base VG");				break;			case 0x50:				seq_printf(seq, ", IEEE 802.5/Token-Ring");				break;			case 0x60:				seq_printf(seq, ", ANSI X3T9.5 FDDI");				break;			case 0x70:				seq_printf(seq, ", Fibre Channel");				break;			default:				seq_printf(seq, ", Unknown Sub-Class (0x%02x)",					   lct->lct_entry[i].sub_class & 0xFF);				break;			}			break;		case I2O_CLASS_SCSI_PERIPHERAL:			if (lct->lct_entry[i].sub_class < SCSI_TABLE_SIZE)				seq_printf(seq, ", %s",					   scsi_devices[lct->lct_entry[i].							sub_class]);			else				seq_printf(seq, ", Unknown Device Type");			break;		case I2O_CLASS_BUS_ADAPTER_PORT:			if (lct->lct_entry[i].sub_class < BUS_TABLE_SIZE)				seq_printf(seq, ", %s",					   bus_ports[lct->lct_entry[i].						     sub_class]);			else				seq_printf(seq, ", Unknown Bus Type");			break;		}		seq_printf(seq, "\n");		seq_printf(seq, "  Local TID        : 0x%03x\n",			   lct->lct_entry[i].tid);		seq_printf(seq, "  User TID         : 0x%03x\n",			   lct->lct_entry[i].user_tid);		seq_printf(seq, "  Parent TID       : 0x%03x\n",			   lct->lct_entry[i].parent_tid);		seq_printf(seq, "  Identity Tag     : 0x%x%x%x%x%x%x%x%x\n",			   lct->lct_entry[i].identity_tag[0],			   lct->lct_entry[i].identity_tag[1],			   lct->lct_entry[i].identity_tag[2],			   lct->lct_entry[i].identity_tag[3],			   lct->lct_entry[i].identity_tag[4],			   lct->lct_entry[i].identity_tag[5],			   lct->lct_entry[i].identity_tag[6],			   lct->lct_entry[i].identity_tag[7]);		seq_printf(seq, "  Change Indicator : %0#10x\n",			   lct->lct_entry[i].change_ind);		seq_printf(seq, "  Event Capab Mask : %0#10x\n",			   lct->lct_entry[i].device_flags);	}	return 0;}