Changeset 8d2760f in mainline for kernel/genarch/include/ofw/ofw_tree.h
- Timestamp:
- 2008-11-29T20:24:47Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 57e76cb
- Parents:
- dfd77382
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/include/ofw/ofw_tree.h
rdfd77382 r8d2760f 31 31 32 32 #include <arch/types.h> 33 #include <ddi/irq.h> 33 34 #include <typedefs.h> 34 35 … … 44 45 ofw_tree_node_t *child; 45 46 46 uint32_t node_handle; 47 48 char *da_name; 49 50 unsigned properties; 47 uint32_t node_handle; /**< Old OpenFirmware node handle. */ 48 49 char *da_name; /**< Disambigued name. */ 50 51 unsigned properties; /**< Number of properties. */ 51 52 ofw_tree_property_t *property; 52 53 … … 106 107 uint32_t child_base; 107 108 uint32_t parent_space; 108 uint64_t parent_base; 109 uint64_t parent_base; /* group phys.mid and phys.lo together */ 109 110 uint32_t size; 110 111 } __attribute__ ((packed)); … … 128 129 129 130 struct ofw_pci_reg { 130 uint32_t space; 131 uint64_t addr; 131 uint32_t space; /* needs to be masked to obtain pure space id */ 132 uint64_t addr; /* group phys.mid and phys.lo together */ 132 133 uint64_t size; 133 134 } __attribute__ ((packed)); … … 136 137 struct ofw_pci_range { 137 138 uint32_t space; 138 uint64_t child_base; 139 uint64_t child_base; /* group phys.mid and phys.lo together */ 139 140 uint64_t parent_base; 140 141 uint64_t size; … … 161 162 typedef struct ofw_upa_reg ofw_upa_reg_t; 162 163 163 extern void ofw_tree_init(ofw_tree_node_t * root);164 extern void ofw_tree_init(ofw_tree_node_t *); 164 165 extern void ofw_tree_print(void); 165 extern const char *ofw_tree_node_name(const ofw_tree_node_t *node); 166 extern ofw_tree_node_t *ofw_tree_lookup(const char *path); 167 extern ofw_tree_property_t *ofw_tree_getprop(const ofw_tree_node_t *node, const char *name); 168 extern ofw_tree_node_t *ofw_tree_find_child(ofw_tree_node_t *node, const char *name); 169 extern ofw_tree_node_t *ofw_tree_find_child_by_device_type(ofw_tree_node_t *node, const char *device_type); 170 extern ofw_tree_node_t *ofw_tree_find_peer_by_device_type(ofw_tree_node_t *node, const char *device_type); 171 extern ofw_tree_node_t *ofw_tree_find_node_by_handle(ofw_tree_node_t *root, uint32_t handle); 172 173 extern bool ofw_fhc_apply_ranges(ofw_tree_node_t *node, ofw_fhc_reg_t *reg, uintptr_t *pa); 174 extern bool ofw_central_apply_ranges(ofw_tree_node_t *node, ofw_central_reg_t *reg, uintptr_t *pa); 175 extern bool ofw_ebus_apply_ranges(ofw_tree_node_t *node, ofw_ebus_reg_t *reg, uintptr_t *pa); 176 extern bool ofw_pci_apply_ranges(ofw_tree_node_t *node, ofw_pci_reg_t *reg, uintptr_t *pa); 177 extern bool ofw_sbus_apply_ranges(ofw_tree_node_t *node, ofw_sbus_reg_t *reg, uintptr_t *pa); 178 extern bool ofw_upa_apply_ranges(ofw_tree_node_t *node, ofw_upa_reg_t *reg, uintptr_t *pa); 179 180 extern bool ofw_pci_reg_absolutize(ofw_tree_node_t *node, ofw_pci_reg_t *reg, ofw_pci_reg_t *out); 181 182 extern bool ofw_fhc_map_interrupt(ofw_tree_node_t *node, ofw_fhc_reg_t *reg, uint32_t interrupt, int *inr); 183 extern bool ofw_ebus_map_interrupt(ofw_tree_node_t *node, ofw_ebus_reg_t *reg, uint32_t interrupt, int *inr); 184 extern bool ofw_pci_map_interrupt(ofw_tree_node_t *node, ofw_pci_reg_t *reg, int ino, int *inr); 166 extern const char *ofw_tree_node_name(const ofw_tree_node_t *); 167 extern ofw_tree_node_t *ofw_tree_lookup(const char *); 168 extern ofw_tree_property_t *ofw_tree_getprop(const ofw_tree_node_t *, 169 const char *); 170 extern ofw_tree_node_t *ofw_tree_find_child(ofw_tree_node_t *, const char *); 171 extern ofw_tree_node_t *ofw_tree_find_child_by_device_type(ofw_tree_node_t *, 172 const char *); 173 extern ofw_tree_node_t *ofw_tree_find_peer_by_device_type(ofw_tree_node_t *, 174 const char *); 175 extern ofw_tree_node_t *ofw_tree_find_node_by_handle(ofw_tree_node_t *, 176 uint32_t); 177 178 extern bool ofw_fhc_apply_ranges(ofw_tree_node_t *, ofw_fhc_reg_t *, 179 uintptr_t *); 180 extern bool ofw_central_apply_ranges(ofw_tree_node_t *, ofw_central_reg_t *, 181 uintptr_t *); 182 extern bool ofw_ebus_apply_ranges(ofw_tree_node_t *, ofw_ebus_reg_t *, 183 uintptr_t *); 184 extern bool ofw_pci_apply_ranges(ofw_tree_node_t *, ofw_pci_reg_t *, 185 uintptr_t *); 186 extern bool ofw_sbus_apply_ranges(ofw_tree_node_t *, ofw_sbus_reg_t *, 187 uintptr_t *); 188 extern bool ofw_upa_apply_ranges(ofw_tree_node_t *, ofw_upa_reg_t *, 189 uintptr_t *); 190 191 extern bool ofw_pci_reg_absolutize(ofw_tree_node_t *, ofw_pci_reg_t *, 192 ofw_pci_reg_t *); 193 194 extern bool ofw_fhc_map_interrupt(ofw_tree_node_t *, ofw_fhc_reg_t *, 195 uint32_t, int *, cir_t *, void **); 196 extern bool ofw_ebus_map_interrupt(ofw_tree_node_t *, ofw_ebus_reg_t *, 197 uint32_t, int *, cir_t *, void **); 198 extern bool ofw_pci_map_interrupt(ofw_tree_node_t *, ofw_pci_reg_t *, 199 int, int *, cir_t *, void **); 185 200 186 201 #endif
Note:
See TracChangeset
for help on using the changeset viewer.