From 4febd10272e10062f09c8456dacd8cfe970579d8 Mon Sep 17 00:00:00 2001 From: Stu Grossman Date: Fri, 9 Apr 1993 22:14:04 +0000 Subject: * remote.c (remote_open): Use SERIAL_OPEN instead of serial_open. (putpkt, getpkt): Use new return codes for SERIAL_READCHAR. * ser-go32.c: Return -1 on most failures, 0 on most successes, and use new return codes for go32_readchar(). * ser-unix.c: Ditto. Also, move error handling up to caller for SERIAL_SETBAUDRATE(). * serial.c (serial_open): Internal call, not SERIAL_OPEN to get to specific routine. (serial_close): New routine to wrap around device close routine. serial.h: Clean & document return values more clearly. --- gdb/serial.h | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) (limited to 'gdb/serial.h') diff --git a/gdb/serial.h b/gdb/serial.h index 767a91b..1fbd488 100644 --- a/gdb/serial.h +++ b/gdb/serial.h @@ -49,38 +49,47 @@ struct serial_ops { void serial_add_interface PARAMS ((struct serial_ops *optable)); -/* Try to open the serial device "name", returns a serial_t if ok, NULL if not. - */ - serial_t serial_open PARAMS ((const char *name)); -/* Internal open routine for specific I/O interface */ +/* For most routines, if a failure is indicated, then errno should be + examined. */ + +/* Try to open NAME. Returns a new serial_t on success, NULL on failure. + */ -#define SERIAL_OPEN(SERIAL_T, NAME) (SERIAL_T)->ops->open((SERIAL_T), NAME) +#define SERIAL_OPEN(NAME) serial_open(NAME) -/* Turn the port into raw mode. */ +/* Turn the port into raw mode. */ #define SERIAL_RAW(SERIAL_T) (SERIAL_T)->ops->go_raw((SERIAL_T)) -/* Read one char from the serial device with -second timeout. - Returns char if ok, else EOF, -2 for timeout, -3 for anything else */ +/* Read one char from the serial device with TIMEOUT seconds timeout. + Returns char if ok, else one of the following codes. Note that all + error codes are guaranteed to be < 0. */ + +#define SERIAL_ERROR -1 /* General error, see errno for details */ +#define SERIAL_TIMEOUT -2 +#define SERIAL_EOF -3 #define SERIAL_READCHAR(SERIAL_T, TIMEOUT) ((SERIAL_T)->ops->readchar((SERIAL_T), TIMEOUT)) -/* Set the baudrate to the decimal value supplied. Return 1 on failure, - 0 otherwise. */ +/* Set the baudrate to the decimal value supplied. Returns 0 for success, + -1 for failure. */ #define SERIAL_SETBAUDRATE(SERIAL_T, RATE) ((SERIAL_T)->ops->setbaudrate((SERIAL_T), RATE)) -/* Write some chars to the device, returns 0 for failure. See errno for - details. */ +/* Write LEN chars from STRING to the port SERIAL_T. Returns 0 for success, + -1 for failure. */ #define SERIAL_WRITE(SERIAL_T, STRING, LEN) ((SERIAL_T)->ops->write((SERIAL_T), STRING, LEN)) -/* Close the serial port */ +/* Push out all buffers, close the device and destroy SERIAL_T. */ + +void serial_close PARAMS ((serial_t)); -#define SERIAL_CLOSE(SERIAL_T) (SERIAL_T)->ops->close((SERIAL_T)) +#define SERIAL_CLOSE(SERIAL_T) serial_close(SERIAL_T) -/* Restore the serial port to the state saved in oldstate */ +/* Restore the serial port to the state saved in oldstate. XXX - currently + unused! */ #define SERIAL_RESTORE(SERIAL_T) (SERIAL_T)->ops->restore((SERIAL_T)) -- cgit v1.1