summaryrefslogtreecommitdiff
path: root/debian/patches/0006-libdiskfs-add-payload-aware-intrans-functions.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0006-libdiskfs-add-payload-aware-intrans-functions.patch')
-rw-r--r--debian/patches/0006-libdiskfs-add-payload-aware-intrans-functions.patch109
1 files changed, 109 insertions, 0 deletions
diff --git a/debian/patches/0006-libdiskfs-add-payload-aware-intrans-functions.patch b/debian/patches/0006-libdiskfs-add-payload-aware-intrans-functions.patch
new file mode 100644
index 00000000..b5193354
--- /dev/null
+++ b/debian/patches/0006-libdiskfs-add-payload-aware-intrans-functions.patch
@@ -0,0 +1,109 @@
+From 0648583515f05054e931a9d097345adfb70ae023 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Thu, 28 Nov 2013 10:43:18 +0100
+Subject: [PATCH hurd 06/29] libdiskfs: add payload-aware intrans functions
+
+* libdiskfs/diskfs.h (diskfs_begin_using_protid_payload): New function.
+(diskfs_begin_using_control_payload): Likewise.
+(diskfs_begin_using_bootinfo_payload): Likewise.
+* libdiskfs/fsmutations.h: Add mutators.
+---
+ libdiskfs/diskfs.h | 29 +++++++++++++++++++++++++++++
+ libdiskfs/fsmutations.h | 5 +++++
+ 2 files changed, 34 insertions(+)
+
+diff --git a/libdiskfs/diskfs.h b/libdiskfs/diskfs.h
+index e59ba99..2818225 100644
+--- a/libdiskfs/diskfs.h
++++ b/libdiskfs/diskfs.h
+@@ -833,8 +833,14 @@ error_t diskfs_start_protid (struct peropen *po, struct protid **cred);
+ void diskfs_finish_protid (struct protid *cred, struct iouser *user);
+
+ extern struct protid * diskfs_begin_using_protid_port (file_t port);
++extern struct protid *
++diskfs_begin_using_protid_payload (unsigned long payload);
+ extern struct diskfs_control * diskfs_begin_using_control_port (fsys_t port);
++extern struct diskfs_control *
++diskfs_begin_using_control_port_payload (unsigned long payload);
+ extern struct bootinfo *diskfs_begin_using_bootinfo_port (exec_startup_t port);
++struct bootinfo *
++diskfs_begin_using_bootinfo_payload (unsigned long payload);
+
+ extern void diskfs_end_using_protid_port (struct protid *cred);
+ extern void diskfs_end_using_control_port (struct diskfs_control *cred);
+@@ -851,6 +857,14 @@ diskfs_begin_using_protid_port (file_t port)
+ return ports_lookup_port (diskfs_port_bucket, port, diskfs_protid_class);
+ }
+
++DISKFS_EXTERN_INLINE struct protid *
++diskfs_begin_using_protid_payload (unsigned long payload)
++{
++ return ports_lookup_payload (diskfs_port_bucket,
++ payload,
++ diskfs_protid_class);
++}
++
+ /* And for the fsys interface. */
+ DISKFS_EXTERN_INLINE struct diskfs_control *
+ diskfs_begin_using_control_port (fsys_t port)
+@@ -858,6 +872,14 @@ diskfs_begin_using_control_port (fsys_t port)
+ return ports_lookup_port (diskfs_port_bucket, port, NULL);
+ }
+
++DISKFS_EXTERN_INLINE struct diskfs_control *
++diskfs_begin_using_control_port_payload (unsigned long payload)
++{
++ return ports_lookup_payload (diskfs_port_bucket,
++ payload,
++ NULL);
++}
++
+ /* And for the exec_startup interface. */
+ DISKFS_EXTERN_INLINE struct bootinfo *
+ diskfs_begin_using_bootinfo_port (exec_startup_t port)
+@@ -865,6 +887,13 @@ diskfs_begin_using_bootinfo_port (exec_startup_t port)
+ return ports_lookup_port (diskfs_port_bucket, port, diskfs_execboot_class);
+ }
+
++DISKFS_EXTERN_INLINE struct bootinfo *
++diskfs_begin_using_bootinfo_payload (unsigned long payload)
++{
++ return ports_lookup_payload (diskfs_port_bucket,
++ payload,
++ diskfs_execboot_class);
++}
+
+ /* Called by MiG after server routines have been run; this
+ balances begin_using_protid_port, and is arranged for the io
+diff --git a/libdiskfs/fsmutations.h b/libdiskfs/fsmutations.h
+index 3f9362b..c2167c6 100644
+--- a/libdiskfs/fsmutations.h
++++ b/libdiskfs/fsmutations.h
+@@ -18,12 +18,15 @@
+ /* Only CPP macro definitions should go in this file. */
+
+ #define FILE_INTRAN protid_t diskfs_begin_using_protid_port (file_t)
++#define FILE_INTRAN_PAYLOAD protid_t diskfs_begin_using_protid_payload
+ #define FILE_DESTRUCTOR diskfs_end_using_protid_port (protid_t)
+
+ #define IO_INTRAN protid_t diskfs_begin_using_protid_port (io_t)
++#define IO_INTRAN_PAYLOAD protid_t diskfs_begin_using_protid_payload
+ #define IO_DESTRUCTOR diskfs_end_using_protid_port (protid_t)
+
+ #define FSYS_INTRAN control_t diskfs_begin_using_control_port (fsys_t)
++#define FSYS_INTRAN_PAYLOAD control_t diskfs_begin_using_control_port_payload
+ #define FSYS_DESTRUCTOR diskfs_end_using_control_port (control_t)
+
+ #define FILE_IMPORTS import "libdiskfs/priv.h";
+@@ -33,6 +36,8 @@
+
+ #define EXEC_STARTUP_INTRAN \
+ bootinfo_t diskfs_begin_using_bootinfo_port (exec_startup_t)
++#define EXEC_STARTUP_INTRAN_PAYLOAD \
++ bootinfo_t diskfs_begin_using_bootinfo_payload
+ #define EXEC_STARTUP_DESTRUCTOR \
+ diskfs_end_using_bootinfo (bootinfo_t)
+ #define EXEC_STARTUP_IMPORTS \
+--
+2.1.3
+