summaryrefslogtreecommitdiff
path: root/debian/patches/random-fixes0004-pfinet-convert-to-trivfs-dynamic-classes-and-buckets.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/random-fixes0004-pfinet-convert-to-trivfs-dynamic-classes-and-buckets.patch')
-rw-r--r--debian/patches/random-fixes0004-pfinet-convert-to-trivfs-dynamic-classes-and-buckets.patch228
1 files changed, 0 insertions, 228 deletions
diff --git a/debian/patches/random-fixes0004-pfinet-convert-to-trivfs-dynamic-classes-and-buckets.patch b/debian/patches/random-fixes0004-pfinet-convert-to-trivfs-dynamic-classes-and-buckets.patch
deleted file mode 100644
index ebbcc3ed..00000000
--- a/debian/patches/random-fixes0004-pfinet-convert-to-trivfs-dynamic-classes-and-buckets.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-From 004c432be995bf8c1fc74e2726a077a009792746 Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Sun, 27 Sep 2015 18:50:11 +0200
-Subject: [PATCH hurd 4/9] pfinet: convert to trivfs dynamic classes and
- buckets
-
-libtrivfs contains two ways of managing more than one port class and
-bucket. There is the old way of using a statically allocated array
-with explicit length, and the new way with dynamically allocated
-vectors.
-
-Converting all users to the new way of handling multiple classes
-and/or buckets, we can simplify the code in libtrivfs. In many cases,
-the code will be simpler and more expressive for the user.
-
-This also fixes a mild bug. The classes and buckets given to
-`trivfs_startup' end up in the dynamic vectors too, making the object
-lookup code use the more complicated code path.
-
-* pfinet/main.c: Convert to dynamic classes and buckets.
-* pfinet/options.c: Likewise.
-* pfinet/pfinet.h: Likewise.
-* pfinet/socket-ops.c: Likewise.
----
- pfinet/main.c | 61 +++++++++++++++++++++++++++++------------------------
- pfinet/options.c | 8 +++----
- pfinet/pfinet.h | 7 ++----
- pfinet/socket-ops.c | 2 +-
- 4 files changed, 41 insertions(+), 37 deletions(-)
-
-diff --git a/pfinet/main.c b/pfinet/main.c
-index 8716fdb..46457a9 100644
---- a/pfinet/main.c
-+++ b/pfinet/main.c
-@@ -56,11 +56,9 @@ int trivfs_support_write = 1;
- int trivfs_support_exec = 0;
- int trivfs_allow_open = O_READ | O_WRITE;
-
--struct port_class *trivfs_protid_portclasses[2];
--int trivfs_protid_nportclasses = 2;
--
--struct port_class *trivfs_cntl_portclasses[2];
--int trivfs_cntl_nportclasses = 2;
-+/* We have a class each per portclass. */
-+struct port_class *pfinet_protid_portclasses[2];
-+struct port_class *pfinet_cntl_portclasses[2];
-
- /* Which portclass to install on the bootstrap port, default to IPv4. */
- int pfinet_bootstrap_portclass = PORTCLASS_INET;
-@@ -334,7 +332,7 @@ main (int argc,
-
- if (bootstrap != MACH_PORT_NULL) {
- /* Create portclass to install on the bootstrap port. */
-- if(trivfs_protid_portclasses[pfinet_bootstrap_portclass]
-+ if(pfinet_protid_portclasses[pfinet_bootstrap_portclass]
- != MACH_PORT_NULL)
- error(1, 0, "No portclass left to assign to bootstrap port");
-
-@@ -342,17 +340,23 @@ main (int argc,
- if (pfinet_bootstrap_portclass == PORTCLASS_INET6)
- pfinet_activate_ipv6 ();
- #endif
--
-- trivfs_protid_portclasses[pfinet_bootstrap_portclass] =
-- ports_create_class (trivfs_clean_protid, 0);
-- trivfs_cntl_portclasses[pfinet_bootstrap_portclass] =
-- ports_create_class (trivfs_clean_cntl, 0);
-+
-+ err = trivfs_add_protid_port_class (
-+ &pfinet_protid_portclasses[pfinet_bootstrap_portclass]);
-+ if (err)
-+ error (1, 0, "error creating control port class");
-+
-+ err = trivfs_add_control_port_class (
-+ &pfinet_cntl_portclasses[pfinet_bootstrap_portclass]);
-+ if (err)
-+ error (1, 0, "error creating control port class");
-
- /* Talk to parent and link us in. */
- err = trivfs_startup (bootstrap, 0,
-- trivfs_cntl_portclasses[pfinet_bootstrap_portclass],
-- pfinet_bucket, trivfs_protid_portclasses
-- [pfinet_bootstrap_portclass], pfinet_bucket,
-+ pfinet_cntl_portclasses[pfinet_bootstrap_portclass],
-+ pfinet_bucket,
-+ pfinet_protid_portclasses[pfinet_bootstrap_portclass],
-+ pfinet_bucket,
- &pfinetctl);
-
- if (err)
-@@ -371,7 +375,7 @@ main (int argc,
- /* Check that at least one portclass has been bound,
- error out otherwise. */
- for (i = 0; i < trivfs_protid_nportclasses; i ++)
-- if (trivfs_protid_portclasses[i] != MACH_PORT_NULL)
-+ if (pfinet_protid_portclasses[i] != MACH_PORT_NULL)
- break;
-
- if (i == trivfs_protid_nportclasses)
-@@ -424,22 +428,25 @@ pfinet_bind (int portclass, const char *name)
- err = errno;
-
- if (! err) {
-- if (trivfs_protid_portclasses[portclass] != MACH_PORT_NULL)
-+ if (pfinet_protid_portclasses[portclass] != MACH_PORT_NULL)
- error (1, 0, "Cannot bind one protocol to multiple nodes.\n");
-
- #ifdef CONFIG_IPV6
- if (portclass == PORTCLASS_INET6)
- pfinet_activate_ipv6 ();
- #endif
-+ //mark
-+ err = trivfs_add_protid_port_class (&pfinet_protid_portclasses[portclass]);
-+ if (err)
-+ error (1, 0, "error creating control port class");
-
-- trivfs_protid_portclasses[portclass] =
-- ports_create_class (trivfs_clean_protid, 0);
-- trivfs_cntl_portclasses[portclass] =
-- ports_create_class (trivfs_clean_cntl, 0);
-+ err = trivfs_add_control_port_class (&pfinet_cntl_portclasses[portclass]);
-+ if (err)
-+ error (1, 0, "error creating control port class");
-
-- err = trivfs_create_control (file, trivfs_cntl_portclasses[portclass],
-- pfinet_bucket,
-- trivfs_protid_portclasses[portclass],
-+ err = trivfs_create_control (file, pfinet_cntl_portclasses[portclass],
-+ pfinet_bucket,
-+ pfinet_protid_portclasses[portclass],
- pfinet_bucket, &cntl);
- }
-
-@@ -473,16 +480,16 @@ trivfs_goaway (struct trivfs_control *cntl, int flags)
- else
- {
- /* Stop new requests. */
-- ports_inhibit_class_rpcs (trivfs_cntl_portclasses[0]);
-- ports_inhibit_class_rpcs (trivfs_protid_portclasses[0]);
-+ ports_inhibit_class_rpcs (pfinet_cntl_portclasses[0]);
-+ ports_inhibit_class_rpcs (pfinet_protid_portclasses[0]);
- ports_inhibit_class_rpcs (socketport_class);
-
- if (ports_count_class (socketport_class) != 0)
- {
- /* We won't go away, so start things going again... */
- ports_enable_class (socketport_class);
-- ports_resume_class_rpcs (trivfs_cntl_portclasses[0]);
-- ports_resume_class_rpcs (trivfs_protid_portclasses[0]);
-+ ports_resume_class_rpcs (pfinet_cntl_portclasses[0]);
-+ ports_resume_class_rpcs (pfinet_protid_portclasses[0]);
-
- return EBUSY;
- }
-diff --git a/pfinet/options.c b/pfinet/options.c
-index daffcd5..ae44759 100644
---- a/pfinet/options.c
-+++ b/pfinet/options.c
-@@ -133,7 +133,7 @@ parse_interface_copy_device(struct device *src,
- && FIB_RES_GW(res) != INADDR_ANY)
- dst->gateway = FIB_RES_GW (res);
- #ifdef CONFIG_IPV6
-- if (trivfs_protid_portclasses[PORTCLASS_INET6] != MACH_PORT_NULL)
-+ if (pfinet_protid_portclasses[PORTCLASS_INET6] != MACH_PORT_NULL)
- idev = ipv6_find_idev(src);
-
- if (idev)
-@@ -452,7 +452,7 @@ parse_opt (int opt, char *arg, struct argp_state *state)
- {
- #ifdef CONFIG_IPV6
- struct inet6_dev *idev = NULL;
-- if (trivfs_protid_portclasses[PORTCLASS_INET6] != MACH_PORT_NULL
-+ if (pfinet_protid_portclasses[PORTCLASS_INET6] != MACH_PORT_NULL
- && in->device)
- idev = ipv6_find_idev(in->device);
- #endif
-@@ -570,7 +570,7 @@ parse_opt (int opt, char *arg, struct argp_state *state)
-
- /* Set IPv6 default router. */
- #ifdef CONFIG_IPV6
-- if (trivfs_protid_portclasses[PORTCLASS_INET6] != MACH_PORT_NULL)
-+ if (pfinet_protid_portclasses[PORTCLASS_INET6] != MACH_PORT_NULL)
- {
- struct rt6_info *rt6i = ipv6_get_dflt_router ();
-
-@@ -710,7 +710,7 @@ trivfs_append_args (struct trivfs_control *fsys, char **argz, size_t *argz_len)
- #ifdef CONFIG_IPV6
- struct inet6_dev *idev = NULL;
-
-- if (trivfs_protid_portclasses[PORTCLASS_INET6] != MACH_PORT_NULL)
-+ if (pfinet_protid_portclasses[PORTCLASS_INET6] != MACH_PORT_NULL)
- idev = ipv6_find_idev(dev);
-
- if (idev)
-diff --git a/pfinet/pfinet.h b/pfinet/pfinet.h
-index 46aa97b..6e59225 100644
---- a/pfinet/pfinet.h
-+++ b/pfinet/pfinet.h
-@@ -92,11 +92,8 @@ enum {
- PORTCLASS_INET6,
- };
-
--extern struct port_class *trivfs_protid_portclasses[];
--extern int trivfs_protid_nportclasses;
--
--extern struct port_class *trivfs_cntl_portclasses[2];
--extern int trivfs_cntl_nportclasses;
-+extern struct port_class *pfinet_protid_portclasses[2];
-+extern struct port_class *pfinet_cntl_portclasses[2];
-
- /* Which portclass to install on the bootstrap port. */
- extern int pfinet_bootstrap_portclass;
-diff --git a/pfinet/socket-ops.c b/pfinet/socket-ops.c
-index 3f8b7fb..14b3120 100644
---- a/pfinet/socket-ops.c
-+++ b/pfinet/socket-ops.c
-@@ -82,7 +82,7 @@ S_socket_create (struct trivfs_protid *master,
- isroot = 1;
- }
-
-- if (master->pi.class == trivfs_protid_portclasses[PORTCLASS_INET])
-+ if (master->pi.class == pfinet_protid_portclasses[PORTCLASS_INET])
- err = - (*net_families[PF_INET]->create) (sock, protocol);
- else
- err = - (*net_families[PF_INET6]->create) (sock, protocol);
---
-2.1.4
-