Consolidate save_inferior_ptid/restore_inferior_ptid implementation to

one source file.
This commit is contained in:
Kevin Buettner
2001-05-06 22:22:03 +00:00
parent a7c92daeed
commit ce696e0556
12 changed files with 64 additions and 239 deletions

View File

@ -97,8 +97,6 @@ static struct ps_prochandle main_ph;
static td_thragent_t *main_ta;
static int sol_thread_active = 0;
static struct cleanup *save_inferior_ptid (void);
static void restore_inferior_ptid (void *pid);
static char *td_err_string (td_err_e errcode);
static char *td_state_string (td_thr_state_e statecode);
static ptid_t thread_to_lwp (ptid_t thread_id, int default_lwp);
@ -395,50 +393,6 @@ lwp_to_thread (ptid_t lwp)
return BUILD_THREAD (ti.ti_tid, PIDGET (lwp));
}
/*
LOCAL FUNCTION
save_inferior_ptid - Save inferior_ptid on the cleanup list
restore_inferior_ptid - Restore inferior_ptid from the cleanup list
SYNOPSIS
struct cleanup *save_inferior_ptid ()
void restore_inferior_ptid (int pid)
DESCRIPTION
These two functions act in unison to restore inferior_ptid in
case of an error.
NOTES
inferior_ptid is a global variable that needs to be changed by many of
these routines before calling functions in procfs.c. In order to
guarantee that inferior_ptid gets restored (in case of errors), you
need to call save_inferior_ptid before changing it. At the end of the
function, you should invoke do_cleanups to restore it.
*/
static struct cleanup *
save_inferior_ptid (void)
{
ptid_t *saved_ptid = xmalloc (sizeof (ptid_t));
*saved_ptid = inferior_ptid;
return make_cleanup (restore_inferior_ptid, saved_ptid);
}
static void
restore_inferior_ptid (void *data)
{
ptid_t *saved_ptid = data;
inferior_ptid = *saved_ptid;
xfree (saved_ptid);
}
/* Most target vector functions from here on actually just pass through to
procfs.c, as they don't need to do anything specific for threads. */