extractedLnx/linux/drivers/i2o/i2o_proc.c_i2o_proc_read_lan_media_operation.c
int i2o_proc_read_lan_media_operation(char *buf, char **start, off_t offset,
int len, int *eof, void *data)
{
struct i2o_device *d = (struct i2o_device*)data;
static u32 work32[9];
static u8 *work8 = (u8*)work32;
static u64 *work64 = (u64*)work32;
int token;
spin_lock(&i2o_proc_lock);
len = 0;
token = i2o_query_scalar(d->controller, d->id, proc_context,
0x0005, -1, &work32, 36, &i2o_proc_token);
if(token < 0)
{
len += sprintf(buf, "Timeout waiting for reply from IOP\n");
spin_unlock(&i2o_proc_lock);
return len;
}
len += sprintf(buf, "Connector type: ");
switch(work32[0])
{
case 0x00000000:
len += sprintf(buf+len, "OTHER\n");
break;
case 0x00000001:
len += sprintf(buf+len, "UNKNOWN\n");
break;
case 0x00000002:
len += sprintf(buf+len, "AUI\n");
break;
case 0x00000003:
len += sprintf(buf+len, "UTP\n");
break;
case 0x00000004:
len += sprintf(buf+len, "BNC\n");
break;
case 0x00000005:
len += sprintf(buf+len, "RJ45\n");
break;
case 0x00000006:
len += sprintf(buf+len, "STP DB9\n");
break;
case 0x00000007:
len += sprintf(buf+len, "FIBER MIC\n");
break;
case 0x00000008:
len += sprintf(buf+len, "APPLE AUI\n");
break;
case 0x00000009:
len += sprintf(buf+len, "MII\n");
break;
case 0x0000000A:
len += sprintf(buf+len, "DB9\n");
break;
case 0x0000000B:
len += sprintf(buf+len, "HSSDC\n");
break;
case 0x0000000C:
len += sprintf(buf+len, "DUPLEX SC FIBER\n");
break;
case 0x0000000D:
len += sprintf(buf+len, "DUPLEX ST FIBER\n");
break;
case 0x0000000E:
len += sprintf(buf+len, "TNC/BNC\n");
break;
case 0xFFFFFFFF:
len += sprintf(buf+len, "HW DEFAULT\n");
break;
}
len += sprintf(buf+len, "Connection type: ");
switch(work32[1])
{
case I2O_LAN_UNKNOWN:
len += sprintf(buf+len, "UNKNOWN\n");
break;
case I2O_LAN_AUI:
len += sprintf(buf+len, "AUI\n");
break;
case I2O_LAN_10BASE5:
len += sprintf(buf+len, "10BASE5\n");
break;
case I2O_LAN_FIORL:
len += sprintf(buf+len, "FIORL\n");
break;
case I2O_LAN_10BASE2:
len += sprintf(buf+len, "10BASE2\n");
break;
case I2O_LAN_10BROAD36:
len += sprintf(buf+len, "10BROAD36\n");
break;
case I2O_LAN_10BASE_T:
len += sprintf(buf+len, "10BASE-T\n");
break;
case I2O_LAN_10BASE_FP:
len += sprintf(buf+len, "10BASE-FP\n");
break;
case I2O_LAN_10BASE_FB:
len += sprintf(buf+len, "10BASE-FB\n");
break;
case I2O_LAN_10BASE_FL:
len += sprintf(buf+len, "10BASE-FL\n");
break;
case I2O_LAN_100BASE_TX:
len += sprintf(buf+len, "100BASE-TX\n");
break;
case I2O_LAN_100BASE_FX:
len += sprintf(buf+len, "100BASE-FX\n");
break;
case I2O_LAN_100BASE_T4:
len += sprintf(buf+len, "100BASE-T4\n");
break;
case I2O_LAN_1000BASE_SX:
len += sprintf(buf+len, "1000BASE-SX\n");
break;
case I2O_LAN_1000BASE_LX:
len += sprintf(buf+len, "1000BASE-LX\n");
break;
case I2O_LAN_1000BASE_CX:
len += sprintf(buf+len, "1000BASE-CX\n");
break;
case I2O_LAN_1000BASE_T:
len += sprintf(buf+len, "1000BASE-T\n");
break;
case I2O_LAN_100VG_ETHERNET:
len += sprintf(buf+len, "100VG-ETHERNET\n");
break;
case I2O_LAN_100VG_TR:
len += sprintf(buf+len, "100VG-TOKEN RING\n");
break;
case I2O_LAN_4MBIT:
len += sprintf(buf+len, "4MBIT TOKEN RING\n");
break;
case I2O_LAN_16MBIT:
len += sprintf(buf+len, "16 Mb Token Ring\n");
break;
case I2O_LAN_125MBAUD:
len += sprintf(buf+len, "125 MBAUD FDDI\n");
break;
case I2O_LAN_POINT_POINT:
len += sprintf(buf+len, "Point-to-point\n");
break;
case I2O_LAN_ARB_LOOP:
len += sprintf(buf+len, "Arbitrated loop\n");
break;
case I2O_LAN_PUBLIC_LOOP:
len += sprintf(buf+len, "Public loop\n");
break;
case I2O_LAN_FABRIC:
len += sprintf(buf+len, "Fabric\n");
break;
case I2O_LAN_EMULATION:
len += sprintf(buf+len, "Emulation\n");
break;
case I2O_LAN_OTHER:
len += sprintf(buf+len, "Other\n");
break;
case I2O_LAN_DEFAULT:
len += sprintf(buf+len, "HW default\n");
break;
}
len += sprintf(buf+len, "Current Tx Wire Speed: " FMT_U64_HEX " bps\n",
U64_VAL(&work64[1]));
len += sprintf(buf+len, "Current Rx Wire Speed: " FMT_U64_HEX " bps\n",
U64_VAL(&work64[2]));
len += sprintf(buf+len, "%s duplex\n", (work8[24]&1)?"Full":"Half");
len += sprintf(buf+len, "Link status: ");
if(work8[25] == 0x00)
len += sprintf(buf+len, "Unknown\n");
else if(work8[25] == 0x01)
len += sprintf(buf+len, "Normal\n");
else if(work8[25] == 0x02)
len += sprintf(buf+len, "Failure\n");
else if(work8[25] == 0x03)
len += sprintf(buf+len, "Reset\n");
else
len += sprintf(buf+len, "Unspecified\n");
if (d->i2oversion == 0x00) { /* Reserved in 1.53 and 2.0 */
len += sprintf(buf+len, "Bad packets handled by: %s\n",
(work8[26] == 0xFF)?"host":"DDM");
}
if (d->i2oversion != 0x00) {
len += sprintf(buf+len, "Duplex mode target: ");
switch (work8[27]) {
case 0:
len += sprintf(buf+len, "Half Duplex\n");
break;
case 1:
len += sprintf(buf+len, "Full Duplex\n");
break;
default:
len += sprintf(buf+len, "\n");
break;
}
len += sprintf(buf+len, "Connector type target: ");
switch(work32[7])
{
case 0x00000000:
len += sprintf(buf+len, "OTHER\n");
break;
case 0x00000001:
len += sprintf(buf+len, "UNKNOWN\n");
break;
case 0x00000002:
len += sprintf(buf+len, "AUI\n");
break;
case 0x00000003:
len += sprintf(buf+len, "UTP\n");
break;
case 0x00000004:
len += sprintf(buf+len, "BNC\n");
break;
case 0x00000005:
len += sprintf(buf+len, "RJ45\n");
break;
case 0x00000006:
len += sprintf(buf+len, "STP DB9\n");
break;
case 0x00000007:
len += sprintf(buf+len, "FIBER MIC\n");
break;
case 0x00000008:
len += sprintf(buf+len, "APPLE AUI\n");
break;
case 0x00000009:
len += sprintf(buf+len, "MII\n");
break;
case 0x0000000A:
len += sprintf(buf+len, "DB9\n");
break;
case 0x0000000B:
len += sprintf(buf+len, "HSSDC\n");
break;
case 0x0000000C:
len += sprintf(buf+len, "DUPLEX SC FIBER\n");
break;
case 0x0000000D:
len += sprintf(buf+len, "DUPLEX ST FIBER\n");
break;
case 0x0000000E:
len += sprintf(buf+len, "TNC/BNC\n");
break;
case 0xFFFFFFFF:
len += sprintf(buf+len, "HW DEFAULT\n");
break;
default:
len += sprintf(buf+len, "\n");
break;
}
len += sprintf(buf+len, "Connection type target: ");
switch(work32[8])
{
case I2O_LAN_UNKNOWN:
len += sprintf(buf+len, "UNKNOWN\n");
break;
case I2O_LAN_AUI:
len += sprintf(buf+len, "AUI\n");
break;
case I2O_LAN_10BASE5:
len += sprintf(buf+len, "10BASE5\n");
break;
case I2O_LAN_FIORL:
len += sprintf(buf+len, "FIORL\n");
break;
case I2O_LAN_10BASE2:
len += sprintf(buf+len, "10BASE2\n");
break;
case I2O_LAN_10BROAD36:
len += sprintf(buf+len, "10BROAD36\n");
break;
case I2O_LAN_10BASE_T:
len += sprintf(buf+len, "10BASE-T\n");
break;
case I2O_LAN_10BASE_FP:
len += sprintf(buf+len, "10BASE-FP\n");
break;
case I2O_LAN_10BASE_FB:
len += sprintf(buf+len, "10BASE-FB\n");
break;
case I2O_LAN_10BASE_FL:
len += sprintf(buf+len, "10BASE-FL\n");
break;
case I2O_LAN_100BASE_TX:
len += sprintf(buf+len, "100BASE-TX\n");
break;
case I2O_LAN_100BASE_FX:
len += sprintf(buf+len, "100BASE-FX\n");
break;
case I2O_LAN_100BASE_T4:
len += sprintf(buf+len, "100BASE-T4\n");
break;
case I2O_LAN_1000BASE_SX:
len += sprintf(buf+len, "1000BASE-SX\n");
break;
case I2O_LAN_1000BASE_LX:
len += sprintf(buf+len, "1000BASE-LX\n");
break;
case I2O_LAN_1000BASE_CX:
len += sprintf(buf+len, "1000BASE-CX\n");
break;
case I2O_LAN_1000BASE_T:
len += sprintf(buf+len, "1000BASE-T\n");
break;
case I2O_LAN_100VG_ETHERNET:
len += sprintf(buf+len, "100VG-ETHERNET\n");
break;
case I2O_LAN_100VG_TR:
len += sprintf(buf+len, "100VG-TOKEN RING\n");
break;
case I2O_LAN_4MBIT:
len += sprintf(buf+len, "4MBIT TOKEN RING\n");
break;
case I2O_LAN_16MBIT:
len += sprintf(buf+len, "16 Mb Token Ring\n");
break;
case I2O_LAN_125MBAUD:
len += sprintf(buf+len, "125 MBAUD FDDI\n");
break;
case I2O_LAN_POINT_POINT:
len += sprintf(buf+len, "Point-to-point\n");
break;
case I2O_LAN_ARB_LOOP:
len += sprintf(buf+len, "Arbitrated loop\n");
break;
case I2O_LAN_PUBLIC_LOOP:
len += sprintf(buf+len, "Public loop\n");
break;
case I2O_LAN_FABRIC:
len += sprintf(buf+len, "Fabric\n");
break;
case I2O_LAN_EMULATION:
len += sprintf(buf+len, "Emulation\n");
break;
case I2O_LAN_OTHER:
len += sprintf(buf+len, "Other\n");
break;
case I2O_LAN_DEFAULT:
len += sprintf(buf+len, "HW default\n");
break;
default:
len += sprintf(buf+len, "\n");
break;
}
}
spin_unlock(&i2o_proc_lock);
return len;
}
Generated by GNU enscript 1.6.4.