This is an ActPass that is dynamically loaded in at run-time via a shared object library. A dynamic pass can be used to extend the Act framework at run-time without having to re-compile/statically link in new functionality. Apart from loading in new passes in at runtime via C++, the interact command-line interface to the Act system also supports loading in new passes at runtime.
More...
#include <act.h>
|
| | ActDynamicPass (Act *_a, const char *name, const char *lib, const char *prefix) |
| |
| | ~ActDynamicPass () |
| | release storage
|
| |
| int | run (Process *p=NULL) |
| |
| void | run_recursive (Process *p=NULL, int mode=0) |
| |
| void | setParam (const char *name, void *v) |
| |
| void | setParam (const char *name, int v) |
| |
| void | setParam (const char *name, double v) |
| |
| int | getIntParam (const char *name) |
| |
| void * | getPtrParam (const char *name) |
| |
| double | getRealParam (const char *name) |
| |
| bool | hasParam (const char *name) |
| |
| int | runcmd (const char *name) |
| |
| struct Hashtable * | getConfig () |
| |
| Technology * | getTech () |
| |
| bool | loaded () |
| |
| int | addDependency (const char *name) |
| |
| | ActPass (Act *_a, const char *name, int doroot=0) |
| |
| virtual | ~ActPass () |
| | release storage
|
| |
| void | update (Process *p) |
| |
| int | rundeps (Process *p=NULL) |
| |
| const char * | getName () |
| |
| virtual int | run (Process *p=NULL) |
| |
| int | completed () |
| |
| int | pending () |
| |
| void * | getMap (UserDef *u) |
| |
| void * | getGlobalInfo () |
| |
| Act * | getAct () |
| |
| ActPass * | getPass (const char *name) |
| |
| Process * | getRoot () |
| |
| virtual void | run_recursive (Process *p=NULL, int mode=0) |
| |
| void | disableUpdate () |
| |
| void | enableUpdate () |
| |
| void | mkStickyVisited () |
| |
| void | clrStickyVisited () |
| |
This is an ActPass that is dynamically loaded in at run-time via a shared object library. A dynamic pass can be used to extend the Act framework at run-time without having to re-compile/statically link in new functionality. Apart from loading in new passes in at runtime via C++, the interact command-line interface to the Act system also supports loading in new passes at runtime.
An example of how to write a dynamic pass and load it into interact and run it is provided in the skeleton github repository available at https://github.com/asyncvlsi/actpass
◆ ActDynamicPass()
| ActDynamicPass::ActDynamicPass |
( |
Act * |
_a, |
|
|
const char * |
name, |
|
|
const char * |
lib, |
|
|
const char * |
prefix |
|
) |
| |
Load a dynamic pass from a shared object file.
- Parameters
-
| _a | is the Act design where the pass should be added |
| name | is the name of the ActPass |
| lib | is the shared object library name |
| prefix | is the string prefix for the functions in the shared object library associated with the pass. Function names will be prefix_<name> |
◆ ~ActDynamicPass()
| ActDynamicPass::~ActDynamicPass |
( |
| ) |
|
◆ addDependency()
| int ActDynamicPass::addDependency |
( |
const char * |
name | ) |
|
|
inline |
This provides access to the protected ActPass::AddDependency() method since this call may be required from the dynamically loaded functions
- Parameters
-
| name | is the name of the pass for dependency tracking. |
- Returns
- pass-through for ActPass::AddDependency()
◆ free_local()
| virtual void ActDynamicPass::free_local |
( |
void * |
| ) |
|
|
privatevirtual |
◆ getConfig()
| struct Hashtable * ActDynamicPass::getConfig |
( |
| ) |
|
For internal use only. Used to get the hash table that holds all the config parameters.
- Returns
- the configuration parameter hash table.
◆ getIntParam()
| int ActDynamicPass::getIntParam |
( |
const char * |
name | ) |
|
- Parameters
-
| name | is the name of the parameter to be queried |
- Returns
- the integer value associated with the parameter, -1 on a failure
◆ getPtrParam()
| void * ActDynamicPass::getPtrParam |
( |
const char * |
name | ) |
|
- Parameters
-
| name | is the name of the parameter to be queried |
- Returns
- the pointer associated with the parameter, NULL on a failure
◆ getRealParam()
| double ActDynamicPass::getRealParam |
( |
const char * |
name | ) |
|
- Parameters
-
| name | is the name of the parameter to be queried |
- Returns
- the real number associated with the parameter, -1 on a failure
◆ getTech()
For internal use only. Used to get the Technology class
- Returns
- the technology class
◆ hasParam()
| bool ActDynamicPass::hasParam |
( |
const char * |
name | ) |
|
- Parameters
-
| name | is the name of the pameter to be queried |
- Returns
- true if the parameter is defined, false otherwise.
◆ loaded()
| bool ActDynamicPass::loaded |
( |
| ) |
|
|
inline |
- Returns
- true if the pass was successfully loaded, false otherwise
◆ local_op() [1/3]
| virtual void * ActDynamicPass::local_op |
( |
Channel * |
, |
|
|
int |
= 0 |
|
) |
| |
|
privatevirtual |
◆ local_op() [2/3]
| virtual void * ActDynamicPass::local_op |
( |
Data * |
, |
|
|
int |
= 0 |
|
) |
| |
|
privatevirtual |
◆ local_op() [3/3]
| virtual void * ActDynamicPass::local_op |
( |
Process * |
, |
|
|
int |
= 0 |
|
) |
| |
|
privatevirtual |
◆ run()
| int ActDynamicPass::run |
( |
Process * |
p = NULL | ) |
|
|
virtual |
◆ run_recursive()
| void ActDynamicPass::run_recursive |
( |
Process * |
p = NULL, |
|
|
int |
mode = 0 |
|
) |
| |
|
virtual |
◆ runcmd()
| int ActDynamicPass::runcmd |
( |
const char * |
name | ) |
|
This is used to run the specified command. Parameters to the command are typically passed using the setParam() methods.
- Returns
- returns the result from the runcmd function, -1 if the function does not exist.
◆ setParam() [1/3]
| void ActDynamicPass::setParam |
( |
const char * |
name, |
|
|
double |
v |
|
) |
| |
To pass extra parameters to/from a dynamic pass, a table of parameters is stored with the dynamic pass. This function is used to set a real valued parameter
- Parameters
-
| name | the name of the parameter |
| v | is the real number for the parameter |
◆ setParam() [2/3]
| void ActDynamicPass::setParam |
( |
const char * |
name, |
|
|
int |
v |
|
) |
| |
To pass extra parameters to/from a dynamic pass, a table of parameters is stored with the dynamic pass. This function is used to set an integer parameter
- Parameters
-
| name | the name of the parameter |
| v | is the integer for the parameter |
◆ setParam() [3/3]
| void ActDynamicPass::setParam |
( |
const char * |
name, |
|
|
void * |
v |
|
) |
| |
To pass extra parameters to/from a dynamic pass, a table of parameters is stored with the dynamic pass. This function is used to set a pointer parameter
- Parameters
-
| name | the name of the parameter |
| v | is the pointer |
◆ _config_state
| struct Hashtable* ActDynamicPass::_config_state |
|
private |
hash table holding the config parameter state
◆ _d
dispatch table for this pass
◆ _libused
| char* ActDynamicPass::_libused |
|
private |
library used by this pass
◆ _load_success
| bool ActDynamicPass::_load_success |
|
private |
flag set when the pass is loaded
◆ _params
| struct Hashtable* ActDynamicPass::_params |
|
private |
hash table holding parameters for the pass
◆ _sh_libs
| list_t* ActDynamicPass::_sh_libs |
|
staticprivate |
A list of shared object libraries stored as a list of act_sh_passlib_info pointers. THis is shared across all dynamic passes.
the technology pointer for the library
The documentation for this class was generated from the following file: