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 --- 35 unchanged lines hidden (view full) --- 44#include "systemc/ext/core/sc_event.hh" 45#include "systemc/ext/core/sc_export.hh" 46#include "systemc/ext/core/sc_interface.hh" 47#include "systemc/ext/core/sc_module.hh" 48#include "systemc/ext/core/sc_port.hh" 49#include "systemc/ext/core/sc_process_handle.hh" 50#include "systemc/ext/utils/sc_report.hh" 51 |
52namespace sc_core 53{ 54 55class sc_join; 56 57} // namespace sc_core 58 |
59namespace sc_gem5 60{ 61 62class ScHalt 63{}; 64 65class Sensitivity 66{ --- 282 unchanged lines hidden (view full) --- 349 bool hasStaticSensitivities() { return !staticSensitivities.empty(); } 350 bool internal() { return _internal; } 351 bool timedOut() { return _timedOut; } 352 void timedOut(bool to) { _timedOut = to; } 353 354 bool dontInitialize() { return _dontInitialize; } 355 void dontInitialize(bool di) { _dontInitialize = di; } 356 |
357 void joinWait(::sc_core::sc_join *join) { joinWaiters.push_back(join); } 358 |
359 protected: 360 Process(const char *name, ProcessFuncWrapper *func, bool internal=false); 361 362 static Process *_newest; 363 364 virtual ~Process() 365 { 366 popListNode(); --- 33 unchanged lines hidden (view full) --- 400 size_t stackSize; 401 402 Sensitivities staticSensitivities; 403 PendingSensitivities pendingStaticSensitivities; 404 405 Sensitivity *dynamicSensitivity; 406 407 std::unique_ptr<::sc_core::sc_report> _lastReport; |
408 409 std::vector<::sc_core::sc_join *> joinWaiters; |
410}; 411 412inline void 413Sensitivity::satisfy(bool timedOut) 414{ 415 process->timedOut(timedOut); 416 process->satisfySensitivity(this); 417} --- 17 unchanged lines hidden --- |