@@ -3,8 +3,8 @@ use core::fmt;
33use alloc:: vec:: Vec ;
44
55use crate :: {
6- ClockType , Node , NodeKind , NodeMut , NodeRef , NodeRefClock , NodeRefInterruptController , NodeRefMemory ,
7- Property ,
6+ ClockType , Node , NodeKind , NodeMut , NodeRef , NodeRefClock , NodeRefInterruptController ,
7+ NodeRefMemory , Property ,
88} ;
99
1010/// Node 的 DTS 显示格式化器
@@ -47,16 +47,6 @@ impl<'a> NodeDisplay<'a> {
4747 Ok ( ( ) )
4848 }
4949
50- fn format_node_name ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
51- write ! ( f, "{}" , self . node. name) ?;
52-
53- // 如果节点名为空(根节点),输出为 /
54- if self . node . name . is_empty ( ) {
55- write ! ( f, "/" ) ?;
56- }
57- Ok ( ( ) )
58- }
59-
6050 fn format_property ( & self , prop : & Property , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
6151 self . format_indent ( f) ?;
6252 match prop. name ( ) {
@@ -76,8 +66,12 @@ impl<'a> NodeDisplay<'a> {
7666 write ! ( f, "{} = " , prop. name( ) ) ?;
7767 self . format_string_list ( prop, f) ?;
7868 }
79- "interrupt-controller" | "#address-cells" | "#size-cells" | "#interrupt-cells"
80- | "#clock-cells" | "phandle" => {
69+ "interrupt-controller"
70+ | "#address-cells"
71+ | "#size-cells"
72+ | "#interrupt-cells"
73+ | "#clock-cells"
74+ | "phandle" => {
8175 write ! ( f, "{};" , prop. name( ) ) ?;
8276 }
8377 _ => {
@@ -96,7 +90,7 @@ impl<'a> NodeDisplay<'a> {
9690 // 获取 parent 的 address-cells 和 size-cells
9791 // 这里需要从上下文获取,暂时使用默认值
9892 let address_cells = 2 ; // 默认值
99- let size_cells = 1 ; // 默认值
93+ let size_cells = 1 ; // 默认值
10094
10195 while let ( Some ( addr) , Some ( size) ) = (
10296 reader. read_cells ( address_cells) ,
@@ -203,13 +197,8 @@ impl<'a> fmt::Display for NodeDisplay<'a> {
203197 }
204198
205199 // 关闭节点
206- if !self . node . name . is_empty ( ) || !self . node . children . is_empty ( ) {
207- self . format_indent ( f) ?;
208- writeln ! ( f, "}};" ) ?;
209- } else {
210- self . format_indent ( f) ?;
211- writeln ! ( f, "}};" ) ?;
212- }
200+ self . format_indent ( f) ?;
201+ writeln ! ( f, "}};" ) ?;
213202
214203 Ok ( ( ) )
215204 }
@@ -302,8 +291,13 @@ impl<'a> NodeRefDisplay<'a> {
302291 if !regions. is_empty ( ) {
303292 write ! ( f, " ({} regions)" , regions. len( ) ) ?;
304293 for ( i, region) in regions. iter ( ) . take ( 3 ) . enumerate ( ) {
305- write ! ( f, "\n [{}]: 0x{:x}-0x{:x}" ,
306- i, region. address, region. address + region. size) ?;
294+ write ! (
295+ f,
296+ "\n [{}]: 0x{:x}-0x{:x}" ,
297+ i,
298+ region. address,
299+ region. address + region. size
300+ ) ?;
307301 }
308302 }
309303 if let Some ( dt) = mem. device_type ( ) {
@@ -327,11 +321,10 @@ impl<'a> fmt::Display for NodeRefDisplay<'a> {
327321 if self . show_details {
328322 write ! ( f, "{}: " , self . node_ref. name( ) ) ?;
329323 self . format_type_info ( f) ?;
330- write ! ( f, " \n " ) ?;
324+ writeln ! ( f) ?;
331325
332326 // 添加缩进并显示 DTS
333- let dts_display = NodeDisplay :: new ( self . node_ref )
334- . indent ( self . indent + 1 ) ;
327+ let dts_display = NodeDisplay :: new ( self . node_ref ) . indent ( self . indent + 1 ) ;
335328 write ! ( f, "{}" , dts_display) ?;
336329 } else {
337330 write ! ( f, "{}" , self . node_ref. name( ) ) ?;
@@ -353,13 +346,16 @@ impl fmt::Debug for NodeRef<'_> {
353346 f. debug_struct ( "NodeRef" )
354347 . field ( "name" , & self . name ( ) )
355348 . field ( "path" , & self . path ( ) )
356- . field ( "node_type" , & match self . as_ref ( ) {
357- NodeKind :: Clock ( _) => "Clock" ,
358- NodeKind :: Pci ( _) => "PCI" ,
359- NodeKind :: InterruptController ( _) => "InterruptController" ,
360- NodeKind :: Memory ( _) => "Memory" ,
361- NodeKind :: Generic ( _) => "Generic" ,
362- } )
349+ . field (
350+ "node_type" ,
351+ & match self . as_ref ( ) {
352+ NodeKind :: Clock ( _) => "Clock" ,
353+ NodeKind :: Pci ( _) => "PCI" ,
354+ NodeKind :: InterruptController ( _) => "InterruptController" ,
355+ NodeKind :: Memory ( _) => "Memory" ,
356+ NodeKind :: Generic ( _) => "Generic" ,
357+ } ,
358+ )
363359 . field ( "phandle" , & self . phandle ( ) )
364360 . finish ( )
365361 }
@@ -429,7 +425,7 @@ impl fmt::Display for NodeMut<'_> {
429425 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
430426 match self {
431427 NodeMut :: Gerneric ( generic) => {
432- let display = NodeDisplay :: new ( & generic. node ) ;
428+ let display = NodeDisplay :: new ( generic. node ) ;
433429 write ! ( f, "{}" , display)
434430 }
435431 }
@@ -439,16 +435,25 @@ impl fmt::Display for NodeMut<'_> {
439435impl fmt:: Debug for NodeMut < ' _ > {
440436 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
441437 f. debug_struct ( "NodeMut" )
442- . field ( "name" , & match self {
443- NodeMut :: Gerneric ( generic) => generic. node . name ( ) ,
444- } )
438+ . field (
439+ "name" ,
440+ & match self {
441+ NodeMut :: Gerneric ( generic) => generic. node . name ( ) ,
442+ } ,
443+ )
445444 . field ( "node_type" , & "Generic" )
446- . field ( "children_count" , & match self {
447- NodeMut :: Gerneric ( generic) => generic. node . children . len ( ) ,
448- } )
449- . field ( "properties_count" , & match self {
450- NodeMut :: Gerneric ( generic) => generic. node . properties . len ( ) ,
451- } )
445+ . field (
446+ "children_count" ,
447+ & match self {
448+ NodeMut :: Gerneric ( generic) => generic. node . children . len ( ) ,
449+ } ,
450+ )
451+ . field (
452+ "properties_count" ,
453+ & match self {
454+ NodeMut :: Gerneric ( generic) => generic. node . properties . len ( ) ,
455+ } ,
456+ )
452457 . finish ( )
453458 }
454- }
459+ }
0 commit comments