[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH hurd 06/30] libdiskfs: add payload-aware intrans functions
From: |
Justus Winter |
Subject: |
[PATCH hurd 06/30] libdiskfs: add payload-aware intrans functions |
Date: |
Thu, 27 Nov 2014 14:18:46 +0100 |
* 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
- Re: [PATCH gnumach] include: make `mach_port_t' payload-aware, (continued)
- [PATCH hurd 04/30] libports: add `ports_lookup_payload' and `ports_payload_get_name', Justus Winter, 2014/11/27
- [PATCH hurd 05/30] libports: add a payload-aware intrans function, Justus Winter, 2014/11/27
- [PATCH hurd 06/30] libdiskfs: add payload-aware intrans functions,
Justus Winter <=
- [PATCH hurd 09/30] libpager: add a payload-aware intrans function, Justus Winter, 2014/11/27
- [PATCH hurd 08/30] libtrivfs: add payload-aware intrans functions, Justus Winter, 2014/11/27
- [PATCH hurd 11/30] auth: add a payload-aware intrans function, Justus Winter, 2014/11/27
- [PATCH hurd 10/30] libcons: add a payload-aware intrans function, Justus Winter, 2014/11/27
- [PATCH hurd 12/30] console: add a payload-aware intrans function, Justus Winter, 2014/11/27
- [PATCH hurd 13/30] console-client: make the demuxer payload-aware, Justus Winter, 2014/11/27
- [PATCH hurd 15/30] pfinet: add payload-aware intrans functions, Justus Winter, 2014/11/27
- [PATCH hurd 14/30] exec: add payload-aware intrans functions, Justus Winter, 2014/11/27
- [PATCH hurd 16/30] pfinet: make the demuxers payload-aware, Justus Winter, 2014/11/27
- [PATCH hurd 17/30] pflocal: add payload-aware intrans functions, Justus Winter, 2014/11/27