1 1.1 christos /* Copyright (C) 2009-2019 Free Software Foundation, Inc. 2 1.1 christos 3 1.1 christos This file is part of GDB. 4 1.1 christos 5 1.1 christos This program is free software; you can redistribute it and/or modify 6 1.1 christos it under the terms of the GNU General Public License as published by 7 1.1 christos the Free Software Foundation; either version 3 of the License, or 8 1.1 christos (at your option) any later version. 9 1.1 christos 10 1.1 christos This program is distributed in the hope that it will be useful, 11 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of 12 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 1.1 christos GNU General Public License for more details. 14 1.1 christos 15 1.1 christos You should have received a copy of the GNU General Public License 16 1.1 christos along with this program. If not, see <http://www.gnu.org/licenses/>. */ 17 1.1 christos 18 1.1 christos 19 1.1 christos #ifndef PROGSPACE_AND_THREAD_H 20 1.1 christos #define PROGSPACE_AND_THREAD_H 21 1.1 christos 22 1.1 christos #include "progspace.h" 23 1.1 christos #include "gdbthread.h" 24 1.1 christos 25 1.1 christos /* Save/restore the current program space, thread, inferior and frame. 26 1.1 christos Use this when you need to call 27 1.1 christos switch_to_program_space_and_thread. */ 28 1.1 christos 29 1.1 christos class scoped_restore_current_pspace_and_thread 30 1.1 christos { 31 1.1 christos scoped_restore_current_program_space m_restore_pspace; 32 1.1 christos scoped_restore_current_thread m_restore_thread; 33 1.1 christos }; 34 1.1 christos 35 1.1 christos /* Switches full context to program space PSPACE. Switches to the 36 1.1 christos first thread found bound to PSPACE, giving preference to the 37 1.1 christos current thread, if there's one and it isn't executing. */ 38 1.1 christos void switch_to_program_space_and_thread (program_space *pspace); 39 1.1 christos 40 1.1 christos #endif 41