sensitivity.hh (13288:f1c04129f709) sensitivity.hh (13304:893e724efd57)
1/*
2 * Copyright 2018 Google, Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met: redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer;
8 * redistributions in binary form must reproduce the above copyright

--- 62 unchanged lines hidden (view full) ---

71
72 virtual void addToEvent(const ::sc_core::sc_event *e) = 0;
73 virtual void delFromEvent(const ::sc_core::sc_event *e) = 0;
74
75 public:
76 virtual void clear() = 0;
77
78 void satisfy();
1/*
2 * Copyright 2018 Google, Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met: redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer;
8 * redistributions in binary form must reproduce the above copyright

--- 62 unchanged lines hidden (view full) ---

71
72 virtual void addToEvent(const ::sc_core::sc_event *e) = 0;
73 virtual void delFromEvent(const ::sc_core::sc_event *e) = 0;
74
75 public:
76 virtual void clear() = 0;
77
78 void satisfy();
79 virtual bool notify(Event *e);
79 virtual bool notifyWork(Event *e);
80 bool notify(Event *e);
80
81 enum Category
82 {
83 Static,
84 Dynamic
85 };
86
87 virtual Category category() = 0;

--- 183 unchanged lines hidden (view full) ---

271{
272 private:
273 friend void newDynamicSensitivityEventOrList(
274 Process *p, const sc_core::sc_event_or_list *eol);
275
276 DynamicSensitivityEventOrList(
277 Process *p, const sc_core::sc_event_or_list *eol);
278
81
82 enum Category
83 {
84 Static,
85 Dynamic
86 };
87
88 virtual Category category() = 0;

--- 183 unchanged lines hidden (view full) ---

272{
273 private:
274 friend void newDynamicSensitivityEventOrList(
275 Process *p, const sc_core::sc_event_or_list *eol);
276
277 DynamicSensitivityEventOrList(
278 Process *p, const sc_core::sc_event_or_list *eol);
279
279 bool notify(Event *e) override;
280 bool notifyWork(Event *e) override;
280};
281
282//XXX This sensitivity can't be reused. To reset it, it has to be deleted and
283//recreated. That works for dynamic sensitivities, but not for static.
284//Fortunately processes can't be statically sensitive to sc_event_and_lists.
285class DynamicSensitivityEventAndList :
286 public DynamicSensitivity, public SensitivityEvents
287{
288 private:
289 friend void newDynamicSensitivityEventAndList(
290 Process *p, const sc_core::sc_event_and_list *eal);
291
292 DynamicSensitivityEventAndList(
293 Process *p, const sc_core::sc_event_and_list *eal);
294
281};
282
283//XXX This sensitivity can't be reused. To reset it, it has to be deleted and
284//recreated. That works for dynamic sensitivities, but not for static.
285//Fortunately processes can't be statically sensitive to sc_event_and_lists.
286class DynamicSensitivityEventAndList :
287 public DynamicSensitivity, public SensitivityEvents
288{
289 private:
290 friend void newDynamicSensitivityEventAndList(
291 Process *p, const sc_core::sc_event_and_list *eal);
292
293 DynamicSensitivityEventAndList(
294 Process *p, const sc_core::sc_event_and_list *eal);
295
295 bool notify(Event *e) override;
296 bool notifyWork(Event *e) override;
296};
297
298} // namespace sc_gem5
299
300#endif //__SYSTEMC_CORE_SENSITIVITY_HH__
297};
298
299} // namespace sc_gem5
300
301#endif //__SYSTEMC_CORE_SENSITIVITY_HH__