mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-24 20:49:43 +00:00
* gdbarch.sh (gdbarch_update_p): Keep the list of architectures
sorted in most most-recent-used order. Document. * gdbarch.h, gdbarch.c: Regenerate.
This commit is contained in:
parent
c04a1aa88f
commit
0f79675b65
@ -1,3 +1,9 @@
|
||||
2002-04-20 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* gdbarch.sh (gdbarch_update_p): Keep the list of architectures
|
||||
sorted in most most-recent-used order. Document.
|
||||
* gdbarch.h, gdbarch.c: Regenerate.
|
||||
|
||||
2002-04-20 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* gdbserver/inferiors.c (struct inferior_info): Add regcache_data.
|
||||
|
@ -4854,7 +4854,6 @@ int
|
||||
gdbarch_update_p (struct gdbarch_info info)
|
||||
{
|
||||
struct gdbarch *new_gdbarch;
|
||||
struct gdbarch_list **list;
|
||||
struct gdbarch_registration *rego;
|
||||
|
||||
/* Fill in missing parts of the INFO struct using a number of
|
||||
@ -4947,29 +4946,46 @@ gdbarch_update_p (struct gdbarch_info info)
|
||||
/* Swap all data belonging to the old target out */
|
||||
swapout_gdbarch_swap (current_gdbarch);
|
||||
|
||||
/* Is this a pre-existing architecture? Yes. Swap it in. */
|
||||
for (list = ®o->arches;
|
||||
(*list) != NULL;
|
||||
list = &(*list)->next)
|
||||
{
|
||||
if ((*list)->gdbarch == new_gdbarch)
|
||||
{
|
||||
if (gdbarch_debug)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"gdbarch_update: Previous architecture 0x%08lx (%s) selected\n",
|
||||
(long) new_gdbarch,
|
||||
new_gdbarch->bfd_arch_info->printable_name);
|
||||
current_gdbarch = new_gdbarch;
|
||||
swapin_gdbarch_swap (new_gdbarch);
|
||||
architecture_changed_event ();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
/* Is this a pre-existing architecture? Yes. Move it to the front
|
||||
of the list of architectures (keeping the list sorted Most
|
||||
Recently Used) and then copy it in. */
|
||||
{
|
||||
struct gdbarch_list **list;
|
||||
for (list = ®o->arches;
|
||||
(*list) != NULL;
|
||||
list = &(*list)->next)
|
||||
{
|
||||
if ((*list)->gdbarch == new_gdbarch)
|
||||
{
|
||||
struct gdbarch_list *this;
|
||||
if (gdbarch_debug)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"gdbarch_update: Previous architecture 0x%08lx (%s) selected\n",
|
||||
(long) new_gdbarch,
|
||||
new_gdbarch->bfd_arch_info->printable_name);
|
||||
/* Unlink this. */
|
||||
this = (*list);
|
||||
(*list) = this->next;
|
||||
/* Insert in the front. */
|
||||
this->next = rego->arches;
|
||||
rego->arches = this;
|
||||
/* Copy the new architecture in. */
|
||||
current_gdbarch = new_gdbarch;
|
||||
swapin_gdbarch_swap (new_gdbarch);
|
||||
architecture_changed_event ();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Append this new architecture to this targets list. */
|
||||
(*list) = XMALLOC (struct gdbarch_list);
|
||||
(*list)->next = NULL;
|
||||
(*list)->gdbarch = new_gdbarch;
|
||||
/* Prepend this new architecture to the architecture list (keep the
|
||||
list sorted Most Recently Used). */
|
||||
{
|
||||
struct gdbarch_list *this = XMALLOC (struct gdbarch_list);
|
||||
this->next = rego->arches;
|
||||
this->gdbarch = new_gdbarch;
|
||||
rego->arches = this;
|
||||
}
|
||||
|
||||
/* Switch to this new architecture. Dump it out. */
|
||||
current_gdbarch = new_gdbarch;
|
||||
|
@ -2406,9 +2406,16 @@ extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch);
|
||||
architecture; ARCHES which is a list of the previously created
|
||||
``struct gdbarch'' for this architecture.
|
||||
|
||||
The INIT function parameter INFO shall, as far as possible, be
|
||||
pre-initialized with information obtained from INFO.ABFD or
|
||||
previously selected architecture (if similar).
|
||||
The INFO parameter is, as far as possible, be pre-initialized with
|
||||
information obtained from INFO.ABFD or the previously selected
|
||||
architecture.
|
||||
|
||||
The ARCHES parameter is a linked list (sorted most recently used)
|
||||
of all the previously created architures for this architecture
|
||||
family. The (possibly NULL) ARCHES->gdbarch can used to access
|
||||
values from the previously selected architecture for this
|
||||
architecture family. The global ``current_gdbarch'' shall not be
|
||||
used.
|
||||
|
||||
The INIT function shall return any of: NULL - indicating that it
|
||||
doesn't recognize the selected architecture; an existing ``struct
|
||||
|
@ -955,9 +955,16 @@ extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch);
|
||||
architecture; ARCHES which is a list of the previously created
|
||||
\`\`struct gdbarch'' for this architecture.
|
||||
|
||||
The INIT function parameter INFO shall, as far as possible, be
|
||||
pre-initialized with information obtained from INFO.ABFD or
|
||||
previously selected architecture (if similar).
|
||||
The INFO parameter is, as far as possible, be pre-initialized with
|
||||
information obtained from INFO.ABFD or the previously selected
|
||||
architecture.
|
||||
|
||||
The ARCHES parameter is a linked list (sorted most recently used)
|
||||
of all the previously created architures for this architecture
|
||||
family. The (possibly NULL) ARCHES->gdbarch can used to access
|
||||
values from the previously selected architecture for this
|
||||
architecture family. The global \`\`current_gdbarch'' shall not be
|
||||
used.
|
||||
|
||||
The INIT function shall return any of: NULL - indicating that it
|
||||
doesn't recognize the selected architecture; an existing \`\`struct
|
||||
@ -2050,7 +2057,6 @@ int
|
||||
gdbarch_update_p (struct gdbarch_info info)
|
||||
{
|
||||
struct gdbarch *new_gdbarch;
|
||||
struct gdbarch_list **list;
|
||||
struct gdbarch_registration *rego;
|
||||
|
||||
/* Fill in missing parts of the INFO struct using a number of
|
||||
@ -2143,29 +2149,46 @@ gdbarch_update_p (struct gdbarch_info info)
|
||||
/* Swap all data belonging to the old target out */
|
||||
swapout_gdbarch_swap (current_gdbarch);
|
||||
|
||||
/* Is this a pre-existing architecture? Yes. Swap it in. */
|
||||
for (list = ®o->arches;
|
||||
(*list) != NULL;
|
||||
list = &(*list)->next)
|
||||
{
|
||||
if ((*list)->gdbarch == new_gdbarch)
|
||||
{
|
||||
if (gdbarch_debug)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"gdbarch_update: Previous architecture 0x%08lx (%s) selected\\n",
|
||||
(long) new_gdbarch,
|
||||
new_gdbarch->bfd_arch_info->printable_name);
|
||||
current_gdbarch = new_gdbarch;
|
||||
swapin_gdbarch_swap (new_gdbarch);
|
||||
architecture_changed_event ();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
/* Is this a pre-existing architecture? Yes. Move it to the front
|
||||
of the list of architectures (keeping the list sorted Most
|
||||
Recently Used) and then copy it in. */
|
||||
{
|
||||
struct gdbarch_list **list;
|
||||
for (list = ®o->arches;
|
||||
(*list) != NULL;
|
||||
list = &(*list)->next)
|
||||
{
|
||||
if ((*list)->gdbarch == new_gdbarch)
|
||||
{
|
||||
struct gdbarch_list *this;
|
||||
if (gdbarch_debug)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"gdbarch_update: Previous architecture 0x%08lx (%s) selected\n",
|
||||
(long) new_gdbarch,
|
||||
new_gdbarch->bfd_arch_info->printable_name);
|
||||
/* Unlink this. */
|
||||
this = (*list);
|
||||
(*list) = this->next;
|
||||
/* Insert in the front. */
|
||||
this->next = rego->arches;
|
||||
rego->arches = this;
|
||||
/* Copy the new architecture in. */
|
||||
current_gdbarch = new_gdbarch;
|
||||
swapin_gdbarch_swap (new_gdbarch);
|
||||
architecture_changed_event ();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Append this new architecture to this targets list. */
|
||||
(*list) = XMALLOC (struct gdbarch_list);
|
||||
(*list)->next = NULL;
|
||||
(*list)->gdbarch = new_gdbarch;
|
||||
/* Prepend this new architecture to the architecture list (keep the
|
||||
list sorted Most Recently Used). */
|
||||
{
|
||||
struct gdbarch_list *this = XMALLOC (struct gdbarch_list);
|
||||
this->next = rego->arches;
|
||||
this->gdbarch = new_gdbarch;
|
||||
rego->arches = this;
|
||||
}
|
||||
|
||||
/* Switch to this new architecture. Dump it out. */
|
||||
current_gdbarch = new_gdbarch;
|
||||
|
Loading…
Reference in New Issue
Block a user