source: sources/src/sc_module.h @ 32

Last change on this file since 32 was 27, checked in by buchmann, 16 years ago

SystemCASS now uses autoconf/automake to build the API. Regression tests still
use the old Makefiles.
(thanks to Nicolas Pouillon)

The library directory no longer is "lib-arch-system". The directory now is "lib-linux". Everyone needs to pay attention about SYSTEMCASS environment variable.

Changes:

  • system header includes
  • Add includes to config.h (generated by autoconf/automake)
  • test:
    • linux preprocessor macro instead of _WIN32
    • CONFIG_DEBUG instead of DEBUG

Removes:

  • Makefile
  • guess_endianness.cc
  • guess_os.sh
  • assert.h (we now use standard assert.h)
  • Options.def
File size: 2.4 KB
Line 
1/*------------------------------------------------------------\
2|                                                             |
3| Tool    :                  systemcass                       |
4|                                                             |
5| File    :                   sc_module.h                     |
6|                                                             |
7| Author  :                 Buchmann Richard                  |
8|                           Taktak Sami                       |
9|                                                             |
10| Date    :                   09_07_2004                      |
11|                                                             |
12\------------------------------------------------------------*/
13#ifndef __SC_MODULE_H__
14#define __SC_MODULE_H__
15
16#include "sc_module_ext.h"
17
18#include <list>
19#include <set>
20#include <stack>
21#include "sc_fwd.h"
22#include "internal.h"
23#include "sc_object.h"
24#include "sc_sensitive.h"
25
26namespace sc_core {
27
28class sc_port_base;
29class sc_signal_base;
30
31
32//
33// INTERNAL IMPLEMENTATION
34//
35typedef std::list<sc_signal_base* > signal_list_t; 
36
37typedef std::list<sc_module* > instances_list_t; 
38typedef std::set<sc_module* > instances_set_t; 
39extern instances_set_t instances_set;     // ensemble d'instances
40
41typedef std::stack<const sc_module*> modules_stack_t;
42extern modules_stack_t modules_stack;
43extern void check_all_method_process ();
44extern void valid_method_process ();
45
46extern std::ostream& operator << (std::ostream &o, instances_set_t&);
47
48// ----------------------------------------------------------------------------
49//  CLASS : method_process_t
50//
51//  Method process class.
52// ----------------------------------------------------------------------------
53class method_process_t
54{
55  // for debug
56public: const char *name; // function name
57#ifdef DUMP_SCHEDULE_STATS
58        long long int number_of_calls;
59#endif 
60public:
61  // data
62  sc_module          *module;
63  SC_ENTRY_FUNC       func;
64  sensitivity_list_t  sensitivity_list;
65  bool                dont_initialize;
66
67  // constructors
68  method_process_t(const char* nm, SC_ENTRY_FUNC fn, sc_module& mod );
69
70  // methods
71  friend std::ostream& operator << (std::ostream &, const method_process_t &);
72 
73  // accessors
74  bool is_combinational(void); 
75  bool is_transition(void);
76  bool is_genmoore(void);
77};
78
79
80} // end of namespace sc_core
81
82#endif /* __SC_MODULE_H__ */
Note: See TracBrowser for help on using the repository browser.