@@ -13,26 +13,24 @@ use core::fmt;
1313use super :: { FDT_TAGSIZE , Fdt , FdtToken } ;
1414use crate :: error:: FdtParseError ;
1515use crate :: fdt:: property:: { FdtPropIter , FdtProperty } ;
16- use crate :: standard:: { DEFAULT_ADDRESS_CELLS , DEFAULT_SIZE_CELLS } ;
16+ use crate :: standard:: AddressSpaceProperties ;
1717
1818/// A node in a flattened device tree.
1919#[ derive( Debug , Clone , Copy ) ]
2020pub struct FdtNode < ' a > {
2121 pub ( crate ) fdt : Fdt < ' a > ,
2222 pub ( crate ) offset : usize ,
23- /// The `#size-cells` property of this node's parent node.
24- pub ( crate ) parent_size_cells : u32 ,
25- /// The `#address-cells` property of this node's parent node.
26- pub ( crate ) parent_address_cells : u32 ,
23+ /// The `#address-cells` and `#size-cells` properties of this node's parent
24+ /// node.
25+ pub ( crate ) parent_address_space : AddressSpaceProperties ,
2726}
2827
2928impl < ' a > FdtNode < ' a > {
3029 pub ( crate ) fn new ( fdt : Fdt < ' a > , offset : usize ) -> Self {
3130 Self {
3231 fdt,
3332 offset,
34- parent_address_cells : DEFAULT_ADDRESS_CELLS ,
35- parent_size_cells : DEFAULT_SIZE_CELLS ,
33+ parent_address_space : AddressSpaceProperties :: default ( ) ,
3634 }
3735 }
3836
@@ -259,8 +257,7 @@ enum FdtChildIter<'a> {
259257 Running {
260258 fdt : Fdt < ' a > ,
261259 offset : usize ,
262- address_cells : u32 ,
263- size_cells : u32 ,
260+ address_space : AddressSpaceProperties ,
264261 } ,
265262 Error ,
266263}
@@ -271,11 +268,7 @@ impl<'a> Iterator for FdtChildIter<'a> {
271268 fn next ( & mut self ) -> Option < Self :: Item > {
272269 match self {
273270 Self :: Start { node } => {
274- let address_cells = match node. address_cells ( ) {
275- Ok ( value) => value,
276- Err ( e) => return Some ( Err ( e) ) ,
277- } ;
278- let size_cells = match node. size_cells ( ) {
271+ let address_space = match node. address_space ( ) {
279272 Ok ( value) => value,
280273 Err ( e) => return Some ( Err ( e) ) ,
281274 } ;
@@ -292,17 +285,15 @@ impl<'a> Iterator for FdtChildIter<'a> {
292285 * self = Self :: Running {
293286 fdt : node. fdt ,
294287 offset,
295- address_cells,
296- size_cells,
288+ address_space,
297289 } ;
298290 self . next ( )
299291 }
300292 Self :: Running {
301293 fdt,
302294 offset,
303- address_cells,
304- size_cells,
305- } => match Self :: try_next ( * fdt, offset, * address_cells, * size_cells) {
295+ address_space,
296+ } => match Self :: try_next ( * fdt, offset, * address_space) {
306297 Some ( Ok ( val) ) => Some ( Ok ( val) ) ,
307298 Some ( Err ( e) ) => {
308299 * self = Self :: Error ;
@@ -319,8 +310,7 @@ impl<'a> FdtChildIter<'a> {
319310 fn try_next (
320311 fdt : Fdt < ' a > ,
321312 offset : & mut usize ,
322- parent_address_cells : u32 ,
323- parent_size_cells : u32 ,
313+ parent_address_space : AddressSpaceProperties ,
324314 ) -> Option < Result < FdtNode < ' a > , FdtParseError > > {
325315 loop {
326316 let token = match fdt. read_token ( * offset) {
@@ -337,8 +327,7 @@ impl<'a> FdtChildIter<'a> {
337327 return Some ( Ok ( FdtNode {
338328 fdt,
339329 offset : node_offset,
340- parent_address_cells,
341- parent_size_cells,
330+ parent_address_space,
342331 } ) ) ;
343332 }
344333 FdtToken :: Prop => {
0 commit comments