diff options
author | Stu Grossman <grossman@cygnus> | 1993-04-09 22:14:04 +0000 |
---|---|---|
committer | Stu Grossman <grossman@cygnus> | 1993-04-09 22:14:04 +0000 |
commit | 4febd10272e10062f09c8456dacd8cfe970579d8 (patch) | |
tree | a62d659b1948b2e935868ae4eb45364eed913b66 /gdb/serial.h | |
parent | 6a42d1847267d8e1e0539a28528431617de0e70d (diff) | |
download | gdb-4febd10272e10062f09c8456dacd8cfe970579d8.zip gdb-4febd10272e10062f09c8456dacd8cfe970579d8.tar.gz gdb-4febd10272e10062f09c8456dacd8cfe970579d8.tar.bz2 |
* 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.
Diffstat (limited to 'gdb/serial.h')
-rw-r--r-- | gdb/serial.h | 39 |
1 files changed, 24 insertions, 15 deletions
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 <TO>-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)) |