2005-12-29 Roland McGrath <roland@frob.com>
+ * sysdeps/mach/hurd/errno.c: New file.
+
+ * sysdeps/mach/hurd/ioctl.c (__ioctl): Use a union to avoid a cast.
+
* sysdeps/posix/libc_fatal.c (__libc_message): Add a const, a cast.
* hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Fix cast.
struct
{
#ifdef MACH_MSG_TYPE_BIT
- mig_reply_header_t header;
+ union
+ {
+ mig_reply_header_t header;
+ struct
+ {
+ mach_msg_header_t Head;
+ int RetCodeType;
+ kern_return_t RetCode;
+ } header_typecheck;
+ };
char data[3 * sizeof (mach_msg_type_t) +
msg_align (_IOT_COUNT0 (type) * typesize (_IOT_TYPE0 (type))) +
msg_align (_IOT_COUNT1 (type) * typesize (_IOT_TYPE1 (type))) +
return MIG_TYPE_ERROR;
#ifdef MACH_MSG_TYPE_BIT
- if (*(int *) &msg.header.RetCodeType !=
+ if (msg.header_typecheck.RetCodeType !=
((union { mach_msg_type_t t; int i; })
{ t: io2mach_type (1, _IOTS (msg.header.RetCode)) }).i)
return MIG_TYPE_ERROR;