summaryrefslogtreecommitdiff
path: root/pfinet
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2013-11-28 11:10:20 +0100
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-12-07 15:38:18 +0100
commitdf8605b39f109362e86b0ebf6b8cf79fd1b2f3fd (patch)
treea2d1382dafbd3d39e353afddfcd3d2746fd57b57 /pfinet
parentb6079b096eef4b7b347c85184592584c7ec4a022 (diff)
pfinet: add payload-aware intrans functions
* pfinet/mig-mutate.h: Add mutators. * pfinet/mig-decls.h (begin_using_socket_payload): New function. (begin_using_sockaddr_payload): Likewise.
Diffstat (limited to 'pfinet')
-rw-r--r--pfinet/mig-decls.h12
-rw-r--r--pfinet/mig-mutate.h4
2 files changed, 16 insertions, 0 deletions
diff --git a/pfinet/mig-decls.h b/pfinet/mig-decls.h
index ec8fb232..67bcbfc3 100644
--- a/pfinet/mig-decls.h
+++ b/pfinet/mig-decls.h
@@ -32,6 +32,12 @@ begin_using_socket_port (mach_port_t port)
return ports_lookup_port (pfinet_bucket, port, socketport_class);
}
+static inline struct sock_user * __attribute__ ((unused))
+begin_using_socket_payload (unsigned long payload)
+{
+ return ports_lookup_payload (pfinet_bucket, payload, socketport_class);
+}
+
static inline void __attribute__ ((unused))
end_using_socket_port (struct sock_user *user)
{
@@ -45,6 +51,12 @@ begin_using_sockaddr_port (mach_port_t port)
return ports_lookup_port (pfinet_bucket, port, addrport_class);
}
+static inline struct sock_addr * __attribute__ ((unused))
+begin_using_sockaddr_payload (unsigned long payload)
+{
+ return ports_lookup_payload (pfinet_bucket, payload, addrport_class);
+}
+
static inline void __attribute__ ((unused))
end_using_sockaddr_port (struct sock_addr *addr)
{
diff --git a/pfinet/mig-mutate.h b/pfinet/mig-mutate.h
index 0a1eeb84..2bc385b8 100644
--- a/pfinet/mig-mutate.h
+++ b/pfinet/mig-mutate.h
@@ -23,18 +23,22 @@
#define IO_SELECT_REPLY_PORT
#define IO_INTRAN sock_user_t begin_using_socket_port (io_t)
+#define IO_INTRAN_PAYLOAD sock_user_t begin_using_socket_payload
#define IO_DESTRUCTOR end_using_socket_port (sock_user_t)
#define IO_IMPORTS import "mig-decls.h";
#define IIOCTL_IMPORTS import "mig-decls.h";
#define SOCKET_INTRAN sock_user_t begin_using_socket_port (socket_t)
+#define SOCKET_INTRAN_PAYLOAD sock_user_t begin_using_socket_payload
#define SOCKET_DESTRUCTOR end_using_socket_port (sock_user_t)
#define SOCKET_IMPORTS \
import "mig-decls.h"; \
import "../libtrivfs/mig-decls.h"; \
#define ADDRPORT_INTRAN sock_addr_t begin_using_sockaddr_port (addr_port_t)
+#define ADDRPORT_INTRAN_PAYLOAD sock_addr_t begin_using_sockaddr_payload
#define ADDRPORT_DESTRUCTOR end_using_sockaddr_port (sock_addr_t)
#define PF_INTRAN trivfs_protid_t trivfs_begin_using_protid (pf_t)
+#define PF_INTRAN_PAYLOAD trivfs_protid_t trivfs_begin_using_protid_payload
#define PF_DESTRUCTOR trivfs_end_using_protid (trivfs_protid_t)