Lines Matching +full:a +full:- +full:child +full:- +full:node +full:- +full:property
2 * proc_devtree.c - handles /proc/device-tree
24 np->pde = de; in set_node_proc_entry()
31 * Supply data on a read from /proc/device-tree/node/property.
35 struct property *pp = m->private; in property_proc_show()
37 seq_write(m, pp->value, pp->length); in property_proc_show()
43 return single_open(file, property_proc_show, PDE(inode)->data); in property_proc_open()
55 * For a node with a name like "gc@10", we make symlinks called "gc"
60 * Add a property to a node
63 __proc_device_tree_add_prop(struct proc_dir_entry *de, struct property *pp, in __proc_device_tree_add_prop()
73 strncmp(name, "security-", 9) ? S_IRUGO : S_IRUSR, in __proc_device_tree_add_prop()
78 if (!strncmp(name, "security-", 9)) in __proc_device_tree_add_prop()
79 ent->size = 0; /* don't leak number of password chars */ in __proc_device_tree_add_prop()
81 ent->size = pp->length; in __proc_device_tree_add_prop()
87 void proc_device_tree_add_prop(struct proc_dir_entry *pde, struct property *prop) in proc_device_tree_add_prop()
89 __proc_device_tree_add_prop(pde, prop, prop->name); in proc_device_tree_add_prop()
93 struct property *prop) in proc_device_tree_remove_prop()
95 remove_proc_entry(prop->name, pde); in proc_device_tree_remove_prop()
99 struct property *newprop, in proc_device_tree_update_prop()
100 struct property *oldprop) in proc_device_tree_update_prop()
104 for (ent = pde->subdir; ent != NULL; ent = ent->next) in proc_device_tree_update_prop()
105 if (ent->data == oldprop) in proc_device_tree_update_prop()
108 printk(KERN_WARNING "device-tree: property \"%s\" " in proc_device_tree_update_prop()
109 " does not exist\n", oldprop->name); in proc_device_tree_update_prop()
111 ent->data = newprop; in proc_device_tree_update_prop()
112 ent->size = newprop->length; in proc_device_tree_update_prop()
129 for (ent = de->subdir; ent != NULL; ent = ent->next) { in duplicate_name()
130 if (strcmp(ent->name, name) == 0) { in duplicate_name()
151 printk(KERN_ERR "device-tree: Out of memory trying to fixup " in fixup_name()
168 /* Multiple duplicates. Retry with a different offset. */ in fixup_name()
173 printk(KERN_WARNING "device-tree: Duplicate name in %s, " in fixup_name()
174 "renamed to \"%s\"\n", np->full_name, fixed_name); in fixup_name()
180 * Process a node, adding entries for its children and its properties.
185 struct property *pp; in proc_device_tree_add_node()
187 struct device_node *child; in proc_device_tree_add_node() local
191 for (child = NULL; (child = of_get_next_child(np, child));) { in proc_device_tree_add_node()
193 p = strrchr(child->full_name, '/'); in proc_device_tree_add_node()
195 p = child->full_name; in proc_device_tree_add_node()
205 proc_device_tree_add_node(child, ent); in proc_device_tree_add_node()
207 of_node_put(child); in proc_device_tree_add_node()
209 for (pp = np->properties; pp != NULL; pp = pp->next) { in proc_device_tree_add_node()
210 p = pp->name; in proc_device_tree_add_node()
225 * Called on initialization to set up the /proc/device-tree subtree
231 proc_device_tree = proc_mkdir("device-tree", NULL); in proc_device_tree_init()
236 pr_debug("/proc/device-tree: can't find root\n"); in proc_device_tree_init()