mirror of
https://review.haiku-os.org/haiku
synced 2025-01-31 10:47:14 +01:00
0450e7b802
We must do this to prevent lock order inversion: when busses are initialized, they are started by the (locked) device manager, and then acquire the explore lock. We must do the same in Explore itself, for when called by the explore thread, we would otherwise first acquire the explore lock, then (when publishing new nodes) acquire the device lock. Should fix #18421 and #18393.
32 lines
686 B
C
32 lines
686 B
C
/*
|
|
* Copyright 2004-2008, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef _KERNEL_DEVICE_MANAGER_H
|
|
#define _KERNEL_DEVICE_MANAGER_H
|
|
|
|
|
|
#include <device_manager.h>
|
|
#include <lock.h>
|
|
|
|
struct kernel_args;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
void legacy_driver_add_preloaded(struct kernel_args *args);
|
|
|
|
status_t device_manager_probe(const char *path, uint32 updateCycle);
|
|
status_t device_manager_init(struct kernel_args *args);
|
|
status_t device_manager_init_post_modules(struct kernel_args *args);
|
|
|
|
recursive_lock* device_manager_get_lock();
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _KERNEL_DEVICE_MANAGER_H */
|