31 #include <sys/ioctl.h> 32 #include <sys/types.h> 34 #if defined(__sun__) || defined(__SUNPRO_CC) 114 : poll_fds(NULL), max_size(0), num_fds(0)
128 eventvec_t::iterator
i =
events.begin();
129 eventvec_t::iterator end =
events.end();
143 eventvec_t::iterator
i =
events.begin();
144 eventvec_t::iterator end =
events.end();
157 panic(
"Event does not exist. Cannot remove.");
164 panic(
"Event already scheduled!");
205 template <
class ArgT>
208 int retval = fcntl(fd, cmd, arg);
210 char *errstr = strerror(errno);
211 panic(
"fcntl(%d, %d, %s): \"%s\" when setting up async IO.\n",
212 errstr, fd, cmd, arg);
219 int retval = fcntl(fd, cmd);
221 char *errstr = strerror(errno);
222 panic(
"fcntl(%d, %d): \"%s\" when setting up async IO.\n",
#define panic(...)
This implements a cprintf based panic() function.
virtual void wakeup(Tick when=(Tick) -1)
Function to signal that the event loop should be woken up because an event has been scheduled by an a...
EventQueue * getEventQueue(uint32_t index)
Function for returning eventq queue for the provided index.
This file defines flags used to handle asynchronous simulator events.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Overload hash function for BasicBlockRange type.
static int fcntlHelper(int fd, int cmd, ArgT arg)
void schedule(PollEvent *event)
#define UNSERIALIZE_SCALAR(scalar)
void serialize(CheckpointOut &cp) const override
Serialize an object.
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
static void setupAsyncIO(int fd, bool set)
PollEvent(int fd, int event)
#define SERIALIZE_SCALAR(scalar)
std::ostream CheckpointOut
void remove(PollEvent *event)
volatile bool async_io
Async I/O request (SIGIO).
volatile bool async_event
Some asynchronous event has happened.