process_support Class Reference

#include <rc_process_support.h>

List of all members.


Detailed Description

This class provides support for resettable processes.

Resettable processes can only be used if a process support object is available at a modules scope.

The macro RC_HAS_PROCESS() can be invoked within resettable modules to add an process_support object as a member of this module. Resettable processes may now be declared by the respective process declaration macros. Furthermore rc_spawn() will be available within that module.

Remarks:
Only modules that implement rc_resettable can be augmented with the support for resettable processes. Otherwise a runtime error will be reported.
See also:
RC_HAS_PROCESS(), RC_THREAD(), RC_METHOD(), RC_CTHREAD()

Definition at line 68 of file rc_process_support.h.


Public Member Functions

 process_support ()
bool has_reconfigurable_context () const
bool has_non_reconfigurable_context () const
rc_reconfigurableget_context () const
rc_reconfigurableget_reconfigurable_context () const
void declare_process (const sc_object &host, const boost::function< void(void)> &declare_proc_callback, const boost::function< void(void)> &func, sc_sensitive &sensitive, bool is_thread=false, bool dont_initialize=false, bool has_sync_reset=false)
void method_process ()
void thread_process ()
void dont_initialize (const sc_object &host) const
rc_process_handle rc_spawn (boost::function< void(void)> func, const char *name_p=NULL, rc_spawn_options *opt_p=NULL)
void terminate ()
bool reset_signal_is (const sc_object &host, const sc_in< bool > &port_, bool active_level)
bool reset_signal_is (const sc_object &host, const sc_signal< bool > &signal_, bool active_level)
const sc_signal< bool > * reset_channel_is (const sc_object &host, rc_reset_channel_if &reset_, bool active_level)
void reset_is (const sc_object &host, rc_process_reset &process_reset)
void set_sync_reset (const sc_object &host, bool b) const
rc_process_behavior_change disable_process_control () const

Protected Member Functions

void before_end_of_elaboration ()

Private Types

typedef rc_hash_map
< sc_object *,
process_info * > 
process_info_map

Private Member Functions

process_info_rc_find_process_info (sc_object *proc_obj) const
process_info_rc_fetch_process_info (sc_object *proc_obj)
bool _rc_check_valid_last_proc (const sc_object &host) const

Static Private Member Functions

static
rc_reconfigurable
_rc_find_context (sc_object *start_search)
static void register_process_control (const rc_reset_channel_if &reset_channel, rc_process_control &pctrl, bool active_level)
static void unregister_process_control (const rc_reset_channel_if &reset_channel, rc_process_control &pctrl)
static bool get_current_level (const rc_reset_channel_if &reset_channel)

Private Attributes

rc_reconfigurablep_reconf
process_info_map p_reconf_pinfo_map
process_infop_last_pinfo
const sc_object * p_last_host
unsigned int p_last_host_child_count

Classes

class  process_info
 This class is used to store additional process information (internally used). More...

Member Typedef Documentation

typedef rc_hash_map<sc_object*, process_info*> process_info_map [private]

Definition at line 72 of file rc_process_support.h.


Constructor & Destructor Documentation

process_support (  ) 

Definition at line 179 of file rc_process_support.cpp.


Member Function Documentation

bool has_reconfigurable_context (  )  const [inline]

Definition at line 80 of file rc_process_support.h.

bool has_non_reconfigurable_context (  )  const [inline]

Definition at line 83 of file rc_process_support.h.

rc_reconfigurable& get_context (  )  const [inline]

Definition at line 86 of file rc_process_support.h.

rc_reconfigurable * get_reconfigurable_context (  )  const [inline]

Definition at line 312 of file rc_process_support.h.

void declare_process ( const sc_object &  host,
const boost::function< void(void)> &  declare_proc_callback,
const boost::function< void(void)> &  func,
sc_sensitive &  sensitive,
bool  is_thread = false,
bool  dont_initialize = false,
bool  has_sync_reset = false 
)

Definition at line 201 of file rc_process_support.cpp.

void method_process (  ) 

Definition at line 247 of file rc_process_support.cpp.

Referenced by process_support::rc_spawn().

void thread_process (  ) 

Definition at line 293 of file rc_process_support.cpp.

Referenced by process_support::rc_spawn().

void dont_initialize ( const sc_object &  host  )  const

Definition at line 376 of file rc_process_support.cpp.

Referenced by process_support::rc_spawn().

rc_process_handle rc_spawn ( boost::function< void(void)>  func,
const char *  name_p = NULL,
rc_spawn_options opt_p = NULL 
)

Definition at line 386 of file rc_process_support.cpp.

void terminate (  ) 

Definition at line 475 of file rc_process_support.cpp.

bool reset_signal_is ( const sc_object &  host,
const sc_in< bool > &  port_,
bool  active_level 
)

Definition at line 486 of file rc_process_support.cpp.

bool reset_signal_is ( const sc_object &  host,
const sc_signal< bool > &  signal_,
bool  active_level 
)

Definition at line 501 of file rc_process_support.cpp.

const sc_signal< bool > * reset_channel_is ( const sc_object &  host,
rc_reset_channel_if reset_,
bool  active_level 
)

Definition at line 516 of file rc_process_support.cpp.

void reset_is ( const sc_object &  host,
rc_process_reset process_reset 
)

Definition at line 537 of file rc_process_support.cpp.

void set_sync_reset ( const sc_object &  host,
bool  b 
) const

Definition at line 550 of file rc_process_support.cpp.

rc_process_behavior_change disable_process_control (  )  const

Definition at line 569 of file rc_process_support.cpp.

void before_end_of_elaboration (  )  [protected]

Definition at line 581 of file rc_process_support.cpp.

process_support::process_info * _rc_find_process_info ( sc_object *  proc_obj  )  const [private]

Definition at line 591 of file rc_process_support.cpp.

Referenced by process_support::method_process().

process_support::process_info * _rc_fetch_process_info ( sc_object *  proc_obj  )  [private]

Definition at line 599 of file rc_process_support.cpp.

bool _rc_check_valid_last_proc ( const sc_object &  host  )  const [private]

Definition at line 613 of file rc_process_support.cpp.

Referenced by process_support::dont_initialize().

rc_reconfigurable & _rc_find_context ( sc_object *  start_search  )  [static, private]

Definition at line 621 of file rc_process_support.cpp.

static void register_process_control ( const rc_reset_channel_if reset_channel,
rc_process_control pctrl,
bool  active_level 
) [inline, static, private]

Definition at line 142 of file rc_process_support.h.

Referenced by process_support::process_info::register_reset_channel().

static void unregister_process_control ( const rc_reset_channel_if reset_channel,
rc_process_control pctrl 
) [inline, static, private]

Definition at line 147 of file rc_process_support.h.

Referenced by process_support::process_info::~process_info().

static bool get_current_level ( const rc_reset_channel_if reset_channel  )  [inline, static, private]

Definition at line 152 of file rc_process_support.h.

Referenced by process_support::process_info::update_process_control_state().


Member Data Documentation

rc_reconfigurable& p_reconf [private]

Definition at line 157 of file rc_process_support.h.

Referenced by process_support::declare_process(), process_support::disable_process_control(), process_support::get_context(), process_support::get_reconfigurable_context(), process_support::has_non_reconfigurable_context(), process_support::has_reconfigurable_context(), process_support::method_process(), process_support::rc_spawn(), and process_support::thread_process().

process_info_map p_reconf_pinfo_map [private]

Definition at line 158 of file rc_process_support.h.

Referenced by process_support::_rc_fetch_process_info(), process_support::_rc_find_process_info(), process_support::before_end_of_elaboration(), process_support::declare_process(), and process_support::rc_spawn().

process_info* p_last_pinfo [private]

Definition at line 159 of file rc_process_support.h.

Referenced by process_support::_rc_check_valid_last_proc(), process_support::declare_process(), process_support::dont_initialize(), process_support::reset_channel_is(), process_support::reset_is(), process_support::reset_signal_is(), and process_support::set_sync_reset().

const sc_object* p_last_host [private]

Definition at line 160 of file rc_process_support.h.

Referenced by process_support::_rc_check_valid_last_proc(), and process_support::declare_process().

unsigned int p_last_host_child_count [private]

Definition at line 161 of file rc_process_support.h.

Referenced by process_support::_rc_check_valid_last_proc(), process_support::declare_process(), and process_support::reset_signal_is().


The documentation for this class was generated from the following files:
Generated on Tue Jan 1 23:14:16 2008 for ReChannel by  doxygen 1.5.3