gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / serial.h
index f4ab31eb1838843122d799b7d5f5abb3068302e0..8d67c4bf537a94e46d0dc2267baf0682d1980add 100644 (file)
@@ -1,5 +1,5 @@
 /* Remote serial support interface definitions for GDB, the GNU Debugger.
-   Copyright (C) 1992-2014 Free Software Foundation, Inc.
+   Copyright (C) 1992-2020 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,6 +34,9 @@ struct ui_file;
 
 typedef void *serial_ttystate;
 struct serial;
+struct serial_ops;
+
+/* Create a new serial for OPS.  The new serial is not opened.  */
 
 /* Try to open NAME.  Returns a new `struct serial *' on success, NULL
    on failure.  The new serial object has a reference count of 1.
@@ -44,6 +47,10 @@ struct serial;
 
 extern struct serial *serial_open (const char *name);
 
+/* Open a new serial stream using OPS.  */
+
+extern struct serial *serial_open_ops (const struct serial_ops *ops);
+
 /* Returns true if SCB is open.  */
 
 extern int serial_is_open (struct serial *scb);
@@ -68,8 +75,8 @@ extern void serial_ref (struct serial *scb);
 
 extern void serial_unref (struct serial *scb);
 
-/* Create a pipe, and put the read end in files[0], and the write end
-   in filde[1].  Returns 0 for success, negative value for error (in
+/* Create a pipe, and put the read end in FILDES[0], and the write end
+   in FILDES[1].  Returns 0 for success, negative value for error (in
    which case errno contains the error).  */
 
 extern int gdb_pipe (int fildes[2]);
@@ -162,16 +169,6 @@ extern void serial_print_tty_state (struct serial *scb,
                                    serial_ttystate ttystate,
                                    struct ui_file *);
 
-/* Set the tty state to NEW_TTYSTATE, where OLD_TTYSTATE is the
-   current state (generally obtained from a recent call to
-   serial_get_tty_state()), but be careful not to discard any input.
-   This means that we never switch in or out of raw mode, even if
-   NEW_TTYSTATE specifies a switch.  */
-
-extern int serial_noflush_set_tty_state (struct serial *scb,
-                                        serial_ttystate new_ttystate,
-                                        serial_ttystate old_ttystate);
-
 /* Set the baudrate to the decimal value supplied.  Returns 0 for
    success, -1 for failure.  */
 
@@ -186,6 +183,14 @@ extern int serial_setbaudrate (struct serial *scb, int rate);
 
 extern int serial_setstopbits (struct serial *scb, int num);
 
+#define GDBPARITY_NONE     0
+#define GDBPARITY_ODD      1
+#define GDBPARITY_EVEN     2
+
+/* Set parity for serial port. Returns 0 for success, -1 for failure.  */
+
+extern int serial_setparity (struct serial *scb, int parity);
+
 /* Asynchronous serial interface: */
 
 /* Can the serial device support asynchronous mode?  */
@@ -235,11 +240,6 @@ struct serial
                                   buffer.  -ve for sticky errors.  */
     unsigned char *bufp;       /* Current byte */
     unsigned char buf[BUFSIZ]; /* Da buffer itself */
-    int current_timeout;       /* (ser-unix.c termio{,s} only), last
-                                  value of VTIME */
-    int timeout_remaining;     /* (ser-unix.c termio{,s} only), we
-                                  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.  */
@@ -250,7 +250,7 @@ struct serial
 
 struct serial_ops
   {
-    char *name;
+    const char *name;
     int (*open) (struct serial *, const char *name);
     void (*close) (struct serial *);
     int (*fdopen) (struct serial *, int fd);
@@ -267,10 +267,11 @@ struct serial_ops
     int (*set_tty_state) (struct serial *, serial_ttystate);
     void (*print_tty_state) (struct serial *, serial_ttystate,
                             struct ui_file *);
-    int (*noflush_set_tty_state) (struct serial *, serial_ttystate,
-                                 serial_ttystate);
     int (*setbaudrate) (struct serial *, int rate);
     int (*setstopbits) (struct serial *, int num);
+    /* Set the value PARITY as parity setting for serial object.
+       Return 0 in the case of success.  */
+    int (*setparity) (struct serial *, int parity);
     /* Wait for output to drain.  */
     int (*drain_output) (struct serial *);
     /* Change the serial device into/out of asynchronous mode, call
This page took 0.025389 seconds and 4 git commands to generate.