@@ -162,6 +162,7 @@ pub struct ProtectionDomain {
162162 pub passive : bool ,
163163 pub stack_size : u64 ,
164164 pub program_image : PathBuf ,
165+ pub program_image_for_symbols : Option < PathBuf > ,
165166 pub maps : Vec < SysMap > ,
166167 pub irqs : Vec < SysIrq > ,
167168 pub setvars : Vec < SysSetVar > ,
@@ -397,6 +398,7 @@ impl ProtectionDomain {
397398 let mut child_pds = Vec :: new ( ) ;
398399
399400 let mut program_image = None ;
401+ let mut program_image_for_symbols = None ;
400402 let mut virtual_machine = None ;
401403
402404 // Default to minimum priority
@@ -421,7 +423,7 @@ impl ProtectionDomain {
421423
422424 match child. tag_name ( ) . name ( ) {
423425 "program_image" => {
424- check_attributes ( xml_sdf, & child, & [ "path" ] ) ?;
426+ check_attributes ( xml_sdf, & child, & [ "path" , "path_for_symbols" ] ) ?;
425427 if program_image. is_some ( ) {
426428 return Err ( value_error (
427429 xml_sdf,
@@ -432,6 +434,8 @@ impl ProtectionDomain {
432434
433435 let program_image_path = checked_lookup ( xml_sdf, & child, "path" ) ?;
434436 program_image = Some ( Path :: new ( program_image_path) . to_path_buf ( ) ) ;
437+
438+ program_image_for_symbols = child. attribute ( "path_for_symbols" ) . map ( PathBuf :: from) ;
435439 }
436440 "map" => {
437441 let map = SysMap :: from_xml ( xml_sdf, & child, true ) ?;
@@ -567,6 +571,7 @@ impl ProtectionDomain {
567571 passive,
568572 stack_size,
569573 program_image : program_image. unwrap ( ) ,
574+ program_image_for_symbols,
570575 maps,
571576 irqs,
572577 setvars,
0 commit comments