diff options
Diffstat (limited to 'drivers/xen/xenbus/xenbus_probe.h')
-rw-r--r-- | drivers/xen/xenbus/xenbus_probe.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/drivers/xen/xenbus/xenbus_probe.h b/drivers/xen/xenbus/xenbus_probe.h new file mode 100644 index 00000000000..e09b19415a4 --- /dev/null +++ b/drivers/xen/xenbus/xenbus_probe.h | |||
@@ -0,0 +1,74 @@ | |||
1 | /****************************************************************************** | ||
2 | * xenbus_probe.h | ||
3 | * | ||
4 | * Talks to Xen Store to figure out what devices we have. | ||
5 | * | ||
6 | * Copyright (C) 2005 Rusty Russell, IBM Corporation | ||
7 | * Copyright (C) 2005 XenSource Ltd. | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | ||
10 | * modify it under the terms of the GNU General Public License version 2 | ||
11 | * as published by the Free Software Foundation; or, when distributed | ||
12 | * separately from the Linux kernel or incorporated into other | ||
13 | * software packages, subject to the following license: | ||
14 | * | ||
15 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
16 | * of this source file (the "Software"), to deal in the Software without | ||
17 | * restriction, including without limitation the rights to use, copy, modify, | ||
18 | * merge, publish, distribute, sublicense, and/or sell copies of the Software, | ||
19 | * and to permit persons to whom the Software is furnished to do so, subject to | ||
20 | * the following conditions: | ||
21 | * | ||
22 | * The above copyright notice and this permission notice shall be included in | ||
23 | * all copies or substantial portions of the Software. | ||
24 | * | ||
25 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
26 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
27 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
28 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
29 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
30 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||
31 | * IN THE SOFTWARE. | ||
32 | */ | ||
33 | |||
34 | #ifndef _XENBUS_PROBE_H | ||
35 | #define _XENBUS_PROBE_H | ||
36 | |||
37 | #ifdef CONFIG_XEN_BACKEND | ||
38 | extern void xenbus_backend_suspend(int (*fn)(struct device *, void *)); | ||
39 | extern void xenbus_backend_resume(int (*fn)(struct device *, void *)); | ||
40 | extern void xenbus_backend_probe_and_watch(void); | ||
41 | extern int xenbus_backend_bus_register(void); | ||
42 | extern void xenbus_backend_bus_unregister(void); | ||
43 | #else | ||
44 | static inline void xenbus_backend_suspend(int (*fn)(struct device *, void *)) {} | ||
45 | static inline void xenbus_backend_resume(int (*fn)(struct device *, void *)) {} | ||
46 | static inline void xenbus_backend_probe_and_watch(void) {} | ||
47 | static inline int xenbus_backend_bus_register(void) { return 0; } | ||
48 | static inline void xenbus_backend_bus_unregister(void) {} | ||
49 | #endif | ||
50 | |||
51 | struct xen_bus_type | ||
52 | { | ||
53 | char *root; | ||
54 | unsigned int levels; | ||
55 | int (*get_bus_id)(char bus_id[BUS_ID_SIZE], const char *nodename); | ||
56 | int (*probe)(const char *type, const char *dir); | ||
57 | struct bus_type bus; | ||
58 | }; | ||
59 | |||
60 | extern int xenbus_match(struct device *_dev, struct device_driver *_drv); | ||
61 | extern int xenbus_dev_probe(struct device *_dev); | ||
62 | extern int xenbus_dev_remove(struct device *_dev); | ||
63 | extern int xenbus_register_driver_common(struct xenbus_driver *drv, | ||
64 | struct xen_bus_type *bus, | ||
65 | struct module *owner, | ||
66 | const char *mod_name); | ||
67 | extern int xenbus_probe_node(struct xen_bus_type *bus, | ||
68 | const char *type, | ||
69 | const char *nodename); | ||
70 | extern int xenbus_probe_devices(struct xen_bus_type *bus); | ||
71 | |||
72 | extern void xenbus_dev_changed(const char *node, struct xen_bus_type *bus); | ||
73 | |||
74 | #endif | ||