11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (c) 2002-3 Patrick Mochel 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (c) 2002-3 Open Source Development Labs 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This file is released under the GPLv2 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/device.h> 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/init.h> 103947be1969a9ce455ec30f60ef51efb10e4323d1Dave Hansen#include <linux/memory.h> 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12a1bdc7aad8b557176ccecff1da137ebe3090871eBen Dooks#include "base.h" 13a1bdc7aad8b557176ccecff1da137ebe3090871eBen Dooks 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/** 154a3ad20ccd8f4d2a0535cf98fa83f7b561ba59a9Greg Kroah-Hartman * driver_init - initialize driver model. 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 174a3ad20ccd8f4d2a0535cf98fa83f7b561ba59a9Greg Kroah-Hartman * Call the driver model init functions to initialize their 184a3ad20ccd8f4d2a0535cf98fa83f7b561ba59a9Greg Kroah-Hartman * subsystems. Called early from init/main.c. 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid __init driver_init(void) 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* These are the core pieces */ 232b2af54a5bb6f7e80ccf78f20084b93c398c3a8bKay Sievers devtmpfs_init(); 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds devices_init(); 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds buses_init(); 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds classes_init(); 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds firmware_init(); 284039483fd3065920f035eed39ec59085421c0a4fMichael Holzheu hypervisor_init(); 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* These are also core pieces, but must come after the 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * core core pieces. 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds platform_bus_init(); 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds cpu_dev_init(); 353947be1969a9ce455ec30f60ef51efb10e4323d1Dave Hansen memory_dev_init(); 36caa73ea158de9419f08e456f2716c71d1f06012aRafael J. Wysocki container_dev_init(); 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 38