David S. Miller | 657f201 | 2008-12-04 20:12:20 -0800 | [diff] [blame] | 1 | #ifndef __PROM_H |
| 2 | #define __PROM_H |
| 3 | |
| 4 | #include <linux/spinlock.h> |
| 5 | #include <asm/prom.h> |
| 6 | |
| 7 | extern struct device_node *allnodes; /* temporary while merging */ |
| 8 | extern rwlock_t devtree_lock; /* temporary while merging */ |
| 9 | |
David S. Miller | efeac2f | 2008-12-05 00:40:43 -0800 | [diff] [blame] | 10 | extern void * prom_early_alloc(unsigned long size); |
| 11 | |
David S. Miller | 5fce09c | 2008-12-05 00:43:03 -0800 | [diff] [blame] | 12 | #ifdef CONFIG_SPARC64 |
| 13 | extern void irq_trans_init(struct device_node *dp); |
| 14 | #endif |
| 15 | |
David S. Miller | e5ff0fe | 2008-12-05 00:50:22 -0800 | [diff] [blame] | 16 | extern unsigned int prom_unique_id; |
| 17 | |
David S. Miller | 6524036 | 2008-12-05 01:21:41 -0800 | [diff] [blame^] | 18 | static inline int is_root_node(const struct device_node *dp) |
| 19 | { |
| 20 | if (!dp) |
| 21 | return 0; |
David S. Miller | b9e5567 | 2008-12-05 01:00:46 -0800 | [diff] [blame] | 22 | |
David S. Miller | 6524036 | 2008-12-05 01:21:41 -0800 | [diff] [blame^] | 23 | return (dp->parent == NULL); |
| 24 | } |
| 25 | |
| 26 | extern char *build_path_component(struct device_node *dp); |
| 27 | |
| 28 | extern struct device_node * __init prom_create_node(phandle node, |
| 29 | struct device_node *parent); |
| 30 | |
| 31 | extern struct device_node * __init prom_build_tree(struct device_node *parent, |
| 32 | phandle node, |
| 33 | struct device_node ***nextp); |
David S. Miller | 657f201 | 2008-12-04 20:12:20 -0800 | [diff] [blame] | 34 | #endif /* __PROM_H */ |