* ser-tcp.c (ser_tcp_send_break): New function.
(_initialize_ser_tcp): Use ser_tcp_send_break.
* ser-tcp.h (ser_tcp_send_break): New prototype.
2008-09-03 Angela Marie Thomas <angela@releasedominatrix.com>
* gdb.texinfo (Interrupts): Mention TCP interface for
sending BREAK.
+2008-09-03 Angela Marie Thomas <angela@releasedominatrix.com>
+
+ * ser-tcp.c (ser_tcp_send_break): New function.
+ (_initialize_ser_tcp): Use ser_tcp_send_break.
+ * ser-tcp.h (ser_tcp_send_break): New prototype.
+
2008-09-03 Ulrich Weigand <uweigand@de.ibm.com>
* spu-tdep.c (spu_push_dummy_call): Update all stack pointer slots
2008-09-03 Ulrich Weigand <uweigand@de.ibm.com>
* spu-tdep.c (spu_push_dummy_call): Update all stack pointer slots
+2008-09-03 Angela Marie Thomas <angela@releasedominatrix.com>
+
+ * gdb.texinfo (Interrupts): Mention TCP interface for
+ sending BREAK.
+
2008-08-26 Ulrich Weigand <uweigand@de.ibm.com>
* gdb.texinfo (Commands to Specify Files): Document "remote:"
2008-08-26 Ulrich Weigand <uweigand@de.ibm.com>
* gdb.texinfo (Commands to Specify Files): Document "remote:"
setting (@pxref{set remotebreak}).
The precise meaning of @code{BREAK} is defined by the transport
setting (@pxref{set remotebreak}).
The precise meaning of @code{BREAK} is defined by the transport
-mechanism and may, in fact, be undefined. @value{GDBN} does
-not currently define a @code{BREAK} mechanism for any of the network
-interfaces.
+mechanism and may, in fact, be undefined. @value{GDBN} does not
+currently define a @code{BREAK} mechanism for any of the network
+interfaces except for TCP, in which case @value{GDBN} sends the
+@code{telnet} BREAK sequence.
@samp{Ctrl-C}, on the other hand, is defined and implemented for all
transport mechanisms. It is represented by sending the single byte
@samp{Ctrl-C}, on the other hand, is defined and implemented for all
transport mechanisms. It is represented by sending the single byte
ops->write = ser_base_write;
ops->flush_output = ser_base_flush_output;
ops->flush_input = ser_base_flush_input;
ops->write = ser_base_write;
ops->flush_output = ser_base_flush_output;
ops->flush_input = ser_base_flush_input;
- ops->send_break = ser_base_send_break;
+ ops->send_break = ser_tcp_send_break;
ops->go_raw = ser_base_raw;
ops->get_tty_state = ser_base_get_tty_state;
ops->set_tty_state = ser_base_set_tty_state;
ops->go_raw = ser_base_raw;
ops->get_tty_state = ser_base_get_tty_state;
ops->set_tty_state = ser_base_set_tty_state;
return send (scb->fd, buf, count, 0);
}
return send (scb->fd, buf, count, 0);
}
+int
+ser_tcp_send_break (struct serial *scb)
+{
+ /* Send telnet IAC and BREAK characters. */
+ return (serial_write (scb, "\377\363", 2));
+}
+
void
_initialize_ser_tcp (void)
{
void
_initialize_ser_tcp (void)
{
ops->write = ser_base_write;
ops->flush_output = ser_base_flush_output;
ops->flush_input = ser_base_flush_input;
ops->write = ser_base_write;
ops->flush_output = ser_base_flush_output;
ops->flush_input = ser_base_flush_input;
- ops->send_break = ser_base_send_break;
+ ops->send_break = ser_tcp_send_break;
ops->go_raw = ser_base_raw;
ops->get_tty_state = ser_base_get_tty_state;
ops->set_tty_state = ser_base_set_tty_state;
ops->go_raw = ser_base_raw;
ops->get_tty_state = ser_base_get_tty_state;
ops->set_tty_state = ser_base_set_tty_state;
extern void net_close (struct serial *scb);
extern int net_read_prim (struct serial *scb, size_t count);
extern int net_write_prim (struct serial *scb, const void *buf, size_t count);
extern void net_close (struct serial *scb);
extern int net_read_prim (struct serial *scb, size_t count);
extern int net_write_prim (struct serial *scb, const void *buf, size_t count);
+extern int ser_tcp_send_break (struct serial *scb);