source: sources/src/sc_module.h @ 52

Last change on this file since 52 was 52, checked in by meunier, 12 years ago

Code formatting in all source files.

File size: 2.6 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
14#ifndef __SC_MODULE_H__
15#define __SC_MODULE_H__
16
17#include <list>
18#include <set>
19#include <stack>
20
21#include "internal.h"
22#include "sc_fwd.h"
23#include "sc_module_ext.h"
24#include "sc_object.h"
25#include "sc_sensitive.h"
26
27namespace sc_core {
28
29class sc_port_base;
30class sc_signal_base;
31
32
33//
34// INTERNAL IMPLEMENTATION
35//
36typedef std::list<sc_signal_base *> signal_list_t; 
37
38typedef std::list<sc_module *> instances_list_t; 
39typedef std::set<sc_module *> instances_set_t; 
40extern instances_set_t instances_set; // ensemble d'instances
41
42typedef std::stack<const sc_module *> modules_stack_t;
43extern modules_stack_t modules_stack;
44extern void check_all_method_process();
45extern void valid_method_process();
46
47extern std::ostream & operator << (std::ostream & o, instances_set_t &);
48
49
50// ----------------------------------------------------------------------------
51//  CLASS : method_process_t
52//
53//  Method process class.
54// ----------------------------------------------------------------------------
55
56class method_process_t {
57
58
59    public:
60    const char * name; // function name
61
62#ifdef DUMP_SCHEDULE_STATS
63    long long int number_of_calls;
64#endif
65
66    public:
67    // data
68    sc_module * module;
69    SC_ENTRY_FUNC func;
70    sensitivity_list_t sensitivity_list;
71    bool dont_initialize;
72
73    // constructors
74    method_process_t(const char * nm, SC_ENTRY_FUNC fn, sc_module & mod);
75
76    // methods
77    friend std::ostream& operator << (std::ostream &, const method_process_t &);
78
79    // accessors
80    bool is_combinational(void); 
81    bool is_transition(void);
82    bool is_genmoore(void);
83
84};
85
86
87} // end of namespace sc_core
88
89#endif /* __SC_MODULE_H__ */
90
91/*
92# Local Variables:
93# tab-width: 4;
94# c-basic-offset: 4;
95# c-file-offsets:((innamespace . 0)(inline-open . 0));
96# indent-tabs-mode: nil;
97# End:
98#
99# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
100*/
101
Note: See TracBrowser for help on using the repository browser.