X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fserial.h;h=ecb357706e92509735be166e1cfd6eef59bee1ff;hb=3c0ee1a46468d89b8865cd70616af4558c499b16;hp=1f0accd4a7ce59fc6244538f80ffc65202eff564;hpb=6aba47ca06d9150c6196a374b745c2711b46e045;p=deliverable%2Fbinutils-gdb.git
diff --git a/gdb/serial.h b/gdb/serial.h
index 1f0accd4a7..ecb357706e 100644
--- a/gdb/serial.h
+++ b/gdb/serial.h
@@ -1,12 +1,12 @@
/* Remote serial support interface definitions for GDB, the GNU Debugger.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2004,
- 2005, 2006, 2007 Free Software Foundation, Inc.
+ 2005, 2006, 2007, 2008, 2009, 2010 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 2 of the License, or
+ 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,
@@ -15,14 +15,13 @@
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, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ along with this program. If not, see . */
#ifndef SERIAL_H
#define SERIAL_H
#ifdef USE_WIN32API
+#include
#include
#endif
@@ -191,6 +190,11 @@ extern int serial_debug_p (struct serial *scb);
struct serial
{
int fd; /* File descriptor */
+ /* File descriptor for a separate error stream that should be
+ immediately forwarded to gdb_stderr. This may be -1.
+ If != -1, this descriptor should be non-blocking or
+ ops->avail should be non-NULL. */
+ int error_fd;
struct serial_ops *ops; /* Function vector */
void *state; /* Local context info for open FD */
serial_ttystate ttystate; /* Not used (yet) */
@@ -241,11 +245,16 @@ struct serial_ops
interesting. */
void (*async) (struct serial *scb, int async_p);
/* Perform a low-level read operation, reading (at most) COUNT
- bytes into SCB->BUF. */
+ bytes into SCB->BUF. Return zero at end of file. */
int (*read_prim)(struct serial *scb, size_t count);
/* Perform a low-level write operation, writing (at most) COUNT
bytes from BUF. */
int (*write_prim)(struct serial *scb, const void *buf, size_t count);
+ /* Return that number of bytes that can be read from FD
+ without blocking. Return value of -1 means that the
+ the read will not block even if less that requested bytes
+ are available. */
+ int (*avail)(struct serial *scb, int fd);
#ifdef USE_WIN32API
/* Return a handle to wait on, indicating available data from SCB