1 /* Hardware event manager. 2 Copyright (C) 1998, 2007, 2008, 2009, 2010, 2011 3 Free Software Foundation, Inc. 4 Contributed by Cygnus Support. 5 6 This file is part of GDB, the GNU debugger. 7 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. 12 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. 17 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/>. */ 20 21 #ifndef HW_EVENTS_H 22 #define HW_EVENTS_H 23 24 /* Event manager customized for hardware models. 25 26 This interface is discussed further in sim-events.h. */ 27 28 struct hw_event; 29 typedef void (hw_event_callback) (struct hw *me, void *data); 30 31 struct hw_event *hw_event_queue_schedule 32 (struct hw *me, 33 signed64 delta_time, 34 hw_event_callback *handler, 35 void *data); 36 37 struct hw_event *hw_event_queue_schedule_tracef 38 (struct hw *me, 39 signed64 delta_time, 40 hw_event_callback *handler, 41 void *data, 42 const char *fmt, 43 ...) __attribute__ ((format (printf, 5, 6))); 44 45 struct hw_event *hw_event_queue_schedule_vtracef 46 (struct hw *me, 47 signed64 delta_time, 48 hw_event_callback *handler, 49 void *data, 50 const char *fmt, 51 va_list ap); 52 53 54 void hw_event_queue_deschedule 55 (struct hw *me, 56 struct hw_event *event_to_remove); 57 58 signed64 hw_event_queue_time 59 (struct hw *me); 60 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); 64 65 #endif 66