18dffb485Schristos /* Low level support for s390, shared between gdbserver and IPA. 28dffb485Schristos 3*64f917f5Schristos Copyright (C) 2016-2024 Free Software Foundation, Inc. 48dffb485Schristos 58dffb485Schristos This file is part of GDB. 68dffb485Schristos 78dffb485Schristos This program is free software; you can redistribute it and/or modify 88dffb485Schristos it under the terms of the GNU General Public License as published by 98dffb485Schristos the Free Software Foundation; either version 3 of the License, or 108dffb485Schristos (at your option) any later version. 118dffb485Schristos 128dffb485Schristos This program is distributed in the hope that it will be useful, 138dffb485Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 148dffb485Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 158dffb485Schristos GNU General Public License for more details. 168dffb485Schristos 178dffb485Schristos You should have received a copy of the GNU General Public License 188dffb485Schristos along with this program. If not, see <http://www.gnu.org/licenses/>. */ 198dffb485Schristos 208dffb485Schristos #ifndef GDBSERVER_LINUX_S390_TDESC_H 218dffb485Schristos #define GDBSERVER_LINUX_S390_TDESC_H 228dffb485Schristos 238dffb485Schristos /* Note: since IPA obviously knows what ABI it's running on (s390 vs s390x), 248dffb485Schristos it's sufficient to pass only the register set here. This, together with 258dffb485Schristos the ABI known at IPA compile time, maps to a tdesc. */ 268dffb485Schristos 278dffb485Schristos enum s390_linux_tdesc { 288dffb485Schristos S390_TDESC_32, 298dffb485Schristos S390_TDESC_32V1, 308dffb485Schristos S390_TDESC_32V2, 318dffb485Schristos S390_TDESC_64, 328dffb485Schristos S390_TDESC_64V1, 338dffb485Schristos S390_TDESC_64V2, 348dffb485Schristos S390_TDESC_TE, 358dffb485Schristos S390_TDESC_VX, 368dffb485Schristos S390_TDESC_TEVX, 378dffb485Schristos S390_TDESC_GS, 388dffb485Schristos }; 398dffb485Schristos 408dffb485Schristos #ifdef __s390x__ 418dffb485Schristos 428dffb485Schristos /* Defined in auto-generated file s390x-linux64.c. */ 438dffb485Schristos void init_registers_s390x_linux64 (void); 448dffb485Schristos extern const struct target_desc *tdesc_s390x_linux64; 458dffb485Schristos 468dffb485Schristos /* Defined in auto-generated file s390x-linux64v1.c. */ 478dffb485Schristos void init_registers_s390x_linux64v1 (void); 488dffb485Schristos extern const struct target_desc *tdesc_s390x_linux64v1; 498dffb485Schristos 508dffb485Schristos /* Defined in auto-generated file s390x-linux64v2.c. */ 518dffb485Schristos void init_registers_s390x_linux64v2 (void); 528dffb485Schristos extern const struct target_desc *tdesc_s390x_linux64v2; 538dffb485Schristos 548dffb485Schristos /* Defined in auto-generated file s390x-te-linux64.c. */ 558dffb485Schristos void init_registers_s390x_te_linux64 (void); 568dffb485Schristos extern const struct target_desc *tdesc_s390x_te_linux64; 578dffb485Schristos 588dffb485Schristos /* Defined in auto-generated file s390x-vx-linux64.c. */ 598dffb485Schristos void init_registers_s390x_vx_linux64 (void); 608dffb485Schristos extern const struct target_desc *tdesc_s390x_vx_linux64; 618dffb485Schristos 628dffb485Schristos /* Defined in auto-generated file s390x-tevx-linux64.c. */ 638dffb485Schristos void init_registers_s390x_tevx_linux64 (void); 648dffb485Schristos extern const struct target_desc *tdesc_s390x_tevx_linux64; 658dffb485Schristos 668dffb485Schristos /* Defined in auto-generated file s390x-gs-linux64.c. */ 678dffb485Schristos void init_registers_s390x_gs_linux64 (void); 688dffb485Schristos extern const struct target_desc *tdesc_s390x_gs_linux64; 698dffb485Schristos 708dffb485Schristos #endif 718dffb485Schristos 728dffb485Schristos #if !defined __s390x__ || !defined IN_PROCESS_AGENT 738dffb485Schristos 748dffb485Schristos /* Defined in auto-generated file s390-linux32.c. */ 758dffb485Schristos void init_registers_s390_linux32 (void); 768dffb485Schristos extern const struct target_desc *tdesc_s390_linux32; 778dffb485Schristos 788dffb485Schristos /* Defined in auto-generated file s390-linux32v1.c. */ 798dffb485Schristos void init_registers_s390_linux32v1 (void); 808dffb485Schristos extern const struct target_desc *tdesc_s390_linux32v1; 818dffb485Schristos 828dffb485Schristos /* Defined in auto-generated file s390-linux32v2.c. */ 838dffb485Schristos void init_registers_s390_linux32v2 (void); 848dffb485Schristos extern const struct target_desc *tdesc_s390_linux32v2; 858dffb485Schristos 868dffb485Schristos /* Defined in auto-generated file s390-linux64.c. */ 878dffb485Schristos void init_registers_s390_linux64 (void); 888dffb485Schristos extern const struct target_desc *tdesc_s390_linux64; 898dffb485Schristos 908dffb485Schristos /* Defined in auto-generated file s390-linux64v1.c. */ 918dffb485Schristos void init_registers_s390_linux64v1 (void); 928dffb485Schristos extern const struct target_desc *tdesc_s390_linux64v1; 938dffb485Schristos 948dffb485Schristos /* Defined in auto-generated file s390-linux64v2.c. */ 958dffb485Schristos void init_registers_s390_linux64v2 (void); 968dffb485Schristos extern const struct target_desc *tdesc_s390_linux64v2; 978dffb485Schristos 988dffb485Schristos /* Defined in auto-generated file s390-te-linux64.c. */ 998dffb485Schristos void init_registers_s390_te_linux64 (void); 1008dffb485Schristos extern const struct target_desc *tdesc_s390_te_linux64; 1018dffb485Schristos 1028dffb485Schristos /* Defined in auto-generated file s390-vx-linux64.c. */ 1038dffb485Schristos void init_registers_s390_vx_linux64 (void); 1048dffb485Schristos extern const struct target_desc *tdesc_s390_vx_linux64; 1058dffb485Schristos 1068dffb485Schristos /* Defined in auto-generated file s390-tevx-linux64.c. */ 1078dffb485Schristos void init_registers_s390_tevx_linux64 (void); 1088dffb485Schristos extern const struct target_desc *tdesc_s390_tevx_linux64; 1098dffb485Schristos 1108dffb485Schristos /* Defined in auto-generated file s390-gs-linux64.c. */ 1118dffb485Schristos void init_registers_s390_gs_linux64 (void); 1128dffb485Schristos extern const struct target_desc *tdesc_s390_gs_linux64; 1138dffb485Schristos 1148dffb485Schristos #endif 1158dffb485Schristos 1168dffb485Schristos #endif /* GDBSERVER_LINUX_S390_TDESC_H */ 117