diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2013-11-28 10:43:18 +0100 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-12-07 15:38:18 +0100 |
commit | a226c74609b12cac905d06ec97a077bb2633e8a8 (patch) | |
tree | da4c1ca3d2787bb383b1a0efa8293531b8e5e183 /libdiskfs/diskfs.h | |
parent | f8ce37835ad53f67da245db6fed7d2a028514b01 (diff) |
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.
Diffstat (limited to 'libdiskfs/diskfs.h')
-rw-r--r-- | libdiskfs/diskfs.h | 29 |
1 files changed, 29 insertions, 0 deletions
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 |