bug-hurd
[Top][All Lists]
Advanced

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

Re: [PATCH 1/2] streamio: Implement trivfs_append_args ()


From: Samuel Thibault
Subject: Re: [PATCH 1/2] streamio: Implement trivfs_append_args ()
Date: Sun, 21 May 2023 21:24:32 +0200
User-agent: NeoMutt/20170609 (1.8.3)

Applied, thanks!

Sergey Bugaev, le jeu. 18 mai 2023 19:57:18 +0300, a ecrit:
> This enables me to run 'fsysopts /dev/mach-console' and get:
> 
> /hurd/streamio --writable console
> ---
>  trans/streamio.c | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
> 
> diff --git a/trans/streamio.c b/trans/streamio.c
> index 2d40a5d3..272a002c 100644
> --- a/trans/streamio.c
> +++ b/trans/streamio.c
> @@ -23,7 +23,9 @@
>  #include <stdio.h>
>  #include <fcntl.h>
>  #include <argp.h>
> +#include <argz.h>
>  #include <error.h>
> +#include <sys/sysmacros.h>
>  
>  #include <mach.h>
>  #include <device/device.h>
> @@ -722,6 +724,43 @@ trivfs_S_file_syncfs (struct trivfs_protid *cred,
>    return err;
>  }
>  
> +error_t
> +trivfs_append_args (struct trivfs_control *fsys,
> +                 char **argz, size_t *argz_len)
> +{
> +  error_t err;
> +
> +  switch (trivfs_allow_open & O_RDWR)
> +    {
> +    default:
> +      assert_backtrace (!"Bad trivfs_allow_open");
> +    case O_READ:
> +      err = argz_add (argz, argz_len, "--readonly");
> +      break;
> +    case O_WRITE:
> +      err = argz_add (argz, argz_len, "--writeonly");
> +      break;
> +    case O_RDWR:
> +      err = argz_add (argz, argz_len, "--writable");
> +      break;
> +    }
> +
> +  if (err)
> +    return err;
> +
> +  if (rdev != (dev_t) 0)
> +    {
> +      char buf[40];
> +      snprintf (buf, sizeof (buf), "--rdev=%d,%d",
> +             gnu_dev_major (rdev), gnu_dev_minor (rdev));
> +      err = argz_add (argz, argz_len, buf);
> +      if (err)
> +        return err;
> +    }
> +
> +  return argz_add (argz, argz_len, stream_name);
> +}
> +
>  
>  /* This flag is set if there is an outstanding device_write.  */
>  static int output_pending;
> -- 
> 2.40.1
> 
> 

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.



reply via email to

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