/* Remote serial support interface definitions for GDB, the GNU Debugger.
- Copyright (C) 1992-1996, 1998-2001, 2004-2012 Free Software
- Foundation, Inc.
+ Copyright (C) 1992-2014 Free Software Foundation, Inc.
This file is part of GDB.
extern int serial_readchar (struct serial *scb, int timeout);
-/* Write LEN chars from STRING to the port SCB. Returns 0 for
+/* Write COUNT bytes from BUF to the port SCB. Returns 0 for
success, non-zero for failure. */
-extern int serial_write (struct serial *scb, const char *str, int len);
+extern int serial_write (struct serial *scb, const void *buf, size_t count);
/* Write a printf style string onto the serial port. */
extern void serial_async (struct serial *scb,
serial_event_ftype *handler, void *context);
-/* Provide direct access to the underlying FD (if any) used to
- implement the serial device. This interface is clearly
- deprecated. Will call internal_error() if the operation isn't
- applicable to the current serial device. */
-
-extern int deprecated_serial_fd (struct serial *scb);
-
/* Trace/debug mechanism.
serial_debug() enables/disables internal debugging.
If != -1, this descriptor should be non-blocking or
ops->avail should be non-NULL. */
int error_fd;
- struct serial_ops *ops; /* Function vector */
+ const struct serial_ops *ops; /* Function vector */
void *state; /* Local context info for open FD */
serial_ttystate ttystate; /* Not used (yet) */
int bufcnt; /* Amount of data remaining in receive
still need to wait for this many
more seconds. */
char *name; /* The name of the device or host */
+ struct serial *next; /* Pointer to the next `struct serial *' */
int debug_p; /* Trace this serial devices operation. */
int async_state; /* Async internal state. */
void *async_context; /* Async event thread's context */
struct serial_ops
{
char *name;
- struct serial_ops *next;
int (*open) (struct serial *, const char *name);
void (*close) (struct serial *);
int (*fdopen) (struct serial *, int fd);
int (*readchar) (struct serial *, int timeout);
- int (*write) (struct serial *, const char *str, int len);
+ int (*write) (struct serial *, const void *buf, size_t count);
/* Discard pending output */
int (*flush_output) (struct serial *);
/* Discard pending input */
/* Add a new serial interface to the interface list. */
-extern void serial_add_interface (struct serial_ops * optable);
+extern void serial_add_interface (const struct serial_ops * optable);
/* File in which to record the remote debugging session. */
-extern void serial_log_command (const char *);
+extern void serial_log_command (struct target_ops *self, const char *);
#ifdef USE_WIN32API