bug-hurd
[Top][All Lists]
Advanced

[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"



reply via email to

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