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 notifyWork(Event *e); 80 bool notify(Event *e); |
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 |
280 bool notifyWork(Event *e) override; |
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 |
296 bool notifyWork(Event *e) override; |
297}; 298 299} // namespace sc_gem5 300 301#endif //__SYSTEMC_CORE_SENSITIVITY_HH__ |