commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hurd] 14/25: devnode: improve the demuxer function


From: Samuel Thibault
Subject: [hurd] 14/25: devnode: improve the demuxer function
Date: Tue, 27 May 2014 08:32:03 +0000

This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch dde
in repository hurd.

commit 6ef14d2991c03e2765b301bbba16651f6a2910e9
Author: Justus Winter <address@hidden>
Date:   Fri Apr 11 22:40:26 2014 +0200

    devnode: improve the demuxer function
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    * devnode/devnode.c (devnode_demuxer): Improve the demuxer function.
---
 devnode/devnode.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/devnode/devnode.c b/devnode/devnode.c
index dbbd40e..789bf51 100644
--- a/devnode/devnode.c
+++ b/devnode/devnode.c
@@ -82,10 +82,17 @@ static int
 devnode_demuxer (mach_msg_header_t *inp,
                    mach_msg_header_t *outp)
 {
-  extern int device_server (mach_msg_header_t *, mach_msg_header_t *);
-  extern int notify_server (mach_msg_header_t *, mach_msg_header_t *);
-  return device_server (inp, outp) || notify_server (inp, outp)
-    || trivfs_demuxer (inp, outp);
+  mig_routine_t routine;
+  if ((routine = device_server_routine (inp)) ||
+      (routine = notify_server_routine (inp)) ||
+      (routine = NULL, trivfs_demuxer (inp, outp)))
+    {
+      if (routine)
+        (*routine) (inp, outp);
+      return TRUE;
+    }
+  else
+    return FALSE;
 }
 
 /* Implementation of notify interface */

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-hurd/hurd.git



reply via email to

[Prev in Thread] Current Thread [Next in Thread]