1 /* Hardware event manager.
2 Copyright (C) 1998-2018 Free Software Foundation, Inc.
3 Contributed by Cygnus Support.
5 This file is part of GDB, the GNU debugger.
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
23 /* Event manager customized for hardware models.
25 This interface is discussed further in sim-events.h. */
28 typedef void (hw_event_callback
) (struct hw
*me
, void *data
);
30 struct hw_event
*hw_event_queue_schedule
33 hw_event_callback
*handler
,
36 struct hw_event
*hw_event_queue_schedule_tracef
39 hw_event_callback
*handler
,
42 ...) __attribute__ ((format (printf
, 5, 6)));
44 struct hw_event
*hw_event_queue_schedule_vtracef
47 hw_event_callback
*handler
,
53 void hw_event_queue_deschedule
55 struct hw_event
*event_to_remove
);
57 signed64 hw_event_queue_time
60 /* Returns the time that remains before the event is raised. */
61 signed64 hw_event_remain_time
62 (struct hw
*me
, struct hw_event
*event
);