X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=include%2Fasm-sparc%2Fprom.h;h=86c13dccea3d37f36cc9416d19e7e6c60fc83b8e;hb=d1398a6ff503a849f3c123bc5f0fdff383a1b6ec;hp=c5e3d26eabd35ea43ac995128e7e507dcdb1a21d;hpb=942a6bdd1c4d2419a42be77ba1c964e4ba8dae9e;p=safe%2Fjmp%2Flinux-2.6 diff --git a/include/asm-sparc/prom.h b/include/asm-sparc/prom.h index c5e3d26..86c13dc 100644 --- a/include/asm-sparc/prom.h +++ b/include/asm-sparc/prom.h @@ -25,25 +25,19 @@ typedef u32 phandle; typedef u32 ihandle; -struct interrupt_info { - int line; - int sense; /* +ve/-ve logic, edge or level, etc. */ -}; - struct property { char *name; int length; void *value; struct property *next; + unsigned long _flags; + unsigned int unique_id; }; struct device_node { char *name; char *type; phandle node; - phandle linux_phandle; - int n_intrs; - struct interrupt_info *intrs; char *path_component_name; char *full_name; @@ -58,8 +52,17 @@ struct device_node { struct kref kref; unsigned long _flags; void *data; + unsigned int unique_id; }; +/* flag descriptions */ +#define OF_DYNAMIC 1 /* node and properties were allocated via kmalloc */ + +#define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags) +#define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags) + +#define OF_BAD_ADDR ((u64)-1) + static inline void set_node_proc_entry(struct device_node *dn, struct proc_dir_entry *de) { dn->pde = de; @@ -88,9 +91,12 @@ extern struct property *of_find_property(struct device_node *np, extern int of_device_is_compatible(struct device_node *device, const char *); extern void *of_get_property(struct device_node *node, const char *name, int *lenp); +extern int of_set_property(struct device_node *node, const char *name, void *val, int len); extern int of_getintprop_default(struct device_node *np, const char *name, int def); +extern int of_n_addr_cells(struct device_node *np); +extern int of_n_size_cells(struct device_node *np); extern void prom_build_devicetree(void);