1 /* Hardware event manager.
2 Copyright (C) 1998-2023 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/>. */
27 /* Event manager customized for hardware models.
29 This interface is discussed further in sim-events.h. */
32 typedef void (hw_event_callback
) (struct hw
*me
, void *data
);
34 struct hw_event
*hw_event_queue_schedule
37 hw_event_callback
*handler
,
40 struct hw_event
*hw_event_queue_schedule_tracef
43 hw_event_callback
*handler
,
46 ...) ATTRIBUTE_NULL_PRINTF (5, 6);
48 struct hw_event
*hw_event_queue_schedule_vtracef
51 hw_event_callback
*handler
,
54 va_list ap
) ATTRIBUTE_NULL_PRINTF (5, 0);
57 void hw_event_queue_deschedule
59 struct hw_event
*event_to_remove
);
61 int64_t hw_event_queue_time
64 /* Returns the time that remains before the event is raised. */
65 int64_t hw_event_remain_time
66 (struct hw
*me
, struct hw_event
*event
);