mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-19 05:42:42 +08:00
* gdb_usleep.h, gdb_usleep.c: New files.
* Makefile.in (SFILES): Add gdb_usleep.c. (HFILES_NO_SRCDIR): Add gdb_usleep.h. (COMMON_OBS): Add gdb_usleep.o. * ser-unix.c (hardwire_send_break): Replace call to gdb_select by call to gdb_usleep.
This commit is contained in:
@ -1,3 +1,13 @@
|
|||||||
|
2009-03-23 Joel Brobecker <brobecker@adacore.com>
|
||||||
|
|
||||||
|
Add gdb_usleep as a portable version of sleep based on gdb_select.
|
||||||
|
* gdb_usleep.h, gdb_usleep.c: New files.
|
||||||
|
* Makefile.in (SFILES): Add gdb_usleep.c.
|
||||||
|
(HFILES_NO_SRCDIR): Add gdb_usleep.h.
|
||||||
|
(COMMON_OBS): Add gdb_usleep.o.
|
||||||
|
* ser-unix.c (hardwire_send_break): Replace call to gdb_select
|
||||||
|
by call to gdb_usleep.
|
||||||
|
|
||||||
2009-03-23 Joel Brobecker <brobecker@adacore.com>
|
2009-03-23 Joel Brobecker <brobecker@adacore.com>
|
||||||
|
|
||||||
* buildsym.c (end_symtab): If we ignore the subfiles, then
|
* buildsym.c (end_symtab): If we ignore the subfiles, then
|
||||||
|
@ -666,7 +666,7 @@ SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \
|
|||||||
valarith.c valops.c valprint.c value.c varobj.c vec.c \
|
valarith.c valops.c valprint.c value.c varobj.c vec.c \
|
||||||
wrapper.c \
|
wrapper.c \
|
||||||
xml-tdesc.c xml-support.c \
|
xml-tdesc.c xml-support.c \
|
||||||
inferior.c
|
inferior.c gdb_usleep.c
|
||||||
|
|
||||||
LINTFILES = $(SFILES) $(YYFILES) $(CONFIG_SRCS) init.c
|
LINTFILES = $(SFILES) $(YYFILES) $(CONFIG_SRCS) init.c
|
||||||
|
|
||||||
@ -736,7 +736,8 @@ config/sparc/nm-sol2.h config/nm-linux.h config/mips/nm-irix5.h \
|
|||||||
config/rs6000/nm-rs6000.h top.h bsd-kvm.h gdb-stabs.h reggroups.h \
|
config/rs6000/nm-rs6000.h top.h bsd-kvm.h gdb-stabs.h reggroups.h \
|
||||||
annotate.h sim-regno.h dictionary.h dfp.h main.h frame-unwind.h \
|
annotate.h sim-regno.h dictionary.h dfp.h main.h frame-unwind.h \
|
||||||
remote-fileio.h i386-linux-tdep.h vax-tdep.h objc-lang.h \
|
remote-fileio.h i386-linux-tdep.h vax-tdep.h objc-lang.h \
|
||||||
sentinel-frame.h bcache.h symfile.h windows-tdep.h linux-tdep.h
|
sentinel-frame.h bcache.h symfile.h windows-tdep.h linux-tdep.h \
|
||||||
|
gdb_usleep.h
|
||||||
|
|
||||||
# Header files that already have srcdir in them, or which are in objdir.
|
# Header files that already have srcdir in them, or which are in objdir.
|
||||||
|
|
||||||
@ -817,7 +818,7 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
|
|||||||
solib.o solib-null.o \
|
solib.o solib-null.o \
|
||||||
prologue-value.o memory-map.o xml-support.o \
|
prologue-value.o memory-map.o xml-support.o \
|
||||||
target-descriptions.o target-memory.o xml-tdesc.o xml-builtin.o \
|
target-descriptions.o target-memory.o xml-tdesc.o xml-builtin.o \
|
||||||
inferior.o osdata.o
|
inferior.o osdata.o gdb_usleep.o
|
||||||
|
|
||||||
TSOBS = inflow.o
|
TSOBS = inflow.o
|
||||||
|
|
||||||
|
41
gdb/gdb_usleep.c
Normal file
41
gdb/gdb_usleep.c
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/* Copyright (C) 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GDB.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#include "defs.h"
|
||||||
|
#include "gdb_usleep.h"
|
||||||
|
#include "gdb_select.h"
|
||||||
|
#include "gdb_usleep.h"
|
||||||
|
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
gdb_usleep (int usec)
|
||||||
|
{
|
||||||
|
struct timeval delay;
|
||||||
|
int retval;
|
||||||
|
|
||||||
|
delay.tv_sec = usec / 1000000;
|
||||||
|
delay.tv_usec = usec % 1000000;
|
||||||
|
retval = gdb_select (0, 0, 0, 0, &delay);
|
||||||
|
|
||||||
|
if (retval < 0)
|
||||||
|
retval = -1;
|
||||||
|
else
|
||||||
|
retval = 0;
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
30
gdb/gdb_usleep.h
Normal file
30
gdb/gdb_usleep.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
/* Copyright (C) 2009 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GDB.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#if !defined(GDB_USLEEP_H)
|
||||||
|
#define GDB_USLEEP_H
|
||||||
|
|
||||||
|
/* Suspend execution for USEC microseconds.
|
||||||
|
|
||||||
|
Limitation: If a signal is raised during the delay, gdb_usleep
|
||||||
|
might return earlier than requested.
|
||||||
|
|
||||||
|
It returns 0 on success or -1 on error. */
|
||||||
|
extern int gdb_usleep (int usect);
|
||||||
|
|
||||||
|
#endif /* !defined(GDB_USLEEP_H) */
|
||||||
|
|
@ -368,16 +368,13 @@ hardwire_send_break (struct serial *scb)
|
|||||||
#ifdef HAVE_SGTTY
|
#ifdef HAVE_SGTTY
|
||||||
{
|
{
|
||||||
int status;
|
int status;
|
||||||
struct timeval timeout;
|
|
||||||
|
|
||||||
status = ioctl (scb->fd, TIOCSBRK, 0);
|
status = ioctl (scb->fd, TIOCSBRK, 0);
|
||||||
|
|
||||||
/* Can't use usleep; it doesn't exist in BSD 4.2. */
|
/* Can't use usleep; it doesn't exist in BSD 4.2. */
|
||||||
/* Note that if this select() is interrupted by a signal it will not wait
|
/* Note that if this gdb_select() is interrupted by a signal it will not
|
||||||
the full length of time. I think that is OK. */
|
wait the full length of time. I think that is OK. */
|
||||||
timeout.tv_sec = 0;
|
gdb_usleep (250000);
|
||||||
timeout.tv_usec = 250000;
|
|
||||||
gdb_select (0, 0, 0, 0, &timeout);
|
|
||||||
status = ioctl (scb->fd, TIOCCBRK, 0);
|
status = ioctl (scb->fd, TIOCCBRK, 0);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user