| Index: gdb/go32-nat.c
|
| diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c
|
| index b8fe284026169fa810a51cc2235f7d2bdeb3d2a7..c1172f6f0c51c7ee052849ce5595b00c0de7ed04 100644
|
| --- a/gdb/go32-nat.c
|
| +++ b/gdb/go32-nat.c
|
| @@ -1,6 +1,5 @@
|
| /* Native debugging support for Intel x86 running DJGPP.
|
| - Copyright (C) 1997, 1999-2001, 2005-2012 Free Software Foundation,
|
| - Inc.
|
| + Copyright (C) 1997-2013 Free Software Foundation, Inc.
|
| Written by Robert Hoehne.
|
|
|
| This file is part of GDB.
|
| @@ -82,9 +81,10 @@
|
| GDB does not use those as of this writing, and will never need
|
| to. */
|
|
|
| +#include "defs.h"
|
| +
|
| #include <fcntl.h>
|
|
|
| -#include "defs.h"
|
| #include "i386-nat.h"
|
| #include "inferior.h"
|
| #include "gdbthread.h"
|
| @@ -96,10 +96,12 @@
|
| #include "buildsym.h"
|
| #include "i387-tdep.h"
|
| #include "i386-tdep.h"
|
| +#include "i386-cpuid.h"
|
| #include "value.h"
|
| #include "regcache.h"
|
| -#include "gdb_string.h"
|
| +#include <string.h>
|
| #include "top.h"
|
| +#include "cli/cli-utils.h"
|
|
|
| #include <stdio.h> /* might be required for __DJGPP_MINOR__ */
|
| #include <stdlib.h>
|
| @@ -233,7 +235,7 @@ static int dr_ref_count[4];
|
|
|
| static int prog_has_started = 0;
|
| static void go32_open (char *name, int from_tty);
|
| -static void go32_close (int quitting);
|
| +static void go32_close (void);
|
| static void go32_attach (struct target_ops *ops, char *args, int from_tty);
|
| static void go32_detach (struct target_ops *ops, char *args, int from_tty);
|
| static void go32_resume (struct target_ops *ops,
|
| @@ -369,7 +371,7 @@ go32_open (char *name, int from_tty)
|
| }
|
|
|
| static void
|
| -go32_close (int quitting)
|
| +go32_close (void)
|
| {
|
| }
|
|
|
| @@ -382,7 +384,7 @@ Use the `run' command to run DJGPP programs."));
|
| }
|
|
|
| static void
|
| -go32_detach (struct target_ops *ops, char *args, int from_tty)
|
| +go32_detach (struct target_ops *ops, const char *args, int from_tty)
|
| {
|
| }
|
|
|
| @@ -875,7 +877,7 @@ go32_terminal_init (void)
|
| }
|
|
|
| static void
|
| -go32_terminal_info (char *args, int from_tty)
|
| +go32_terminal_info (const char *args, int from_tty)
|
| {
|
| printf_unfiltered ("Inferior's terminal is in %s mode.\n",
|
| !inf_mode_valid
|
| @@ -1026,9 +1028,6 @@ init_go32_ops (void)
|
|
|
| /* We are always processing GCC-compiled programs. */
|
| processing_gcc_compilation = 2;
|
| -
|
| - /* Override the default name of the GDB init file. */
|
| - strcpy (gdbinit, "gdb.ini");
|
| }
|
|
|
| /* Return the current DOS codepage number. */
|
| @@ -1140,6 +1139,21 @@ go32_sysinfo (char *arg, int from_tty)
|
| else if (u.machine[0] == 'i' && u.machine[1] > 4)
|
| {
|
| /* CPUID with EAX = 0 returns the Vendor ID. */
|
| +#if 0
|
| + /* Ideally we would use i386_cpuid(), but it needs someone to run
|
| + native tests first to make sure things actually work. They should.
|
| + http://sourceware.org/ml/gdb-patches/2013-05/msg00164.html */
|
| + unsigned int eax, ebx, ecx, edx;
|
| +
|
| + if (i386_cpuid (0, &eax, &ebx, &ecx, &edx))
|
| + {
|
| + cpuid_max = eax;
|
| + memcpy (&vendor[0], &ebx, 4);
|
| + memcpy (&vendor[4], &ecx, 4);
|
| + memcpy (&vendor[8], &edx, 4);
|
| + cpuid_vendor[12] = '\0';
|
| + }
|
| +#else
|
| __asm__ __volatile__ ("xorl %%ebx, %%ebx;"
|
| "xorl %%ecx, %%ecx;"
|
| "xorl %%edx, %%edx;"
|
| @@ -1156,6 +1170,7 @@ go32_sysinfo (char *arg, int from_tty)
|
| :
|
| : "%eax", "%ebx", "%ecx", "%edx");
|
| cpuid_vendor[12] = '\0';
|
| +#endif
|
| }
|
|
|
| printf_filtered ("CPU Type.......................%s", u.machine);
|
| @@ -1181,6 +1196,10 @@ go32_sysinfo (char *arg, int from_tty)
|
| int amd_p = strcmp (cpuid_vendor, "AuthenticAMD") == 0;
|
| unsigned cpu_family, cpu_model;
|
|
|
| +#if 0
|
| + /* See comment above about cpuid usage. */
|
| + i386_cpuid (1, &cpuid_eax, &cpuid_ebx, NULL, &cpuid_edx);
|
| +#else
|
| __asm__ __volatile__ ("movl $1, %%eax;"
|
| "cpuid;"
|
| : "=a" (cpuid_eax),
|
| @@ -1188,6 +1207,7 @@ go32_sysinfo (char *arg, int from_tty)
|
| "=d" (cpuid_edx)
|
| :
|
| : "%ecx");
|
| +#endif
|
| brand_idx = cpuid_ebx & 0xff;
|
| cpu_family = (cpuid_eax >> 8) & 0xf;
|
| cpu_model = (cpuid_eax >> 4) & 0xf;
|
| @@ -1272,9 +1292,9 @@ go32_sysinfo (char *arg, int from_tty)
|
| break;
|
| }
|
| }
|
| - sprintf (cpu_string, "%s%s Model %d Stepping %d",
|
| - intel_p ? "Pentium" : (amd_p ? "AMD" : "ix86"),
|
| - cpu_brand, cpu_model, cpuid_eax & 0xf);
|
| + xsnprintf (cpu_string, sizeof (cpu_string), "%s%s Model %d Stepping %d",
|
| + intel_p ? "Pentium" : (amd_p ? "AMD" : "ix86"),
|
| + cpu_brand, cpu_model, cpuid_eax & 0xf);
|
| printfi_filtered (31, "%s\n", cpu_string);
|
| if (((cpuid_edx & (6 | (0x0d << 23))) != 0)
|
| || ((cpuid_edx & 1) == 0)
|
| @@ -1702,8 +1722,7 @@ go32_sldt (char *arg, int from_tty)
|
|
|
| if (arg && *arg)
|
| {
|
| - while (*arg && isspace(*arg))
|
| - arg++;
|
| + arg = skip_spaces (arg);
|
|
|
| if (*arg)
|
| {
|
| @@ -1773,8 +1792,7 @@ go32_sgdt (char *arg, int from_tty)
|
|
|
| if (arg && *arg)
|
| {
|
| - while (*arg && isspace(*arg))
|
| - arg++;
|
| + arg = skip_spaces (arg);
|
|
|
| if (*arg)
|
| {
|
| @@ -1815,8 +1833,7 @@ go32_sidt (char *arg, int from_tty)
|
|
|
| if (arg && *arg)
|
| {
|
| - while (*arg && isspace(*arg))
|
| - arg++;
|
| + arg = skip_spaces (arg);
|
|
|
| if (*arg)
|
| {
|
| @@ -1986,8 +2003,7 @@ go32_pde (char *arg, int from_tty)
|
|
|
| if (arg && *arg)
|
| {
|
| - while (*arg && isspace(*arg))
|
| - arg++;
|
| + arg = skip_spaces (arg);
|
|
|
| if (*arg)
|
| {
|
| @@ -2037,8 +2053,7 @@ go32_pte (char *arg, int from_tty)
|
|
|
| if (arg && *arg)
|
| {
|
| - while (*arg && isspace(*arg))
|
| - arg++;
|
| + arg = skip_spaces (arg);
|
|
|
| if (*arg)
|
| {
|
| @@ -2065,8 +2080,7 @@ go32_pte_for_address (char *arg, int from_tty)
|
|
|
| if (arg && *arg)
|
| {
|
| - while (*arg && isspace(*arg))
|
| - arg++;
|
| + arg = skip_spaces (arg);
|
|
|
| if (*arg)
|
| addr = parse_and_eval_address (arg);
|
| @@ -2097,6 +2111,9 @@ go32_info_dos_command (char *args, int from_tty)
|
| help_list (info_dos_cmdlist, "info dos ", class_info, gdb_stdout);
|
| }
|
|
|
| +/* -Wmissing-prototypes */
|
| +extern initialize_file_ftype _initialize_go32_nat;
|
| +
|
| void
|
| _initialize_go32_nat (void)
|
| {
|
|
|