Rev 1896 | Rev 1908 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1896 | Rev 1899 | ||
---|---|---|---|
Line 95... | Line 95... | ||
95 | * @param node Node whose child is being looked up. |
95 | * @param node Node whose child is being looked up. |
96 | * @param name Name of the child being looked up. |
96 | * @param name Name of the child being looked up. |
97 | * |
97 | * |
98 | * @return NULL if there is no such child or pointer to the matching child node. |
98 | * @return NULL if there is no such child or pointer to the matching child node. |
99 | */ |
99 | */ |
100 | static ofw_tree_node_t *ofw_tree_find_child(ofw_tree_node_t *node, const char *name) |
100 | ofw_tree_node_t *ofw_tree_find_child(ofw_tree_node_t *node, const char *name) |
101 | { |
101 | { |
102 | ofw_tree_node_t *cur; |
102 | ofw_tree_node_t *cur; |
103 | 103 | ||
104 | /* |
104 | /* |
105 | * Try to find the disambigued name. |
105 | * Try to find the disambigued name. |
Line 122... | Line 122... | ||
122 | } |
122 | } |
123 | 123 | ||
124 | return NULL; |
124 | return NULL; |
125 | } |
125 | } |
126 | 126 | ||
- | 127 | /** Lookup first child of given device type. |
|
- | 128 | * |
|
- | 129 | * @param node Node whose child is being looked up. |
|
- | 130 | * @param name Device type of the child being looked up. |
|
- | 131 | * |
|
- | 132 | * @return NULL if there is no such child or pointer to the matching child node. |
|
- | 133 | */ |
|
- | 134 | ofw_tree_node_t *ofw_tree_find_child_by_device_type(ofw_tree_node_t *node, const char *name) |
|
- | 135 | { |
|
- | 136 | ofw_tree_node_t *cur; |
|
- | 137 | ofw_tree_property_t *prop; |
|
- | 138 | ||
- | 139 | for (cur = node->child; cur; cur = cur->peer) { |
|
- | 140 | prop = ofw_tree_getprop(cur, "device_type"); |
|
- | 141 | if (!prop || !prop->value) |
|
- | 142 | continue; |
|
- | 143 | if (strcmp(prop->value, name) == 0) |
|
- | 144 | return cur; |
|
- | 145 | } |
|
- | 146 | ||
- | 147 | return NULL; |
|
- | 148 | } |
|
- | 149 | ||
- | 150 | /** Lookup first peer of given device type. |
|
- | 151 | * |
|
- | 152 | * @param node Node whose peer is being looked up. |
|
- | 153 | * @param name Device type of the child being looked up. |
|
- | 154 | * |
|
- | 155 | * @return NULL if there is no such child or pointer to the matching child node. |
|
- | 156 | */ |
|
- | 157 | ofw_tree_node_t *ofw_tree_find_peer_by_device_type(ofw_tree_node_t *node, const char *name) |
|
- | 158 | { |
|
- | 159 | ofw_tree_node_t *cur; |
|
- | 160 | ofw_tree_property_t *prop; |
|
- | 161 | ||
- | 162 | for (cur = node->peer; cur; cur = cur->peer) { |
|
- | 163 | prop = ofw_tree_getprop(cur, "device_type"); |
|
- | 164 | if (!prop || !prop->value) |
|
- | 165 | continue; |
|
- | 166 | if (strcmp(prop->value, name) == 0) |
|
- | 167 | return cur; |
|
- | 168 | } |
|
- | 169 | ||
- | 170 | return NULL; |
|
- | 171 | } |
|
- | 172 | ||
- | 173 | ||
127 | /** Lookup OpenFirmware node by its path. |
174 | /** Lookup OpenFirmware node by its path. |
128 | * |
175 | * |
129 | * @param path Path to the node. |
176 | * @param path Path to the node. |
130 | * |
177 | * |
131 | * @return NULL if there is no such node or pointer to the leaf node. |
178 | * @return NULL if there is no such node or pointer to the leaf node. |