summaryrefslogtreecommitdiff
path: root/debian/patches/procfs-get-options.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/procfs-get-options.patch')
-rw-r--r--debian/patches/procfs-get-options.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/debian/patches/procfs-get-options.patch b/debian/patches/procfs-get-options.patch
new file mode 100644
index 00000000..99104177
--- /dev/null
+++ b/debian/patches/procfs-get-options.patch
@@ -0,0 +1,73 @@
+Implement our own netfs_append_args function that provides the
+appropriate command line flags if the current values differ from the
+default values.
+
+* procfs/main.c (netfs_append_args): New function.
+---
+ procfs/main.c | 42 ++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 42 insertions(+)
+
+diff --git a/procfs/main.c b/procfs/main.c
+index 3e53307..bcf9590 100644
+--- a/procfs/main.c
++++ b/procfs/main.c
+@@ -22,6 +22,7 @@
+ #include <unistd.h>
+ #include <error.h>
+ #include <argp.h>
++#include <argz.h>
+ #include <hurd/netfs.h>
+ #include <ps.h>
+ #include "procfs.h"
+@@ -193,6 +194,47 @@ struct argp netfs_runtime_argp_ = {
+ /* Used by netfs_set_options to handle runtime option parsing. */
+ struct argp *netfs_runtime_argp = &netfs_runtime_argp_;
+
++/* Return an argz string describing the current options. Fill *ARGZ
++ with a pointer to newly malloced storage holding the list and *LEN
++ to the length of that storage. */
++error_t
++netfs_append_args (char **argz, size_t *argz_len)
++{
++ char buf[80];
++ error_t err = 0;
++
++#define FOPT(opt, default, fmt, args...) \
++ do { \
++ if (! err && opt != default) \
++ { \
++ snprintf (buf, sizeof buf, fmt, ## args); \
++ err = argz_add (argz, argz_len, buf); \
++ } \
++ } while (0)
++
++ FOPT (opt_clk_tck, OPT_CLK_TCK,
++ "--clk-tck=%d", opt_clk_tck);
++
++ FOPT (opt_stat_mode, OPT_STAT_MODE,
++ "--stat-mode=%o", opt_stat_mode);
++
++ FOPT (opt_fake_self, OPT_FAKE_SELF,
++ "--fake-self=%d", opt_fake_self);
++
++ FOPT (opt_anon_owner, OPT_ANON_OWNER,
++ "--anonymous-owner=%d", opt_anon_owner);
++
++ FOPT (opt_kernel_pid, OPT_KERNEL_PID,
++ "--kernel-process=%d", opt_kernel_pid);
++
++#undef FOPT
++
++ if (! err)
++ err = netfs_append_std_options (argz, argz_len);
++
++ return err;
++}
++
+ error_t
+ root_make_node (struct ps_context *pc, struct node **np)
+ {
+--
+1.7.10.4
+
+