bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 11/23] pfinet: add a payload-aware intrans functions


From: Justus Winter
Subject: [PATCH 11/23] pfinet: add a payload-aware intrans functions
Date: Fri, 29 Nov 2013 01:03:39 +0100

* pfinet/mutations.h: Add mutators.
* pfinet/misc.c (begin_using_socket_payload): New function.
(begin_using_sockaddr_payload): Likewise.
* pfinet/pfinet.h (begin_using_socket_payload): New declaration.
(begin_using_sockaddr_payload): Likewise.
---
 pfinet/misc.c      |   12 ++++++++++++
 pfinet/mutations.h |    4 ++++
 pfinet/pfinet.h    |    2 ++
 3 files changed, 18 insertions(+)

diff --git a/pfinet/misc.c b/pfinet/misc.c
index 08b19e9..be1e9e1 100644
--- a/pfinet/misc.c
+++ b/pfinet/misc.c
@@ -68,6 +68,12 @@ begin_using_socket_port (mach_port_t port)
   return ports_lookup_port (pfinet_bucket, port, socketport_class);
 }
 
+struct sock_user *
+begin_using_socket_payload (unsigned long payload)
+{
+  return ports_lookup_payload (pfinet_bucket, payload, socketport_class);
+}
+
 void
 end_using_socket_port (struct sock_user *user)
 {
@@ -81,6 +87,12 @@ begin_using_sockaddr_port (mach_port_t port)
   return ports_lookup_port (pfinet_bucket, port, addrport_class);
 }
 
+struct sock_addr *
+begin_using_sockaddr_payload (unsigned long payload)
+{
+  return ports_lookup_payload (pfinet_bucket, payload, addrport_class);
+}
+
 void
 end_using_sockaddr_port (struct sock_addr *addr)
 {
diff --git a/pfinet/mutations.h b/pfinet/mutations.h
index f63ad9b..5cbd8eb 100644
--- a/pfinet/mutations.h
+++ b/pfinet/mutations.h
@@ -23,15 +23,19 @@
 #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 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 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)
 
 #define IO_IMPORTS import "pfinet.h";
diff --git a/pfinet/pfinet.h b/pfinet/pfinet.h
index 9725dab..ac12d07 100644
--- a/pfinet/pfinet.h
+++ b/pfinet/pfinet.h
@@ -86,6 +86,8 @@ error_t tcp_tiocinq (struct sock *sk, mach_msg_type_number_t 
*amount);
 
 struct sock_user *begin_using_socket_port (socket_t);
 struct sock_addr *begin_using_sockaddr_port (socket_t);
+struct sock_user *begin_using_socket_payload (unsigned long);
+struct sock_addr *begin_using_sockaddr_payload (unsigned long);
 void end_using_socket_port (struct sock_user *);
 void end_using_sockaddr_port (struct sock_addr *);
 void clean_addrport (void *);
-- 
1.7.10.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]