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