/* Python event definitions -*- c++ -*-

   Copyright (C) 2017-2026 Free Software Foundation, Inc.

   This file is part of GDB.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* To use this file, define GDB_PY_DEFINE_EVENT_TYPE to expand how you
   like, then include the file.

   Each invocation is of the form:

   GDB_PY_DEFINE_EVENT_TYPE(name, py_name, doc, base)

   NAME is the name of the event.
   PY_NAME a string representing what the event should be called in
   python.
   DOC Python documentation for the new event type
   BASE the base event for this event usually just event_object_type.
*/

GDB_PY_DEFINE_EVENT_TYPE (breakpoint,
			  "BreakpointEvent",
			  "GDB breakpoint stop event object",
			  stop_event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (continue,
			  "ContinueEvent",
			  "GDB continue event object",
			  thread_event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (exited,
			  "ExitedEvent",
			  "GDB exited event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (new_thread,
			  "NewThreadEvent",
			  "GDB new thread event object",
			  thread_event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (thread_exited,
			  "ThreadExitedEvent",
			  "GDB thread exited event object",
			  thread_event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (new_inferior,
			  "NewInferiorEvent",
			  "GDB new inferior event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (inferior_deleted,
			  "InferiorDeletedEvent",
			  "GDB inferior deleted event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (inferior_call_pre,
			  "InferiorCallPreEvent",
			  "GDB inferior function pre-call event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (inferior_call_post,
			  "InferiorCallPostEvent",
			  "GDB inferior function post-call event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (register_changed,
			  "RegisterChangedEvent",
			  "GDB register change event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (memory_changed,
			  "MemoryChangedEvent",
			  "GDB memory change event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (new_objfile,
			  "NewObjFileEvent",
			  "GDB new object file event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (free_objfile,
			  "FreeObjFileEvent",
			  "GDB free object file event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (clear_objfiles,
			  "ClearObjFilesEvent",
			  "GDB clear object files event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (signal,
			  "SignalEvent",
			  "GDB signal event object",
			  stop_event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (stop,
			  "StopEvent",
			  "GDB stop event object",
			  thread_event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (thread,
			  "ThreadEvent",
			  "GDB thread event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (gdb_exiting,
			  "GdbExitingEvent",
			  "GDB is about to exit",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (connection,
			  "ConnectionEvent",
			  "GDB connection added or removed object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (executable_changed,
			  "ExecutableChangedEvent",
			  "GDB executable changed event",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (new_progspace,
			  "NewProgspaceEvent",
			  "GDB new Progspace event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (free_progspace,
			  "FreeProgspaceEvent",
			  "GDB free Progspace event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (tui_enabled,
			  "TuiEnabledEvent",
			  "GDB TUI enabled event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (selected_context,
			  "SelectedContextEvent",
			  "GDB user selected context event object",
			  event_object_type);

GDB_PY_DEFINE_EVENT_TYPE (corefile_changed,
			  "CorefileChangedEvent",
			  "GDB corefile changed event",
			  event_object_type);
