diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2023-02-08 15:36:23 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2023-02-08 15:46:02 -0500 |
commit | c583a2520616c2736cffc389c89a48b159366e6c (patch) | |
tree | b4925f26506fcee96c16119431c01760f05db95d /gdbserver/linux-i386-ipa.cc | |
parent | ca7f92c2f15b86b09c4a8ad14806bef666308d31 (diff) | |
download | gdb-users/simark/clang-format.zip gdb-users/simark/clang-format.tar.gz gdb-users/simark/clang-format.tar.bz2 |
Run clang-format.shusers/simark/clang-format
Change-Id: Ia948cc26d534b0dd02702244d52434b1a2093968
Diffstat (limited to 'gdbserver/linux-i386-ipa.cc')
-rw-r--r-- | gdbserver/linux-i386-ipa.cc | 155 |
1 files changed, 70 insertions, 85 deletions
diff --git a/gdbserver/linux-i386-ipa.cc b/gdbserver/linux-i386-ipa.cc index 21e690e..b441dff 100644 --- a/gdbserver/linux-i386-ipa.cc +++ b/gdbserver/linux-i386-ipa.cc @@ -28,23 +28,23 @@ enum i386_gdb_regnum { - I386_EAX_REGNUM, /* %eax */ - I386_ECX_REGNUM, /* %ecx */ - I386_EDX_REGNUM, /* %edx */ - I386_EBX_REGNUM, /* %ebx */ - I386_ESP_REGNUM, /* %esp */ - I386_EBP_REGNUM, /* %ebp */ - I386_ESI_REGNUM, /* %esi */ - I386_EDI_REGNUM, /* %edi */ - I386_EIP_REGNUM, /* %eip */ - I386_EFLAGS_REGNUM, /* %eflags */ - I386_CS_REGNUM, /* %cs */ - I386_SS_REGNUM, /* %ss */ - I386_DS_REGNUM, /* %ds */ - I386_ES_REGNUM, /* %es */ - I386_FS_REGNUM, /* %fs */ - I386_GS_REGNUM, /* %gs */ - I386_ST0_REGNUM /* %st(0) */ + I386_EAX_REGNUM, /* %eax */ + I386_ECX_REGNUM, /* %ecx */ + I386_EDX_REGNUM, /* %edx */ + I386_EBX_REGNUM, /* %ebx */ + I386_ESP_REGNUM, /* %esp */ + I386_EBP_REGNUM, /* %ebp */ + I386_ESI_REGNUM, /* %esi */ + I386_EDI_REGNUM, /* %edi */ + I386_EIP_REGNUM, /* %eip */ + I386_EFLAGS_REGNUM, /* %eflags */ + I386_CS_REGNUM, /* %cs */ + I386_SS_REGNUM, /* %ss */ + I386_DS_REGNUM, /* %ds */ + I386_ES_REGNUM, /* %es */ + I386_FS_REGNUM, /* %fs */ + I386_GS_REGNUM, /* %gs */ + I386_ST0_REGNUM /* %st(0) */ }; #define i386_num_regs 16 @@ -69,17 +69,15 @@ enum i386_gdb_regnum /* Mapping between the general-purpose registers in jump tracepoint format and GDB's register array layout. */ -static const int i386_ft_collect_regmap[] = -{ - FT_CR_EAX * 4, FT_CR_ECX * 4, FT_CR_EDX * 4, FT_CR_EBX * 4, - FT_CR_UESP * 4, FT_CR_EBP * 4, FT_CR_ESI * 4, FT_CR_EDI * 4, - FT_CR_EIP * 4, FT_CR_EFL * 4, FT_CR_CS * 4, FT_CR_SS * 4, - FT_CR_DS * 4, FT_CR_ES * 4, FT_CR_FS * 4, FT_CR_GS * 4 -}; +static const int i386_ft_collect_regmap[] + = { FT_CR_EAX * 4, FT_CR_ECX * 4, FT_CR_EDX * 4, FT_CR_EBX * 4, + FT_CR_UESP * 4, FT_CR_EBP * 4, FT_CR_ESI * 4, FT_CR_EDI * 4, + FT_CR_EIP * 4, FT_CR_EFL * 4, FT_CR_CS * 4, FT_CR_SS * 4, + FT_CR_DS * 4, FT_CR_ES * 4, FT_CR_FS * 4, FT_CR_GS * 4 }; void supply_fast_tracepoint_registers (struct regcache *regcache, - const unsigned char *buf) + const unsigned char *buf) { int i; @@ -88,9 +86,9 @@ supply_fast_tracepoint_registers (struct regcache *regcache, int regval; if (i >= I386_CS_REGNUM && i <= I386_GS_REGNUM) - regval = *(short *) (((char *) buf) + i386_ft_collect_regmap[i]); + regval = *(short *) (((char *) buf) + i386_ft_collect_regmap[i]); else - regval = *(int *) (((char *) buf) + i386_ft_collect_regmap[i]); + regval = *(int *) (((char *) buf) + i386_ft_collect_regmap[i]); supply_register (regcache, i, ®val); } @@ -120,39 +118,29 @@ get_raw_reg (const unsigned char *raw_regs, int regnum) contain EIP, but we know what it must have been (the marker address). */ -#define ST_REGENTRY(REG) \ - { \ - offsetof (struct registers, REG), \ - sizeof (((struct registers *) NULL)->REG) \ +#define ST_REGENTRY(REG) \ + { \ + offsetof (struct registers, REG), \ + sizeof (((struct registers *) NULL)->REG) \ } static struct { int offset; int size; -} i386_st_collect_regmap[] = - { - ST_REGENTRY(eax), - ST_REGENTRY(ecx), - ST_REGENTRY(edx), - ST_REGENTRY(ebx), - ST_REGENTRY(esp), - ST_REGENTRY(ebp), - ST_REGENTRY(esi), - ST_REGENTRY(edi), - { -1, 0 }, /* eip */ - ST_REGENTRY(eflags), - ST_REGENTRY(cs), - ST_REGENTRY(ss), - }; +} i386_st_collect_regmap[] = { + ST_REGENTRY (eax), ST_REGENTRY (ecx), ST_REGENTRY (edx), + ST_REGENTRY (ebx), ST_REGENTRY (esp), ST_REGENTRY (ebp), + ST_REGENTRY (esi), ST_REGENTRY (edi), { -1, 0 }, /* eip */ + ST_REGENTRY (eflags), ST_REGENTRY (cs), ST_REGENTRY (ss), +}; #define i386_NUM_ST_COLLECT_GREGS \ (sizeof (i386_st_collect_regmap) / sizeof (i386_st_collect_regmap[0])) void supply_static_tracepoint_registers (struct regcache *regcache, - const unsigned char *buf, - CORE_ADDR pc) + const unsigned char *buf, CORE_ADDR pc) { int i; unsigned int newpc = pc; @@ -162,32 +150,30 @@ supply_static_tracepoint_registers (struct regcache *regcache, for (i = 0; i < i386_NUM_ST_COLLECT_GREGS; i++) if (i386_st_collect_regmap[i].offset != -1) { - switch (i386_st_collect_regmap[i].size) - { - case 4: - supply_register (regcache, i, - ((char *) buf) - + i386_st_collect_regmap[i].offset); - break; - case 2: - { - unsigned long reg - = * (short *) (((char *) buf) - + i386_st_collect_regmap[i].offset); - reg &= 0xffff; - supply_register (regcache, i, ®); - } - break; - default: - internal_error ("unhandled register size: %d", - i386_st_collect_regmap[i].size); - } + switch (i386_st_collect_regmap[i].size) + { + case 4: + supply_register (regcache, i, + ((char *) buf) + + i386_st_collect_regmap[i].offset); + break; + case 2: + { + unsigned long reg = *( + short *) (((char *) buf) + i386_st_collect_regmap[i].offset); + reg &= 0xffff; + supply_register (regcache, i, ®); + } + break; + default: + internal_error ("unhandled register size: %d", + i386_st_collect_regmap[i].size); + } } } #endif /* HAVE_UST */ - /* This is only needed because reg-i386-linux-lib.o references it. We may use it proper at some point. */ const char *gdbserver_xmltarget; @@ -208,39 +194,38 @@ initialize_fast_tracepoint_trampoline_buffer (void) FILE *f = fopen ("/proc/sys/vm/mmap_min_addr", "r"); if (!f) - { + { snprintf (buf, sizeof (buf), "mmap_min_addr open failed: %s", - safe_strerror (errno)); + safe_strerror (errno)); set_trampoline_buffer_space (0, 0, buf); return; } if (fgets (buf, IPA_BUFSIZ, f)) sscanf (buf, "%llu", &mmap_min_addr); - + fclose (f); - + buffer_size = buffer_end - mmap_min_addr; if (buffer_size >= min_buffer_size) { if (mmap ((void *) (uintptr_t) mmap_min_addr, buffer_size, - PROT_READ | PROT_EXEC | PROT_WRITE, - MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, - -1, 0) - != MAP_FAILED) - set_trampoline_buffer_space (mmap_min_addr, buffer_end, NULL); + PROT_READ | PROT_EXEC | PROT_WRITE, + MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0) + != MAP_FAILED) + set_trampoline_buffer_space (mmap_min_addr, buffer_end, NULL); else - { - snprintf (buf, IPA_BUFSIZ, "low-64K-buffer mmap() failed: %s", - safe_strerror (errno)); - set_trampoline_buffer_space (0, 0, buf); - } + { + snprintf (buf, IPA_BUFSIZ, "low-64K-buffer mmap() failed: %s", + safe_strerror (errno)); + set_trampoline_buffer_space (0, 0, buf); + } } else { snprintf (buf, IPA_BUFSIZ, "mmap_min_addr is %d, must be %d or less", - (int) mmap_min_addr, (int) buffer_end - min_buffer_size); + (int) mmap_min_addr, (int) buffer_end - min_buffer_size); set_trampoline_buffer_space (0, 0, buf); } } @@ -276,7 +261,7 @@ void * alloc_jump_pad_buffer (size_t size) { void *res = mmap (NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); if (res == MAP_FAILED) return NULL; |