Post by Samuel ThibaultPost by Joshua BransonPost by Samuel ThibaultIt's correct, but could be improved: I'd say rather take the example of
glibc's send(), which is an RPC handled by pfinet, which uses a
device_write RPC to actually emit an Ethernet frame, which is handled by
netdde, which pushes the hardware, and gets an interrupt from GNU Mach
when that's done.
I think the new attached patch shows that, but I'm not an expert.
It's more interesting, yet not as good as it could :)
I think I sent you the patch with the inkscape image, but I guess I did
not send you the paragraph to explain it.
The graphic below demonstrates this. In the picture glibc's send(),
which is an RPC handled by pfinet, which uses a device_write RPC to
actually emit an Ethernet frame, which is handled by netdde, which
pushes the hardware, and gets an interrupt from GNU Mach when that's
done.
I'll try to get my "wiki" branch updated against master, so you don't
have to manually modify my patches. But I'm still learning git, so that
may take me a while to figure out how to do.
Post by Samuel ThibaultPost by Joshua Branson+ ---------------------------------------
+ | \ Hurd Servers |
+ | | |
+ | | auth and other servers|
+ | | |
+ | pfinet -> device_write RPC |
+ | \ | |
+ | \ | |
+ | \ | |
+ --------------------------------------
+ \ /
+ \ netdde
netdde is actually one of the hurd servers. I'd say either drop the Hurd
Servers frame and use frames around pfinet and netdde, or keep the Hurd
Servers frame, but put frames around pfinet and netdde. Otherwise it's
misguiding, the reader could think that the "Hurd Servers" is just one
process.
pfinet itself doesn't talk with GNU Mach, it really only uses
device_write implemented by netdde, which pushes to the hardware (after
asking GNU Mach for permission)
Samuel