]> Git Repo - binutils.git/blob - gdb/python/py-evts.c
gdb/python: remove Python 2 support
[binutils.git] / gdb / python / py-evts.c
1 /* Python interface to inferior events.
2
3    Copyright (C) 2009-2022 Free Software Foundation, Inc.
4
5    This file is part of GDB.
6
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.
11
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.
16
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/>.  */
19
20 #include "defs.h"
21 #include "py-events.h"
22
23 static struct PyModuleDef EventModuleDef =
24 {
25   PyModuleDef_HEAD_INIT,
26   "gdb.events",
27   NULL,
28   -1,
29   NULL,
30   NULL,
31   NULL,
32   NULL,
33   NULL
34 };
35
36 /* Initialize python events.  */
37
38 static int CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION
39 add_new_registry (eventregistry_object **registryp, const char *name)
40 {
41   *registryp = create_eventregistry_object ();
42
43   if (*registryp == NULL)
44     return -1;
45
46   return gdb_pymodule_addobject (gdb_py_events.module,
47                                  name,
48                                  (PyObject *)(*registryp));
49 }
50
51 int
52 gdbpy_initialize_py_events (void)
53 {
54   gdb_py_events.module = PyModule_Create (&EventModuleDef);
55
56   if (!gdb_py_events.module)
57     return -1;
58
59 #define GDB_PY_DEFINE_EVENT(name)                               \
60   if (add_new_registry (&gdb_py_events.name, #name) < 0)        \
61     return -1;
62 #include "py-all-events.def"
63 #undef GDB_PY_DEFINE_EVENT
64
65   if (gdb_pymodule_addobject (gdb_module,
66                               "events",
67                               (PyObject *) gdb_py_events.module) < 0)
68     return -1;
69
70   return 0;
71 }
This page took 0.029477 seconds and 4 git commands to generate.