]> Zhao Yanbai Git Server - minix.git/commitdiff
libsys: Support for senda_reload(). 86/3086/2
authorCristiano Giuffrida <giuffrida@cs.vu.nl>
Tue, 11 Mar 2014 20:11:32 +0000 (21:11 +0100)
committerDavid van Moolenbroek <david@minix3.org>
Wed, 16 Sep 2015 11:03:30 +0000 (11:03 +0000)
Change-Id: I67f94515d2b89199643195d32d92f1bef9770359

minix/include/minix/sysutil.h
minix/lib/libsys/asynsend.c

index 81a3c44923c115df9ecc70cbb383f7e9d7e52163..45a7560442aca97ead0fe6a44b52c090242a49e5 100644 (file)
@@ -83,6 +83,7 @@ int stime(time_t *_top);
 #define asynsend(ep, msg) asynsend3(ep, msg, 0)
 int asynsend3(endpoint_t ep, message *msg, int flags);
 int asyn_geterror(endpoint_t *dst, message *msg, int *err);
+int senda_reload(void);
 
 #define ASSERT(c) if(!(c)) { panic("%s:%d: assert %s failed", __FILE__, __LINE__, #c); }
 
index d6c19eecd8b656133fb9ab1c6748bec2d533838d..c3d8e6cf1f7a39887925b2e79fc97d06f9ea8193 100644 (file)
@@ -32,7 +32,7 @@ int fl;
   int i, r, src_ind, dst_ind;
   unsigned flags;
   static int inside = 0;
-  int len, needack = 0;
+  int needack = 0;
 
   /* Debug printf() causes asynchronous sends? */
   if (inside)  /* Panic will not work either then, so exit */
@@ -133,13 +133,25 @@ int fl;
                                                 */
   next_slot++;
 
+  /* Reload. */
+  inside = 0;
+  r = senda_reload();
+
+  return r;
+}
+
+/*===========================================================================*
+ *                             senda_reload                                 *
+ *===========================================================================*/
+int senda_reload()
+{
+  int len;
+
   assert(next_slot >= first_slot);
   len = next_slot - first_slot;
   assert(first_slot + len <= ASYN_NR);
   assert(len >= 0);
 
-  inside = 0;
-
   /* Tell the kernel to rescan the table */
   return ipc_senda(&msgtable[first_slot], len);
 }