[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] libdiskfs: improve the diskfs_demuxer function
From: |
Samuel Thibault |
Subject: |
Re: [PATCH] libdiskfs: improve the diskfs_demuxer function |
Date: |
Mon, 2 Dec 2013 12:57:53 +0100 |
User-agent: |
Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30) |
Justus Winter, le Fri 29 Nov 2013 14:30:59 +0100, a écrit :
> 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.
>
> Furthermore, move diskfs_exec_startup_server_routine to the end of the
> chain, as the startup related functions are only needed at system
> bootstrap time in the root filesystem.
>
> * libdiskfs/demuxer.c (diskfs_demuxer): Improve the demuxer function.
Ack.
> ---
> libdiskfs/demuxer.c | 43 ++++++++++++++++++++++++++-----------------
> 1 file changed, 26 insertions(+), 17 deletions(-)
>
> diff --git a/libdiskfs/demuxer.c b/libdiskfs/demuxer.c
> index 7425dc5..b1facdb 100644
> --- a/libdiskfs/demuxer.c
> +++ b/libdiskfs/demuxer.c
> @@ -1,5 +1,5 @@
> /* Demultiplexer for diskfs library
> - Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
> + Copyright (C) 1994, 1995, 1996, 2013 Free Software Foundation, Inc.
>
> This program is free software; you can redistribute it and/or
> modify it under the terms of the GNU General Public License as
> @@ -21,20 +21,29 @@ int
> diskfs_demuxer (mach_msg_header_t *inp,
> mach_msg_header_t *outp)
> {
> - int diskfs_fs_server (mach_msg_header_t *, mach_msg_header_t *);
> - int diskfs_io_server (mach_msg_header_t *, mach_msg_header_t *);
> - int diskfs_fsys_server (mach_msg_header_t *, mach_msg_header_t *);
> - int diskfs_exec_startup_server (mach_msg_header_t *, mach_msg_header_t *);
> - int diskfs_ifsock_server (mach_msg_header_t *, mach_msg_header_t *);
> - int diskfs_startup_notify_server (mach_msg_header_t *, mach_msg_header_t
> *);
> -
> -
> - return (diskfs_io_server (inp, outp)
> - || diskfs_fs_server (inp, outp)
> - || ports_notify_server (inp, outp)
> - || diskfs_fsys_server (inp, outp)
> - || diskfs_exec_startup_server (inp, outp)
> - || ports_interrupt_server (inp, outp)
> - || (diskfs_shortcut_ifsock ? diskfs_ifsock_server (inp, outp) : 0)
> - || diskfs_startup_notify_server (inp, outp));
> + mig_routine_t diskfs_fs_server_routine (mach_msg_header_t *);
> + mig_routine_t diskfs_io_server_routine (mach_msg_header_t *);
> + mig_routine_t ports_notify_server_routine (mach_msg_header_t *);
> + mig_routine_t diskfs_fsys_server_routine (mach_msg_header_t *);
> + mig_routine_t ports_interrupt_server_routine (mach_msg_header_t *);
> + mig_routine_t diskfs_ifsock_server_routine (mach_msg_header_t *);
> + mig_routine_t diskfs_exec_startup_server_routine (mach_msg_header_t *);
> + mig_routine_t diskfs_startup_notify_server_routine (mach_msg_header_t *);
> +
> + mig_routine_t routine;
> + if ((routine = diskfs_io_server_routine (inp)) ||
> + (routine = diskfs_fs_server_routine (inp)) ||
> + (routine = ports_notify_server_routine (inp)) ||
> + (routine = diskfs_fsys_server_routine (inp)) ||
> + (routine = ports_interrupt_server_routine (inp)) ||
> + (diskfs_shortcut_ifsock ?
> + (routine = diskfs_ifsock_server_routine (inp)) : 0) ||
> + (routine = diskfs_startup_notify_server_routine (inp)) ||
> + (routine = diskfs_exec_startup_server_routine (inp)))
> + {
> + (*routine) (inp, outp);
> + return TRUE;
> + }
> + else
> + return FALSE;
> }
> --
> 1.7.10.4
>
--
Samuel
> ±z¬O§_¸g±`¬°¦p¦ó©Ý®i¦æ¾PºÞ¹D¶Ë¸£µ¬?
> ¥Zµn³ø¯È,Âø»x¼s§i©Î¶l±H¢Ò¢Û (Direct Mail)¬O§_¤w¸gµLªk¹F¦¨±z¹w´Áªº¼s§i®ÄªG?
Je vous invite a consulter dans un premier temps le french-Howto.
-+- JCD in Guide du linuxien pervers - "Bien configurer la lisibilité de fcolm"
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH] libdiskfs: improve the diskfs_demuxer function,
Samuel Thibault <=