xref: /netbsd-src/external/gpl3/gdb/dist/gdbserver/linux-s390-tdesc.h (revision 64f917f5a88990e32dd65fcd4348042fa7f852b9)
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