* 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