On Thu, Nov 22, 2001 at 01:51:12PM -0500, Roland McGrath wrote:
> There is no meaningful sense in which ext2fs.static can "call device_map on
> a null pointer".  device_map is an RPC.  The only way a user task "calls"
> the kernel function is by sending an RPC.  The RPC should never have gotten
> there without a valid receiver port, so I don't see how it's possible.

Good point.  I will have to figure this out.  The port is not null, of
course, but dev_port_lookup() is returning null because its kotype is
IKOT_TASK and not IKOT_DEVICE: no doubt a bug in my code.

There sure are a lot of #ifdef i386 sections in dev_lookup.c and
ds_routines.c, and they don't seem to have anything to do with the
i386 architecture.  They seem to select whether devices use the
dispatch table defined in i386/i386at/device_emul.h.  I wonder if
there is any good reason that device_emul.h is under the i386 branch
and whether the test macro should be MACH_DEVICE_EMUL instead of i386
(and set -DMACH_DEVICE_EMUL in i386/Makefrag).  For OTOP, I am
inserting

#if OTOP
#undef i386
#endif

in those two files.  (Hmmm, I'm not sure if I need -Di386 *anywhere*
anymore.)  Perhaps I should instead copy device_emul.h into otop and
use the virtual table.  I will look in ChangeLog for clues.

Thanks.
-John

_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to