50 #define i386_num_regs 16 82 const unsigned char *buf)
116 #include <ust/processor.h> 123 #define ST_REGENTRY(REG) \ 125 offsetof (struct registers, REG), \ 126 sizeof (((struct registers *) NULL)->REG) \ 133 } i386_st_collect_regmap[] =
149 #define i386_NUM_ST_COLLECT_GREGS \ 150 (sizeof (i386_st_collect_regmap) / sizeof (i386_st_collect_regmap[0])) 154 const unsigned char *buf,
158 unsigned int newpc = pc;
162 for (i = 0; i < i386_NUM_ST_COLLECT_GREGS; i++)
163 if (i386_st_collect_regmap[i].
offset != -1)
165 switch (i386_st_collect_regmap[i].size)
170 + i386_st_collect_regmap[i].
offset);
175 = * (
short *) (((
char *) buf)
176 + i386_st_collect_regmap[i].offset);
182 internal_error (__FILE__, __LINE__,
"unhandled register size: %d",
183 i386_st_collect_regmap[i].size);
204 const int min_buffer_size = 1024;
206 CORE_ADDR mmap_min_addr = buffer_end + 1;
208 FILE *f = fopen (
"/proc/sys/vm/mmap_min_addr",
"r");
212 snprintf (buf,
sizeof (buf),
"mmap_min_addr open failed: %s",
214 set_trampoline_buffer_space (0, 0, buf);
219 sscanf (buf,
"%llu", &mmap_min_addr);
223 buffer_size = buffer_end - mmap_min_addr;
225 if (buffer_size >= min_buffer_size)
227 if (mmap ((
void *) (uintptr_t) mmap_min_addr, buffer_size,
228 PROT_READ | PROT_EXEC | PROT_WRITE,
229 MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS,
232 set_trampoline_buffer_space (mmap_min_addr, buffer_end, NULL);
235 snprintf (buf,
IPA_BUFSIZ,
"low-64K-buffer mmap() failed: %s",
237 set_trampoline_buffer_space (0, 0, buf);
242 snprintf (buf,
IPA_BUFSIZ,
"mmap_min_addr is %d, must be %d or less",
243 (
int) mmap_min_addr, (
int) buffer_end - min_buffer_size);
244 set_trampoline_buffer_space (0, 0, buf);
268 "unknown ipa tdesc index: %d", idx);
279 void *res = mmap (NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC,
280 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
282 if (res == MAP_FAILED)
#define X86_XSTATE_AVX_MASK
#define X86_XSTATE_SSE_MASK
const struct target_desc * i386_linux_read_description(uint64_t xcr0)
#define X86_XSTATE_MPX_MASK
void supply_fast_tracepoint_registers(struct regcache *regcache, const unsigned char *buf)
void internal_error(const char *file, int line, const char *fmt,...)
static const int i386_ft_collect_regmap[]
const char * gdbserver_xmltarget
#define X86_XSTATE_AVX_AVX512_MASK
void * alloc_jump_pad_buffer(size_t size)
#define X86_XSTATE_X87_MASK
void initialize_low_tracepoint(void)
static uint64_t idx2mask[X86_TDESC_LAST]
const struct target_desc * get_ipa_tdesc(int idx)
unsigned long long ULONGEST
ULONGEST get_raw_reg(const unsigned char *raw_regs, int regnum)
#define X86_XSTATE_AVX_MPX_MASK
static void initialize_fast_tracepoint_trampoline_buffer(void)
void supply_register(struct regcache *regcache, int n, const void *buf)
#define X86_XSTATE_AVX_MPX_AVX512_PKU_MASK