OSDN Git Service

sim: dv-sockser: pass up connected state
authorvapier <vapier>
Wed, 14 Apr 2010 05:58:54 +0000 (05:58 +0000)
committervapier <vapier>
Wed, 14 Apr 2010 05:58:54 +0000 (05:58 +0000)
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 <vapier@gentoo.org>
sim/common/ChangeLog
sim/common/dv-sockser.c
sim/common/dv-sockser.h

index 2a386d7..eb58519 100644 (file)
@@ -1,5 +1,11 @@
 2010-04-13  Mike Frysinger  <vapier@gentoo.org>
 
+       * dv-sockser.h (DV_SOCKSER_DISCONNECTED): Define.
+       * dv-sockser.c (dv_sockser_status): Set DV_SOCKSER_DISCONNECTED
+       initially.
+
+2010-04-13  Mike Frysinger  <vapier@gentoo.org>
+
        * sim-hrw.c (sim_write): Add const to buf arg.
        * sim-utils.h (sim_write_fn): Likewise.
 
index 1e530e2..a8626cd 100644 (file)
@@ -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;
index fc21b55..209cf46 100644 (file)
@@ -20,8 +20,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #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);