diff --git a/devnode/Makefile b/devnode/Makefile index d9a9c23..9529fa7 100644 --- a/devnode/Makefile +++ b/devnode/Makefile @@ -24,6 +24,7 @@ HURDLIBS = ports trivfs fshelp shouldbeinlibc target = devnode MIGSTUBS = deviceServer.o notifyServer.o MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h +device-MIGSFLAGS="-DMACH_PAYLOAD_TO_PORT=ports_payload_get_name" OBJS = $(SRCS:.c=.o) $(MIGSTUBS) include ../Makeconf diff --git a/devnode/mig-mutate.h b/devnode/mig-mutate.h index f692236..0656014 100644 --- a/devnode/mig-mutate.h +++ b/devnode/mig-mutate.h @@ -19,6 +19,8 @@ #define NOTIFY_INTRAN \ port_info_t begin_using_port_info_port (mach_port_t) +#define NOTIFY_INTRAN_PAYLOAD \ + port_info_t begin_using_port_info_payload #define NOTIFY_DESTRUCTOR \ end_using_port_info (port_info_t) #define NOTIFY_IMPORTS \ diff --git a/eth-filter/mig-decls.h b/eth-filter/mig-decls.h index 0bb29a6..a3f700c 100644 --- a/eth-filter/mig-decls.h +++ b/eth-filter/mig-decls.h @@ -35,6 +35,12 @@ begin_using_device_port (mach_port_t port) return ports_lookup_port (port_bucket, port, user_portclass); } +static inline struct proxy_user * __attribute__ ((unused)) +begin_using_device_payload (unsigned long payload) +{ + return ports_lookup_payload (port_bucket, payload, user_portclass); +} + static inline void __attribute__ ((unused)) end_using_device (struct proxy_user *p) { diff --git a/eth-filter/mig-mutate.h b/eth-filter/mig-mutate.h index 388ce09..5c6cde9 100644 --- a/eth-filter/mig-mutate.h +++ b/eth-filter/mig-mutate.h @@ -19,6 +19,8 @@ #define NOTIFY_INTRAN \ port_info_t begin_using_port_info_port (mach_port_t) +#define NOTIFY_INTRAN_PAYLOAD \ + port_info_t begin_using_port_info_payload #define NOTIFY_DESTRUCTOR \ end_using_port_info (port_info_t) #define NOTIFY_IMPORTS \ @@ -26,6 +28,8 @@ #define DEVICE_INTRAN \ proxy_user_t begin_using_device_port (mach_port_t) +#define DEVICE_INTRAN_PAYLOAD \ + proxy_user_t begin_using_device_payload #define DEVICE_DESTRUCTOR \ end_using_device (proxy_user_t) #define DEVICE_IMPORTS \ diff --git a/eth-multiplexer/Makefile b/eth-multiplexer/Makefile index fbee1ca..bfd065a 100644 --- a/eth-multiplexer/Makefile +++ b/eth-multiplexer/Makefile @@ -23,6 +23,7 @@ target = eth-multiplexer SRCS = ethernet.c vdev.c multiplexer.c dev_stat.c netfs_impl.c notify_impl.c device_impl.c demuxer.c MIGSTUBS = deviceServer.o notifyServer.o MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h +device-MIGSFLAGS="-DMACH_PAYLOAD_TO_PORT=ports_payload_get_name" OBJS = $(SRCS:.c=.o) $(MIGSTUBS) LCLHDRS = ethernet.h util.h vdev.h netfs_impl.h HURDLIBS=ports fshelp shouldbeinlibc netfs bpf diff --git a/eth-multiplexer/mig-decls.h b/eth-multiplexer/mig-decls.h index a68e2ec..6ad9ebf 100644 --- a/eth-multiplexer/mig-decls.h +++ b/eth-multiplexer/mig-decls.h @@ -35,6 +35,12 @@ begin_using_device_port (mach_port_t port) return ports_lookup_port (port_bucket, port, vdev_portclass); } +static inline struct vether_device * __attribute__ ((unused)) +begin_using_device_payload (unsigned long payload) +{ + return ports_lookup_payload (port_bucket, payload, vdev_portclass); +} + static inline void __attribute__ ((unused)) end_using_device (struct vether_device *p) { diff --git a/eth-multiplexer/mig-mutate.h b/eth-multiplexer/mig-mutate.h index 2403c29..55eca31 100644 --- a/eth-multiplexer/mig-mutate.h +++ b/eth-multiplexer/mig-mutate.h @@ -19,6 +19,8 @@ #define NOTIFY_INTRAN \ port_info_t begin_using_port_info_port (mach_port_t) +#define NOTIFY_INTRAN_PAYLOAD \ + port_info_t begin_using_port_info_payload #define NOTIFY_DESTRUCTOR \ end_using_port_info (port_info_t) #define NOTIFY_IMPORTS \ @@ -26,6 +28,8 @@ #define DEVICE_INTRAN \ vether_device_t begin_using_device_port (mach_port_t) +#define DEVICE_INTRAN_PAYLOAD \ + vether_device_t begin_using_device_payload #define DEVICE_DESTRUCTOR \ end_using_device (vether_device_t) #define DEVICE_IMPORTS \ diff --git a/libmachdev/Makefile b/libmachdev/Makefile index 345c004..221e4ed 100644 --- a/libmachdev/Makefile +++ b/libmachdev/Makefile @@ -29,5 +29,6 @@ HURDLIBS = ports trivfs ddekit bpf OTHERLIBS = -lpthread OBJS = $(SRCS:.c=.o) $(MIGSTUBS) MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h +device-MIGSFLAGS="-DMACH_PAYLOAD_TO_PORT=ports_payload_get_name" include ../Makeconf diff --git a/libmachdev/mig-decls.h b/libmachdev/mig-decls.h index b3dc43d..8302029 100644 --- a/libmachdev/mig-decls.h +++ b/libmachdev/mig-decls.h @@ -34,6 +34,12 @@ begin_using_device_port (mach_port_t port) return ports_lookup_port (device_bucket, port, dev_class); } +static inline struct mach_device * __attribute__ ((unused)) +begin_using_device_payload (unsigned long payload) +{ + return ports_lookup_payload (device_bucket, payload, dev_class); +} + static inline void __attribute__ ((unused)) end_using_device (struct mach_device *p) { diff --git a/libmachdev/mig-mutate.h b/libmachdev/mig-mutate.h index 56c6965..902ff16 100644 --- a/libmachdev/mig-mutate.h +++ b/libmachdev/mig-mutate.h @@ -19,6 +19,8 @@ #define NOTIFY_INTRAN \ port_info_t begin_using_port_info_port (mach_port_t) +#define NOTIFY_INTRAN_PAYLOAD \ + port_info_t begin_using_port_info_payload #define NOTIFY_DESTRUCTOR \ end_using_port_info (port_info_t) #define NOTIFY_IMPORTS \ @@ -26,6 +28,8 @@ #define DEVICE_INTRAN \ mach_device_t begin_using_device_port (mach_port_t) +#define DEVICE_INTRAN_PAYLOAD \ + mach_device_t begin_using_device_payload #define DEVICE_DESTRUCTOR \ end_using_device (mach_device_t) #define DEVICE_IMPORTS \