I just noticed that when tracing back the type of `vm_offset_t'
we get back to `natural_t' which is defined with this comment in
/include/mach/i386/vm_types.h:

/*
 * A natural_t is the type for the native
 * integer type, e.g. 32 or 64 or.. whatever
 * register size the machine has.  Unsigned, it is
 * used for entities that might be either
 * unsigned integers or pointers, and for
 * type-casting between the two.
 * For instance, the IPC system represents
 * a port in user space as an integer and
 * in kernel space as a pointer.
 */
typedef unsigned int  natural_t;

But isn't it true that most modern 64bit compilers still use a 
32 bit `int', but have a 64 bit `long'. The comment says that
natural_t should be wide enough to accomodate a whole register
or pointer. In that case, shouldn't it be defined as

typedef unsigned long  natural_t;

since `long' is still 32 bits on 32bit architectures.

Igor

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

Reply via email to