1 /* Hardware event manager.
2 Copyright (C) 1998, 2007, 2008, 2009, 2010, 2011
3 Free Software Foundation, Inc.
4 Contributed by Cygnus Support.
6 This file is part of GDB, the GNU debugger.
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
24 /* Event manager customized for hardware models.
26 This interface is discussed further in sim-events.h. */
29 typedef void (hw_event_callback
) (struct hw
*me
, void *data
);
31 struct hw_event
*hw_event_queue_schedule
34 hw_event_callback
*handler
,
37 struct hw_event
*hw_event_queue_schedule_tracef
40 hw_event_callback
*handler
,
43 ...) __attribute__ ((format (printf
, 5, 6)));
45 struct hw_event
*hw_event_queue_schedule_vtracef
48 hw_event_callback
*handler
,
54 void hw_event_queue_deschedule
56 struct hw_event
*event_to_remove
);
58 signed64 hw_event_queue_time
61 /* Returns the time that remains before the event is raised. */
62 signed64 hw_event_remain_time
63 (struct hw
*me
, struct hw_event
*event
);