dmi_decode(); 
dmi_find_bmc(); 
static __init int init_ipmi_si(void){	int  rv = 0;	int  pos = 0;	int  i;	char *str;	if (initialized)		return 0;	initialized = 1;	/* Parse out the si_type string into its components. */	str = si_type_str;	if (*str != '\0') {		for (i=0; (i<SI_MAX_PARMS) && (*str != '\0'); i++) {			si_type[i] = str;			str = strchr(str, ',');			if (str) {				*str = '\0';				str++;			} else {				break;			}		}	}	printk(KERN_INFO "IPMI System Interface driver version "	       IPMI_SI_VERSION);	if (kcs_smi_handlers.version)		printk(", KCS version %s", kcs_smi_handlers.version);	if (smic_smi_handlers.version)		printk(", SMIC version %s", smic_smi_handlers.version);	if (bt_smi_handlers.version)   	        printk(", BT version %s", bt_smi_handlers.version);	printk("\n");#ifdef CONFIG_X86	dmi_decode();#endif	rv = init_one_smi(0, &(smi_infos[pos]));	if (rv && !ports[0] && si_trydefaults) {		/* If we are trying defaults and the initial port is                   not set, then set it. */		si_type[0] = "kcs";		ports[0] = DEFAULT_KCS_IO_PORT;		rv = init_one_smi(0, &(smi_infos[pos]));		if (rv) {			/* No KCS - try SMIC */			si_type[0] = "smic";			ports[0] = DEFAULT_SMIC_IO_PORT;			rv = init_one_smi(0, &(smi_infos[pos]));		}		if (rv) {			/* No SMIC - try BT */			si_type[0] = "bt";			ports[0] = DEFAULT_BT_IO_PORT;			rv = init_one_smi(0, &(smi_infos[pos]));		}	}	if (rv == 0)		pos++;	for (i=1; i < SI_MAX_PARMS; i++) {		rv = init_one_smi(i, &(smi_infos[pos]));		if (rv == 0)			pos++;	}	if (smi_infos[0] == NULL) {		printk("ipmi_si: Unable to find any System Interface(s)\n");		return -ENODEV;	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b224cd3a0ca376dd52f382905c1aaf5a83a54692/ipmi_si_intf.c/buggy/drivers/char/ipmi/ipmi_si_intf.c