[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd] 23/53: mach-defpager: improve the default_pager_demux_object func
From: |
Samuel Thibault |
Subject: |
[hurd] 23/53: mach-defpager: improve the default_pager_demux_object function |
Date: |
Thu, 20 Mar 2014 02:23:51 +0000 |
This is an automated email from the git hooks/post-receive script.
sthibault pushed a commit to branch upstream
in repository hurd.
commit d4129a39dda08e8cfbc002461e1e76103de8f108
Author: Justus Winter <address@hidden>
Date: Mon Feb 24 13:31:31 2014 +0100
mach-defpager: improve the default_pager_demux_object 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.
* mach-defpager/default_pager.c (default_pager_demux_object): Improve
the demuxer function.
---
mach-defpager/default_pager.c | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c
index 805e065..0977a5d 100644
--- a/mach-defpager/default_pager.c
+++ b/mach-defpager/default_pager.c
@@ -54,7 +54,10 @@
#include <file_io.h>
+#include "memory_object_S.h"
+#include "memory_object_default_S.h"
#include "default_pager_S.h"
+#include "exc_S.h"
#define debug 0
@@ -3019,7 +3022,6 @@ boolean_t default_pager_notify_server(in, out)
return TRUE;
}
-extern boolean_t seqnos_memory_object_server();
extern boolean_t seqnos_memory_object_default_server();
extern boolean_t default_pager_server();
extern boolean_t exc_server();
@@ -3069,15 +3071,23 @@ default_pager_demux_object(in, out)
* the memory_object_default interface.
*/
-int rval;
-ddprintf ("DPAGER DEMUX OBJECT <%p>: %d\n", in, in->msgh_id);
-rval =
- (seqnos_memory_object_server(in, out) ||
- seqnos_memory_object_default_server(in, out) ||
- default_pager_notify_server(in, out) ||
- default_pager_server(in, out));
-ddprintf ("DPAGER DEMUX OBJECT DONE <%p>: %d\n", in, in->msgh_id);
-return rval;
+ int rval = FALSE;
+ ddprintf ("DPAGER DEMUX OBJECT <%p>: %d\n", in, in->msgh_id);
+ mig_reply_setup (in, out);
+
+ mig_routine_t routine;
+ if ((routine = seqnos_memory_object_server_routine (in)) ||
+ (routine = seqnos_memory_object_default_server_routine (in)) ||
+ (routine = NULL, default_pager_notify_server (in, out)) ||
+ (routine = default_pager_server_routine (in)))
+ {
+ if (routine)
+ (*routine) (in, out);
+ rval = TRUE;
+ }
+
+ ddprintf ("DPAGER DEMUX OBJECT DONE <%p>: %d\n", in, in->msgh_id);
+ return rval;
}
mach_msg_size_t default_pager_msg_size_default = 8 * 1024;
--
Alioth's /usr/local/bin/git-commit-notice on
/srv/git.debian.org/git/pkg-hurd/hurd.git
- [hurd] 01/53: trans/fakeroot: fix cached node retrieval on lookup, (continued)
- [hurd] 01/53: trans/fakeroot: fix cached node retrieval on lookup, Samuel Thibault, 2014/03/19
- [hurd] 10/53: Add missing copyright notice, Samuel Thibault, 2014/03/19
- [hurd] 06/53: Fix typos, Samuel Thibault, 2014/03/19
- [hurd] 19/53: utils/umount: do not remove passive translator records, Samuel Thibault, 2014/03/19
- [hurd] 16/53: pfinet: set a non-zero ports management timeout, Samuel Thibault, 2014/03/19
- [hurd] 14/53: libstore: fixed some pointer-sign related warnings, Samuel Thibault, 2014/03/19
- [hurd] 22/53: mach-defpager: add function mig_reply_setup, Samuel Thibault, 2014/03/19
- [hurd] 17/53: exec: provide a meaningful name for new tasks, Samuel Thibault, 2014/03/19
- [hurd] 20/53: libpager: improve the pager_demuxer function, Samuel Thibault, 2014/03/19
- [hurd] 21/53: mach-defpager: fix definition of seqnos_memory_object_data_unlock, Samuel Thibault, 2014/03/19
- [hurd] 23/53: mach-defpager: improve the default_pager_demux_object function,
Samuel Thibault <=
- [hurd] 18/53: Fix fakeroot and remap parsing corner cases, Samuel Thibault, 2014/03/19
- [hurd] 15/53: libports: work around bugs in server termination, Samuel Thibault, 2014/03/19
- [hurd] 27/53: tmpfs: set diskfs_disk_name to "none", Samuel Thibault, 2014/03/19
- [hurd] 25/53: nfs: implement netfs_get_source, Samuel Thibault, 2014/03/19
- [hurd] 26/53: trans/mtab: ignore translators that do not implement file_get_source, Samuel Thibault, 2014/03/19
- [hurd] 08/53: Add --font-width option to force 8/9 pixel font width, Samuel Thibault, 2014/03/19
- [hurd] 36/53: term: fix receiver lookups in the tioctl server functions, Samuel Thibault, 2014/03/19
- [hurd] 29/53: New RPCs, fix build, Samuel Thibault, 2014/03/19
- [hurd] 24/53: hurd: fix the get-children and get-source procedures, Samuel Thibault, 2014/03/19
- [hurd] 12/53: libstore: replaced gz decompression code with libz, Samuel Thibault, 2014/03/19