/* One time initialization for device descriptor support. */ static void device_desc_init(void) { #ifdef LATER string_table_init(&device_desc_string_table); #endif FIXME("device_desc_init"); }
/* * init_hcl() - Boot time initialization. Ensure that it is called * after devfs has been initialized. * * For now this routine is being called out of devfs/base.c. Actually * Not a bad place to be .. * */ int __init init_hcl(void) { extern void string_table_init(struct string_table *); extern struct string_table label_string_table; extern int init_ifconfig_net(void); extern int init_ioconfig_bus(void); int status = 0; int rv = 0; if (IS_RUNNING_ON_SIMULATOR()) { extern u64 klgraph_addr[]; klgraph_addr[0] = 0xe000003000030000; } /* * Create the hwgraph_root on devfs. */ rv = hwgraph_path_add(NULL, EDGE_LBL_HW, &hwgraph_root); if (rv) printk ("WARNING: init_hcl: Failed to create hwgraph_root. Error = %d.\n", rv); status = devfs_set_flags (hwgraph_root, DEVFS_FL_HIDE); /* * Create the hcl driver to support inventory entry manipulations. * By default, it is expected that devfs is mounted on /dev. * */ hcl_handle = hwgraph_register(hwgraph_root, ".hcl", 0, DEVFS_FL_AUTO_DEVNUM, 0, 0, S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP, 0, 0, &hcl_fops, NULL); if (hcl_handle == NULL) { panic("HCL: Unable to create HCL Driver in init_hcl().\n"); return(0); } /* * Initialize the HCL string table. */ string_table_init(&label_string_table); /* * Create the directory that links Linux bus numbers to our Xwidget. */ rv = hwgraph_path_add(hwgraph_root, EDGE_LBL_LINUX_BUS, &linux_busnum); if (linux_busnum == NULL) { panic("HCL: Unable to create %s\n", EDGE_LBL_LINUX_BUS); return(0); } pci_bus_cvlink_init(); /* * Initialize the ifconfgi_net driver that does network devices * Persistent Naming. */ init_ifconfig_net(); init_ioconfig_bus(); return(0); }