diff options
author | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 |
commit | 80f18fc933cf3f3e829c5455a1023d69f7b86e52 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /src/libmach/setmach.c | |
parent | 28592ee1ea1f5cdffcf85472f9de0285d928cf12 (diff) | |
download | golang-80f18fc933cf3f3e829c5455a1023d69f7b86e52.tar.gz |
Imported Upstream version 60
Diffstat (limited to 'src/libmach/setmach.c')
-rw-r--r-- | src/libmach/setmach.c | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/src/libmach/setmach.c b/src/libmach/setmach.c deleted file mode 100644 index 0fa4d3192..000000000 --- a/src/libmach/setmach.c +++ /dev/null @@ -1,203 +0,0 @@ -// Inferno libmach/setmach.c -// http://code.google.com/p/inferno-os/source/browse/utils/libmach/setmach.c -// -// Copyright © 1994-1999 Lucent Technologies Inc. -// Power PC support Copyright © 1995-2004 C H Forsyth (forsyth@terzarima.net). -// Portions Copyright © 1997-1999 Vita Nuova Limited. -// Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). -// Revisions Copyright © 2000-2004 Lucent Technologies Inc. and others. -// Portions Copyright © 2009 The Go Authors. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#include <u.h> -#include <libc.h> -#include <bio.h> -#include <mach.h> - /* table for selecting machine-dependent parameters */ - -typedef struct machtab Machtab; - -struct machtab -{ - char *name; /* machine name */ - short type; /* executable type */ - short boottype; /* bootable type */ - int asstype; /* disassembler code */ - Mach *mach; /* machine description */ - Machdata *machdata; /* machine functions */ -}; - -/* -extern Mach mmips, msparc, m68020, mi386, mamd64, - marm, mmips2be, mmips2le, mpower, mpower64, malpha, msparc64; -extern Machdata mipsmach, sparcmach, m68020mach, i386mach, - armmach, mipsmach2le, powermach, alphamach, sparc64mach; -*/ -extern Mach mi386, mamd64, marm; -extern Machdata i386mach, armmach; - -/* - * machine selection table. machines with native disassemblers should - * follow the plan 9 variant in the table; native modes are selectable - * only by name. - */ -Machtab machines[] = -{ - { "386", /*plan 9 386*/ - FI386, - FI386B, - AI386, - &mi386, - &i386mach, }, - { "amd64", /*amd64*/ - FAMD64, - FAMD64B, - AAMD64, - &mamd64, - &i386mach, }, - { "arm", /*ARM*/ - FARM, - FARMB, - AARM, - &marm, - &armmach, }, -#ifdef unused - { "68020", /*68020*/ - F68020, - F68020B, - A68020, - &m68020, - &m68020mach, }, - { "68020", /*Next 68040 bootable*/ - F68020, - FNEXTB, - A68020, - &m68020, - &m68020mach, }, - { "mips2LE", /*plan 9 mips2 little endian*/ - FMIPS2LE, - 0, - AMIPS, - &mmips2le, - &mipsmach2le, }, - { "mips", /*plan 9 mips*/ - FMIPS, - FMIPSB, - AMIPS, - &mmips, - &mipsmach, }, - { "mips2", /*plan 9 mips2*/ - FMIPS2BE, - FMIPSB, - AMIPS, - &mmips2be, - &mipsmach, }, /* shares debuggers with native mips */ - { "mipsco", /*native mips - must follow plan 9*/ - FMIPS, - FMIPSB, - AMIPSCO, - &mmips, - &mipsmach, }, - { "sparc", /*plan 9 sparc */ - FSPARC, - FSPARCB, - ASPARC, - &msparc, - &sparcmach, }, - { "sunsparc", /*native sparc - must follow plan 9*/ - FSPARC, - FSPARCB, - ASUNSPARC, - &msparc, - &sparcmach, }, - { "86", /*8086 - a peach of a machine*/ - FI386, - FI386B, - AI8086, - &mi386, - &i386mach, }, - { "power", /*PowerPC*/ - FPOWER, - FPOWERB, - APOWER, - &mpower, - &powermach, }, - { "power64", /*PowerPC*/ - FPOWER64, - FPOWER64B, - APOWER64, - &mpower64, - &powermach, }, - { "alpha", /*Alpha*/ - FALPHA, - FALPHAB, - AALPHA, - &malpha, - &alphamach, }, - { "sparc64", /*plan 9 sparc64 */ - FSPARC64, - FSPARCB, /* XXX? */ - ASPARC64, - &msparc64, - &sparc64mach, }, -#endif - { 0 }, /*the terminator*/ -}; - -/* - * select a machine by executable file type - */ -void -machbytype(int type) -{ - Machtab *mp; - - for (mp = machines; mp->name; mp++){ - if (mp->type == type || mp->boottype == type) { - asstype = mp->asstype; - machdata = mp->machdata; - break; - } - } -} -/* - * select a machine by name - */ -int -machbyname(char *name) -{ - Machtab *mp; - - if (!name) { - asstype = AAMD64; - machdata = &i386mach; - mach = &mamd64; - return 1; - } - for (mp = machines; mp->name; mp++){ - if (strcmp(mp->name, name) == 0) { - asstype = mp->asstype; - machdata = mp->machdata; - mach = mp->mach; - return 1; - } - } - return 0; -} |