X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Fcpu-arc.c;h=bce59d4c99f351601776facdb3ab9d8c5e5d1ce5;hb=75cc718903a22a68fc0db87f5976e868822ff4e5;hp=b7e9a7cd732200f8c787cd0d909b24a7bb3a6b77;hpb=ae115e5114deb0326333c80f7af9e689b2e7d01f;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/cpu-arc.c b/bfd/cpu-arc.c index b7e9a7cd73..bce59d4c99 100644 --- a/bfd/cpu-arc.c +++ b/bfd/cpu-arc.c @@ -1,5 +1,5 @@ /* BFD support for the ARC processor - Copyright 1994, 1995 Free Software Foundation, Inc. + Copyright 1994, 1995, 1997 Free Software Foundation, Inc. Contributed by Doug Evans (dje@cygnus.com). This file is part of BFD, the Binary File Descriptor library. @@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "sysdep.h" #include "libbfd.h" -#define ARC(mach, print_name, default_p) \ +#define ARC(mach, print_name, default_p, next) \ { \ 32, /* 32 bits in a word */ \ 32, /* 32 bits in an address */ \ @@ -35,43 +35,36 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ default_p, \ bfd_default_compatible, \ bfd_default_scan, \ - 0, \ + next, \ } -static bfd_arch_info_type arch_info_struct[] = +#if 0 /* ??? Not currently needed, but keep in for future reference. */ +static const bfd_arch_info_type arch_info_struct[] = { - ARC (bfd_mach_arc_base, "arc-base", true), - ARC (bfd_mach_arc_host, "arc-host", false), - ARC (bfd_mach_arc_graphics, "arc-graphics", false), - ARC (bfd_mach_arc_audio, "arc-audio", false), + ARC (bfd_mach_arc_foo, "arc-foo", false, &arch_info_struct[1]), + ARC (bfd_mach_arc_bar, "arc-bar", false, 0), }; +#endif -void -bfd_arc_arch () -{ - register unsigned int i; - - for (i = 0; i < sizeof (arch_info_struct) / sizeof (arch_info_struct[0]); i++) - bfd_arch_linkin (&arch_info_struct[i]); -} +const bfd_arch_info_type bfd_arc_arch = + ARC (bfd_mach_arc_base, "arc-base", true, 0 /*&arch_info_struct[0]*/); /* Utility routines. */ /* Given cpu type NAME, return its bfd_mach_arc_xxx value. - NAME is one of "base, audio, etc.". Returns -1 if not found. */ int arc_get_mach (name) char *name; { - register unsigned int i; + const bfd_arch_info_type *p; - for (i = 0; i < sizeof (arch_info_struct) / sizeof (arch_info_struct[0]); i++) + for (p = &bfd_arc_arch; p != NULL; p = p->next) { /* +4: skip over "arc-" */ - if (strcmp (name, arch_info_struct[i].printable_name + 4) == 0) - return arch_info_struct[i].mach; + if (strcmp (name, p->printable_name + 4) == 0) + return p->mach; } return -1; }