Thomas Bushnell BSG, le Mon 01 Jan 2007 12:18:17 -0800, a écrit :
> > > > bd->port = ipc_port_alloc_kernel ();
> > > > ipc_port_nsrequest (bd->port, 1, notify, ¬ify);
> > > >
> > > > dev = (device_t) ns->not_header.msgh_remote_port;
> The MiG converters for the various types are not identical.
But how is the differenciation done in this case?
More precisely, look at kern/ipc_kobject.c:ipc_kobject_notify():
ipc_port_t port = (ipc_port_t) request_header->msgh_remote_port;
...
switch (ip_kotype(port)) {
case IKOT_DEVICE:
return ds_notify(request_header);
and i386/i386at/i386at_ds_routines.c:ds_notify():
ds_notify (mach_msg_header_t *msg)
{
...
dev = (device_t) msg->msgh_remote_port;
if (dev->emul_ops->no_senders)
Both types are used for the same port.
Samuel
_______________________________________________
Bug-hurd mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-hurd