@@ -6,20 +6,10 @@ use crate::settings::LoadSettings;
66use binaryninja:: binary_view:: { BinaryView , BinaryViewBase , BinaryViewExt } ;
77use binaryninja:: command:: Command ;
88use binaryninja:: logger:: Logger ;
9+ use binaryninja:: workflow:: activity:: { Config , Eligibility } ;
910use binaryninja:: workflow:: { Activity , AnalysisContext , Workflow } ;
1011use log:: LevelFilter ;
1112
12- pub const LOADER_ACTIVITY_NAME : & str = "analysis.svd.loader" ;
13- const LOADER_ACTIVITY_CONFIG : & str = r#"{
14- "name": "analysis.svd.loader",
15- "title" : "SVD Loader",
16- "description": "This analysis step applies SVD info to the view...",
17- "eligibility": {
18- "auto": {},
19- "runOnce": true
20- }
21- }"# ;
22-
2313struct LoadSVDFile ;
2414
2515impl Command for LoadSVDFile {
@@ -113,12 +103,17 @@ fn plugin_init() {
113103 } ;
114104
115105 // Register new workflow activity to load svd information.
116- let old_module_meta_workflow = Workflow :: instance ( "core.module.metaAnalysis" ) ;
117- let module_meta_workflow = old_module_meta_workflow. clone_to ( "core.module.metaAnalysis" ) ;
118- let loader_activity = Activity :: new_with_action ( LOADER_ACTIVITY_CONFIG , loader_activity) ;
106+ let module_meta_workflow = Workflow :: cloned ( "core.module.metaAnalysis" ) ;
107+ let loader_config = Config :: action (
108+ "analysis.svd.loader" ,
109+ "SVD Loader" ,
110+ "This analysis step applies SVD info to the view..." ,
111+ )
112+ . eligibility ( Eligibility :: auto ( ) . run_once ( true ) ) ;
113+ let loader_activity = Activity :: new_with_action ( & loader_config, loader_activity) ;
119114 module_meta_workflow
120115 . register_activity ( & loader_activity)
121116 . unwrap ( ) ;
122- module_meta_workflow. insert ( "core.module.loadDebugInfo" , [ LOADER_ACTIVITY_NAME ] ) ;
117+ module_meta_workflow. insert ( "core.module.loadDebugInfo" , [ & loader_config . name ] ) ;
123118 module_meta_workflow. register ( ) . unwrap ( ) ;
124119}
0 commit comments