From a226c74609b12cac905d06ec97a077bb2633e8a8 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: 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 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'libdiskfs/diskfs.h') diff --git a/libdiskfs/diskfs.h b/libdiskfs/diskfs.h index e59ba996..28182254 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 -- cgit v1.2.3