Rev 1908 | Rev 1974 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1908 | Rev 1972 | ||
---|---|---|---|
Line 35... | Line 35... | ||
35 | * |
35 | * |
36 | */ |
36 | */ |
37 | 37 | ||
38 | #include <genarch/ofw/ofw_tree.h> |
38 | #include <genarch/ofw/ofw_tree.h> |
39 | #include <arch/memstr.h> |
39 | #include <arch/memstr.h> |
- | 40 | #include <mm/slab.h> |
|
40 | #include <func.h> |
41 | #include <func.h> |
41 | #include <print.h> |
42 | #include <print.h> |
42 | #include <panic.h> |
43 | #include <panic.h> |
43 | 44 | ||
44 | #define PATH_MAX_LEN 80 |
45 | #define PATH_MAX_LEN 80 |
Line 234... | Line 235... | ||
234 | * @param node Root of the subtree. |
235 | * @param node Root of the subtree. |
235 | * @param path Current path, NULL for the very root of the entire tree. |
236 | * @param path Current path, NULL for the very root of the entire tree. |
236 | */ |
237 | */ |
237 | static void ofw_tree_node_print(const ofw_tree_node_t *node, const char *path) |
238 | static void ofw_tree_node_print(const ofw_tree_node_t *node, const char *path) |
238 | { |
239 | { |
- | 240 | char *p; |
|
- | 241 | ||
239 | char p[PATH_MAX_LEN]; |
242 | p = (char *) malloc(PATH_MAX_LEN, 0); |
240 | 243 | ||
241 | if (node->parent) { |
244 | if (node->parent) { |
242 | snprintf(p, PATH_MAX_LEN, "%s/%s", path, node->da_name); |
245 | snprintf(p, PATH_MAX_LEN, "%s/%s", path, node->da_name); |
243 | printf("%s\n", p); |
246 | printf("%s\n", p); |
244 | } else { |
247 | } else { |
245 | snprintf(p, PATH_MAX_LEN, "%s", node->da_name); |
248 | snprintf(p, PATH_MAX_LEN, "%s", node->da_name); |
246 | printf("/\n"); |
249 | printf("/\n"); |
247 | } |
250 | } |
248 | 251 | ||
249 | if (node->child) |
252 | if (node->child) |
250 | ofw_tree_node_print(node->child, p); |
253 | ofw_tree_node_print(node->child, p); |
251 | 254 | ||
252 | if (node->peer) |
255 | if (node->peer) |
253 | ofw_tree_node_print(node->peer, path); |
256 | ofw_tree_node_print(node->peer, path); |
- | 257 | ||
- | 258 | free(p); |
|
254 | } |
259 | } |
255 | 260 | ||
256 | /** Print the structure of the OpenFirmware device tree. */ |
261 | /** Print the structure of the OpenFirmware device tree. */ |
257 | void ofw_tree_print(void) |
262 | void ofw_tree_print(void) |
258 | { |
263 | { |