xref: /haiku/src/bin/listdev/dm_wrapper.c (revision 1e60bdeab63fa7a57bc9a55b032052e95a18bd2c)
1 /*
2  * Copyright 2006-2012, Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 
7 #include <errno.h>
8 #include <fcntl.h>
9 #include <stdio.h>
10 #include <unistd.h>
11 
12 #include <drivers/device_manager.h>
13 #include <device_manager_defs.h>
14 #include <generic_syscall_defs.h>
15 #include <string.h>
16 #include <syscalls.h>
17 
18 #include "dm_wrapper.h"
19 
20 
21 status_t init_dm_wrapper(void)
22 {
23 	uint32 version = 0;
24 	return _kern_generic_syscall(DEVICE_MANAGER_SYSCALLS, B_SYSCALL_INFO,
25 		&version, sizeof(version));
26 }
27 
28 
29 status_t uninit_dm_wrapper(void)
30 {
31 	return B_OK;
32 }
33 
34 
35 status_t
36 get_root(device_node_cookie *cookie)
37 {
38 	return _kern_generic_syscall(DEVICE_MANAGER_SYSCALLS, DM_GET_ROOT,
39 		cookie, sizeof(device_node_cookie));
40 }
41 
42 
43 status_t
44 get_child(device_node_cookie *device)
45 {
46 	return _kern_generic_syscall(DEVICE_MANAGER_SYSCALLS, DM_GET_CHILD,
47 		device, sizeof(device_node_cookie));
48 }
49 
50 
51 status_t
52 get_next_child(device_node_cookie *device)
53 {
54 	return _kern_generic_syscall(DEVICE_MANAGER_SYSCALLS, DM_GET_NEXT_CHILD,
55 		device, sizeof(device_node_cookie));
56 }
57 
58 
59 status_t
60 dm_get_next_attr(struct device_attr_info *attr)
61 {
62 	return _kern_generic_syscall(DEVICE_MANAGER_SYSCALLS, DM_GET_NEXT_ATTRIBUTE,
63 		attr, sizeof(struct device_attr_info));
64 }
65