1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
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 \
|