[GDBserver] Multi-process + multi-arch: GNU/Linux IA64

This adjusts the GNU/Linux IA64 port to new interfaces.

Previously tested on ia64-unknown-linux-gnu, local gdbserver.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-ia64-low.c (tdesc_ia64): Declare.
	(ia64_fetch_register): Adjust.
	(ia64_usrregs_info, regs_info): New globals.
	(ia64_regs_info): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux SPARC

This adjusts the GNU/Linux SPARC port to new interfaces.

Previously tested on sparc64-unknown-linux-gnu (Debian), local
gdbserver.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-sparc-low.c (tdesc_sparc64): Declare.
	(sparc_fill_gregset_to_stack, sparc_store_gregset_from_stack):
	Adjust.
	(sparc_arch_setup): New function.
	(sparc_regsets_info, sparc_usrregs_info, regs_info): New globals.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux PowerPC

This adjusts the GNU/Linux PowerPC port to new interfaces.

Previously tested on PowerPC GDBserver Fedora 16, no regressions.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-ppc-low.c (tdesc_powerpc_32l, tdesc_powerpc_altivec32l)
	(tdesc_powerpc_cell32l, tdesc_powerpc_vsx32l)
	(tdesc_powerpc_isa205_32l, tdesc_powerpc_isa205_altivec32l)
	(tdesc_powerpc_isa205_vsx32l, tdesc_powerpc_e500l)
	(tdesc_powerpc_64l, tdesc_powerpc_altivec64l)
	(tdesc_powerpc_cell64l, tdesc_powerpc_vsx64l)
	(tdesc_powerpc_isa205_64l, tdesc_powerpc_isa205_altivec64l)
	(tdesc_powerpc_isa205_vsx64l): Declare.
	(ppc_cannot_store_register, ppc_collect_ptrace_register)
	(ppc_supply_ptrace_register, parse_spufs_run, ppc_get_pc)
	(ppc_set_pc, ppc_get_hwcap): Adjust.
	(ppc_usrregs_info): Forward declare.
	(!__powerpc64__) ppc_regmap_adjusted: New global.
	(ppc_arch_setup): Adjust to the current process'es target
	description.
	(ppc_fill_vsxregset, ppc_store_vsxregset, ppc_fill_vrregset)
	(ppc_store_vrregset, ppc_fill_evrregset, ppc_store_evrregse)
	(ppc_store_evrregset): Adjust.
	(target_regsets): Rename to ...
	(ppc_regsets): ... this, and make static.
	(ppc_usrregs_info, ppc_regsets_info, regs_info): New globals.
	(ppc_regs_info): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux S/390

This adjusts the GNU/Linux S/390 port to new interfaces.

Previously tested on s390x Fedora 16, local gdbserver.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-s390-low.c (tdesc_s390_linux32, tdesc_s390_linux32v1)
	(tdesc_s390_linux32v2, tdesc_s390_linux64, tdesc_s390_linux64v1)
	(tdesc_s390_linux64v2, tdesc_s390x_linux64, tdesc_s390x_linux64v1)
	(tdesc_s390x_linux64v2): Declare.
	(s390_collect_ptrace_register, s390_supply_ptrace_register)
	(s390_fill_gregset, s390_store_last_break): Adjust.
	(target_regsets): Rename to ...
	(s390_regsets): ... this, and make static.
	(s390_get_pc, s390_set_pc): Adjust.
	(s390_get_hwcap): New target_desc parameter, and use it.
	[__s390x__] (have_hwcap_s390_high_gprs): New global.
	(s390_arch_setup): Adjust to set the current process'es target
	description.  Don't adjust the regmap.
	(s390_usrregs_info, s390_regsets_info, regs_info): New globals.
	[__s390x__] (s390_usrregs_info_3264, s390_regsets_info_3264)
	(regs_info_3264): New globals.
	(s390_regs_info): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux MIPS

This adjusts the GNU/Linux MIPS port to new interfaces.

Previously tested on mips64-unknown-linux-gnu.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-mips-low.c (tdesc_mips_linux, tdesc_mips_dsp_linux)
	(tdesc_mips64_linux, tdesc_mips64_dsp_linux): Declare.
	[__mips64] (init_registers_mips_linux)
	(init_registers_mips_dsp_linux): Delete defines.
	[__mips64] (tdesc_mips_linux, tdesc_mips_dsp_linux): New defines.
	(have_dsp): New global.
	(mips_read_description): New, based on mips_arch_setup.
	(mips_arch_setup): Reimplement.
	(get_usrregs_info): New function.
	(mips_cannot_fetch_register, mips_cannot_store_register)
	(mips_get_pc, mips_set_pc, mips_fill_gregset, mips_store_gregset)
	(mips_fill_fpregset, mips_store_fpregset): Adjust.
	(target_regsets): Rename to ...
	(mips_regsets): ... this, and make static.
	(mips_regsets_info, mips_dsp_usrregs_info, mips_usrregs_info)
	(dsp_regs_info, regs_info): New globals.
	(mips_regs_info): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux ARM

This adjusts the GNU/Linux ARM port to new interfaces.

Built with a cross arm-linux-gnu toolchain.  Otherwise not tested.

2012-05-30  Pedro Alves  <palves@redhat.com>

	* linux-arm-low.c (tdesc_arm, tdesc_arm_with_iwmmxt)
	(tdesc_arm_with_vfpv2, tdesc_arm_with_vfpv3, tdesc_arm_with_neon):
	Declare.
	(arm_fill_vfpregset, arm_store_vfpregset): Adjust.
	(arm_read_description): New, with bits factored from
	arm_arch_setup.
	(arm_arch_setup): Reimplement.
	(target_regsets): Rename to ...
	(arm_regsets): ... this, and make static.
	(arm_regsets_info, arm_usrregs_info, regs_info): New globals.
	(arm_regs_info): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux m68k

This adjusts the GNU/Linux m68k port to new interfaces.

Built with a cross m68k-linux toolchain.  Otherwise not tested.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-m68k-low.c (tdesc_m68k): Declare.
	(target_regsets): Rename to ...
	(m68k_regsets): ... this, and make static.
	(m68k_regsets_info, m68k_usrregs_info, regs_info): New globals.
	(m68k_regs_info): New function.
	(m68k_arch_setup): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux SH

This adjusts the GNU/Linux SH port to new interfaces.

Built with a cross sh-linux-gnu toolchain.  Otherwise not tested.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-sh-low.c (tdesc_sharch): Declare.
	(target_regsets): Rename to ...
	(sh_regsets): ... this, and make static.
	(sh_regsets_info, sh_usrregs_info, regs_info): New globals.
	(sh_regs_info, sh_arch_setup): New functions.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux Blackfin

This adjusts the GNU/Linux Blackfin port to new interfaces.

Completely untested.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-bfin-low.c (tdesc_bfin): Declare.
	(bfin_arch_setup): New function.
	(bfin_usrregs_info, regs_info): New globals.
	(bfin_regs_info): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux CRIS

This adjusts the GNU/Linux CRIS port to new interfaces.

Completely untested.

2012-05-30  Pedro Alves  <palves@redhat.com>

	* linux-cris-low.c (tdesc_cris): Declare.
	(cris_arch_setup): New function.
	(cris_usrregs_info, regs_info): New globals.
	(cris_regs_info): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux CRISv32

This adjusts the GNU/Linux CRISv32 port to new interfaces.

Completely untested.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-cris-low.c (tdesc_crisv32): Declare.
	(cris_arch_setup): New function.
	(cris_regsets_info, cris_usrregs_info, regs_info): New globals.
	(cris_regs_info): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux M32R

This adjusts the GNU/Linux M32R port to new interfaces.

Completely untested.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-m32r-low.c (tdesc_m32r): Declare.
	(m32r_arch_setup): New function.
	(m32r_usrregs_info, regs_info): New globals.
	(m32r_regs_info): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux TI C6x

This adjusts the GNU/Linux TI C6x port to new interfaces.

Completely untested.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-tic6x-low.c (tdesc_tic6x_c64xp_linux)
	(tdesc_tic6x_c64x_linux, tdesc_tic6x_c62x_linux): Declare.
	(tic6x_usrregs_info): Forward declare.
	(tic6x_read_description): New function, based on ...
	(tic6x_arch_setup): ... this.  Reimplement.
	(target_regsets): Rename to ...
	(tic6x_regsets): ... this, and make static.
	(tic6x_regsets_info, tic6x_usrregs_info, regs_info): New globals.
	(tic6x_regs_info): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux Xtensa

This adjusts the GNU/Linux TI Xtensa port to new interfaces.

Completely untested.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* linux-xtensa-low.c (tdesc_xtensa): Declare.
	(xtensa_fill_gregset, xtensa_store_gregset): Adjust.
	(target_regsets): Rename to ...
	(xtensa_regsets): ... this, and make static.
	(xtensa_regsets_info, xtensa_usrregs_info, regs_info): New
	globals.
	(xtensa_arch_setup, xtensa_regs_info): New functions.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux Nios 2

This adjusts the GNU/Linux Nios 2 port to new interfaces.

Built with a cross nios2-linux-gnu toolchain.  Otherwise not tested.

2012-05-30  Pedro Alves  <palves@redhat.com>

	* linux-nios2-low.c (tdesc_nios2_linux): Declare.
	(nios2_arch_setup): Set the current process'es tdesc.
	(target_regsets): Rename to ...
	(nios2_regsets): ... this.
	(nios2_regsets_info, nios2_usrregs_info, regs_info): New globals.
	(nios2_regs_info): New function.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux Aarch64

This adjusts the GNU/Linux Aarch64 port to new interfaces.

Buit with a cross aarch64-linux-gnu toolchain.  Otherwise not tested.

2012-05-30  Pedro Alves  <palves@redhat.com>

        * linux-aarch64-low.c (tdesc_aarch64): Declare.
        (aarch64_arch_setup): Set the current process'es tdesc.
        (target_regsets): Rename to ...
        (aarch64_regsets): ... this.
        (aarch64_regsets_info, aarch64_usrregs_info, regs_info): New globals.
        (aarch64_regs_info): New function.
        (the_low_target): Adjust.
        (initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: GNU/Linux TILE-Gx

This adjusts the GNU/Linux TILE-Gx port to new interfaces.

Built with a cross tilegx-unknown-linux-gnu toolchain.  Otherwise not
tested.

2012-05-30  Pedro Alves  <palves@redhat.com>

	* linux-tile-low.c (tdesc_tilegx, tdesc_tilegx32): Declare
	globals.
	(target_regsets): Rename to ...
	(tile_regsets): ... this.
	(tile_regsets_info, tile_usrregs_info, regs_info): New globals.
	(tile_regs_info): New function.
	(tile_arch_setup): Set the current process'es tdesc.
	(the_low_target): Adjust.
	(initialize_low_arch): New function.
[GDBserver] Multi-process + multi-arch: SPU

This adjusts the SPU port to new interfaces.

Built (--host=spu) on PowerPC Fedora 16.  Otherwise not tested.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* spu-low.c (tdesc_spu): Declare.
	(spu_create_inferior, spu_attach): Set the new process'es tdesc.
[GDBserver] Multi-process + multi-arch: Windows

This adjusts the Windows ports to new interfaces.

Previously cross built for i386 mingw32, and smoke tested under Wine.
(yep, GDBserver does work under Wine these days.)  Rechecked that
GDBserver still builds.

2013-05-30  Pedro Alves  <palves@redhat.com>

	* win32-arm-low.c (tdesc_arm): Declare.
	(arm_arch_setup): New function.
	(the_low_target): Install arm_arch_setup instead of
	init_registers_arm.
	* win32-i386-low.c (tdesc_i386, tdesc_amd64): Declare.
	(init_windows_x86): Rename to ...
	(i386_arch_setup): ... this.  Set `win32_tdesc'.
	(the_low_target): Adjust.
	* win32-low.c (win32_tdesc): New global.
	(child_add_thread): Don't create the thread cache here.
	(do_initial_child_stuff): Set the new process'es tdesc.
	* win32-low.h (struct target_desc): Forward declare.
	(win32_tdesc): Declare.
[GDBserver] Multi-process + multi-arch: LynxOS

This adjusts the LynxOS ports to new interfaces.

Completely untested.

2012-05-30  Pedro Alves  <palves@redhat.com>

	* lynx-i386-low.c (tdesc_i386): Declare global.
	(lynx_i386_arch_setup): Set `lynx_tdesc'.
	* lynx-low.c (lynx_tdesc): New global.
	(lynx_add_process): Set the new process'es tdesc.
	* lynx-low.h (struct target_desc): Forward declare.
	(lynx_tdesc): Declare global.
	* lynx-ppc-low.c (tdesc_powerpc_32): Declare global.
	(lynx_ppc_arch_setup): Set `lynx_tdesc'.