From 567bc1952033cdcfbad781cd391b530a0fd5e896 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 13 Apr 2010 20:58:54 +0000 Subject: sim: dv-sockser: pass up connected state A few ports rely on internal dv-sockser state in order to detect whether a connection has been made (look for 'extern sockser_addr'). Rather than continuing that tradition, extend the existing status function to return the socket connection status. Signed-off-by: Mike Frysinger --- sim/common/ChangeLog | 6 ++++++ sim/common/dv-sockser.c | 3 ++- sim/common/dv-sockser.h | 5 +++-- 3 files changed, 11 insertions(+), 3 deletions(-) (limited to 'sim') diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 2a386d700a3..eb585192bf8 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,9 @@ +2010-04-13 Mike Frysinger + + * dv-sockser.h (DV_SOCKSER_DISCONNECTED): Define. + * dv-sockser.c (dv_sockser_status): Set DV_SOCKSER_DISCONNECTED + initially. + 2010-04-13 Mike Frysinger * sim-hrw.c (sim_write): Add const to buf arg. diff --git a/sim/common/dv-sockser.c b/sim/common/dv-sockser.c index 1e530e2eb0f..a8626cda523 100644 --- a/sim/common/dv-sockser.c +++ b/sim/common/dv-sockser.c @@ -298,7 +298,8 @@ dv_sockser_status (SIM_DESC sd) fd_set readfds,writefds; /* status to return if the socket isn't set up, or select fails */ - status = DV_SOCKSER_INPUT_EMPTY | DV_SOCKSER_OUTPUT_EMPTY; + status = DV_SOCKSER_INPUT_EMPTY | DV_SOCKSER_OUTPUT_EMPTY | + DV_SOCKSER_DISCONNECTED; if (! connected_p (sd)) return status; diff --git a/sim/common/dv-sockser.h b/sim/common/dv-sockser.h index fc21b55aaa1..209cf463146 100644 --- a/sim/common/dv-sockser.h +++ b/sim/common/dv-sockser.h @@ -20,8 +20,9 @@ along with this program. If not, see . */ #define DV_SOCKSER_H /* bits in result of dev_sockser_status */ -#define DV_SOCKSER_INPUT_EMPTY 1 -#define DV_SOCKSER_OUTPUT_EMPTY 2 +#define DV_SOCKSER_INPUT_EMPTY 0x1 +#define DV_SOCKSER_OUTPUT_EMPTY 0x2 +#define DV_SOCKSER_DISCONNECTED 0x4 /* FIXME: later add a device ptr arg */ extern int dv_sockser_status (SIM_DESC); -- cgit v1.2.1