Constify some commands in cli-cmds.c
[deliverable/binutils-gdb.git] / gdb / i386-tdep.h
index 95288baa1a1f4d90c8bc7e715842d0a3d56fb4e4..99b89e747dfb4bd22d417ff3fccf74a4830a4470 100644 (file)
@@ -1,6 +1,6 @@
 /* Target-dependent code for the i386.
 
-   Copyright (C) 2001-2015 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -189,6 +189,15 @@ struct gdbarch_tdep
   /* YMM16-31 register names.  Only used for tdesc_numbered_register.  */
   const char **ymm_avx512_register_names;
 
+  /* Number of PKEYS registers.  */
+  int num_pkeys_regs;
+
+  /* Register number for PKRU register.  */
+  int pkru_regnum;
+
+  /* PKEYS register names.  */
+  const char **pkeys_register_names;
+
   /* Target description.  */
   const struct target_desc *tdesc;
 
@@ -284,7 +293,8 @@ enum i386_regnum
   I386_K0_REGNUM,              /* %k0 */
   I386_K7_REGNUM = I386_K0_REGNUM + 7,
   I386_ZMM0H_REGNUM,           /* %zmm0h */
-  I386_ZMM7H_REGNUM = I386_ZMM0H_REGNUM + 7
+  I386_ZMM7H_REGNUM = I386_ZMM0H_REGNUM + 7,
+  I386_PKRU_REGNUM
 };
 
 /* Register numbers of RECORD_REGMAP.  */
@@ -324,12 +334,11 @@ enum record_i386_regnum
 #define I386_AVX_NUM_REGS      (I386_YMM7H_REGNUM + 1)
 #define I386_MPX_NUM_REGS      (I386_BNDSTATUS_REGNUM + 1)
 #define I386_AVX512_NUM_REGS   (I386_ZMM7H_REGNUM + 1)
+#define I386_PKEYS_NUM_REGS    (I386_PKRU_REGNUM + 1)
 
 /* Size of the largest register.  */
 #define I386_MAX_REGISTER_SIZE 64
 
-extern struct target_desc *tdesc_i386;
-
 /* Types for i386-specific registers.  */
 extern struct type *i387_ext_type (struct gdbarch *gdbarch);
 
@@ -345,6 +354,7 @@ extern int i386_bnd_regnum_p (struct gdbarch *gdbarch, int regnum);
 extern int i386_k_regnum_p (struct gdbarch *gdbarch, int regnum);
 extern int i386_zmm_regnum_p (struct gdbarch *gdbarch, int regnum);
 extern int i386_zmmh_regnum_p (struct gdbarch *gdbarch, int regnum);
+extern bool i386_pkru_regnum_p (struct gdbarch *gdbarch, int regnum);
 
 extern const char *i386_pseudo_register_name (struct gdbarch *gdbarch,
                                              int regnum);
@@ -360,6 +370,10 @@ extern void i386_pseudo_register_write (struct gdbarch *gdbarch,
                                        struct regcache *regcache,
                                        int regnum, const gdb_byte *buf);
 
+extern int i386_ax_pseudo_register_collect (struct gdbarch *gdbarch,
+                                           struct agent_expr *ax,
+                                           int regnum);
+
 /* Segment selectors.  */
 #define I386_SEL_RPL   0x0003  /* Requester's Privilege Level mask.  */
 #define I386_SEL_UPL   0x0003  /* User Privilige Level.  */
@@ -416,13 +430,19 @@ extern void i386_elf_init_abi (struct gdbarch_info, struct gdbarch *);
 /* Initialize a SVR4 architecture variant.  */
 extern void i386_svr4_init_abi (struct gdbarch_info, struct gdbarch *);
 
+/* Convert SVR4 register number REG to the appropriate register number
+   used by GDB.  */
+extern int i386_svr4_reg_to_regnum (struct gdbarch *gdbarch, int reg);
+
 extern int i386_process_record (struct gdbarch *gdbarch,
                                 struct regcache *regcache, CORE_ADDR addr);
 extern const struct target_desc *i386_target_description (uint64_t xcr0);
 
+/* Return true iff the current target is MPX enabled.  */
+extern int i386_mpx_enabled (void);
 \f
 
-/* Functions and variables exported from i386bsd-tdep.c.  */
+/* Functions and variables exported from i386-bsd-tdep.c.  */
 
 extern void i386bsd_init_abi (struct gdbarch_info, struct gdbarch *);
 extern CORE_ADDR i386fbsd_sigtramp_start_addr;
This page took 0.024005 seconds and 4 git commands to generate.