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