diff options
Diffstat (limited to 'drivers/of/of_private.h')
-rw-r--r-- | drivers/of/of_private.h | 59 |
1 files changed, 58 insertions, 1 deletions
diff --git a/drivers/of/of_private.h b/drivers/of/of_private.h index ff350c8fa7ac..858e0a5d9a11 100644 --- a/drivers/of/of_private.h +++ b/drivers/of/of_private.h | |||
@@ -31,6 +31,63 @@ struct alias_prop { | |||
31 | char stem[0]; | 31 | char stem[0]; |
32 | }; | 32 | }; |
33 | 33 | ||
34 | extern struct mutex of_aliases_mutex; | 34 | extern struct mutex of_mutex; |
35 | extern struct list_head aliases_lookup; | 35 | extern struct list_head aliases_lookup; |
36 | extern struct kset *of_kset; | ||
37 | |||
38 | |||
39 | static inline struct device_node *kobj_to_device_node(struct kobject *kobj) | ||
40 | { | ||
41 | return container_of(kobj, struct device_node, kobj); | ||
42 | } | ||
43 | |||
44 | #if defined(CONFIG_OF_DYNAMIC) | ||
45 | extern int of_property_notify(int action, struct device_node *np, | ||
46 | struct property *prop, struct property *old_prop); | ||
47 | extern void of_node_release(struct kobject *kobj); | ||
48 | #else /* CONFIG_OF_DYNAMIC */ | ||
49 | static inline int of_property_notify(int action, struct device_node *np, | ||
50 | struct property *prop, struct property *old_prop) | ||
51 | { | ||
52 | return 0; | ||
53 | } | ||
54 | #endif /* CONFIG_OF_DYNAMIC */ | ||
55 | |||
56 | /** | ||
57 | * General utilities for working with live trees. | ||
58 | * | ||
59 | * All functions with two leading underscores operate | ||
60 | * without taking node references, so you either have to | ||
61 | * own the devtree lock or work on detached trees only. | ||
62 | */ | ||
63 | struct property *__of_prop_dup(const struct property *prop, gfp_t allocflags); | ||
64 | struct device_node *__of_node_alloc(const char *full_name, gfp_t allocflags); | ||
65 | |||
66 | extern const void *__of_get_property(const struct device_node *np, | ||
67 | const char *name, int *lenp); | ||
68 | extern int __of_add_property(struct device_node *np, struct property *prop); | ||
69 | extern int __of_add_property_sysfs(struct device_node *np, | ||
70 | struct property *prop); | ||
71 | extern int __of_remove_property(struct device_node *np, struct property *prop); | ||
72 | extern void __of_remove_property_sysfs(struct device_node *np, | ||
73 | struct property *prop); | ||
74 | extern int __of_update_property(struct device_node *np, | ||
75 | struct property *newprop, struct property **oldprop); | ||
76 | extern void __of_update_property_sysfs(struct device_node *np, | ||
77 | struct property *newprop, struct property *oldprop); | ||
78 | |||
79 | extern void __of_attach_node(struct device_node *np); | ||
80 | extern int __of_attach_node_sysfs(struct device_node *np); | ||
81 | extern void __of_detach_node(struct device_node *np); | ||
82 | extern void __of_detach_node_sysfs(struct device_node *np); | ||
83 | |||
84 | /* iterators for transactions, used for overlays */ | ||
85 | /* forward iterator */ | ||
86 | #define for_each_transaction_entry(_oft, _te) \ | ||
87 | list_for_each_entry(_te, &(_oft)->te_list, node) | ||
88 | |||
89 | /* reverse iterator */ | ||
90 | #define for_each_transaction_entry_reverse(_oft, _te) \ | ||
91 | list_for_each_entry_reverse(_te, &(_oft)->te_list, node) | ||
92 | |||
36 | #endif /* _LINUX_OF_PRIVATE_H */ | 93 | #endif /* _LINUX_OF_PRIVATE_H */ |