sc_semaphore.cc (13298:0a0a0aad1b4a) | sc_semaphore.cc (13324:c8b709468e61) |
---|---|
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 --- 16 unchanged lines hidden (view full) --- 25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 * 27 * Authors: Gabe Black 28 */ 29 30#include <string> 31 32#include "base/logging.hh" | 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 --- 16 unchanged lines hidden (view full) --- 25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 * 27 * Authors: Gabe Black 28 */ 29 30#include <string> 31 32#include "base/logging.hh" |
33#include "systemc/ext/channel/messages.hh" |
|
33#include "systemc/ext/channel/sc_semaphore.hh" 34#include "systemc/ext/core/sc_module.hh" // for sc_gen_unique_name 35#include "systemc/ext/utils/sc_report_handler.hh" 36 37namespace sc_core 38{ 39 40sc_semaphore::sc_semaphore(int value) : 41 sc_semaphore(sc_gen_unique_name("semaphore"), value) 42{} 43 44sc_semaphore::sc_semaphore(const char *_name, int value) : 45 sc_interface(), sc_semaphore_if(), sc_object(_name), _value(value) 46{ 47 if (value < 0) { 48 std::string msg = "semaphore '" + std::string(name()) + "'"; | 34#include "systemc/ext/channel/sc_semaphore.hh" 35#include "systemc/ext/core/sc_module.hh" // for sc_gen_unique_name 36#include "systemc/ext/utils/sc_report_handler.hh" 37 38namespace sc_core 39{ 40 41sc_semaphore::sc_semaphore(int value) : 42 sc_semaphore(sc_gen_unique_name("semaphore"), value) 43{} 44 45sc_semaphore::sc_semaphore(const char *_name, int value) : 46 sc_interface(), sc_semaphore_if(), sc_object(_name), _value(value) 47{ 48 if (value < 0) { 49 std::string msg = "semaphore '" + std::string(name()) + "'"; |
49 SC_REPORT_ERROR("(E119) sc_semaphore requires an initial value >= 0", 50 msg.c_str()); | 50 SC_REPORT_ERROR(SC_ID_INVALID_SEMAPHORE_VALUE_, msg.c_str()); |
51 } 52} 53 54int 55sc_semaphore::wait() 56{ 57 while (trywait() == -1) 58 ::sc_core::wait(posted); --- 24 unchanged lines hidden --- | 51 } 52} 53 54int 55sc_semaphore::wait() 56{ 57 while (trywait() == -1) 58 ::sc_core::wait(posted); --- 24 unchanged lines hidden --- |