Index: init/init.c =================================================================== RCS file: /cvsroot/hurd/hurd/init/init.c,v retrieving revision 1.129 diff -u -r1.129 init.c --- init/init.c 8 May 2002 09:20:38 -0000 1.129 +++ init/init.c 9 Aug 2003 12:27:18 -0000 @@ -1,6 +1,6 @@ /* Start and maintain hurd core servers and system run state - Copyright (C) 1993,94,95,96,97,98,99,2000,01,02 + Copyright (C) 1993,94,95,96,97,98,99,2000,01,02,03 Free Software Foundation, Inc. This file is part of the GNU Hurd. @@ -530,6 +530,9 @@ volatile int err; int i; mach_port_t consdev; +#ifdef KERNEL_SECURITY_TOKEN_VALUE + security_token_t sec_token = KERNEL_SECURITY_TOKEN_VALUE; +#endif struct argp argp = { options, parse_opt, 0, doc }; /* Parse the arguments. We don't want the vector reordered, @@ -546,7 +549,15 @@ master device ports, and the console. */ if (task_get_bootstrap_port (mach_task_self (), &bootport) || fsys_getpriv (bootport, &host_priv, &device_master, &fstask) - || device_open (device_master, D_WRITE, "console", &consdev)) + || device_open (device_master, +#ifdef KERN_INVALID_LEDGER + MACH_PORT_NULL, +#endif + D_WRITE, +#ifdef KERNEL_SECURITY_TOKEN_VALUE + sec_token, +#endif + "console", &consdev)) crash_mach (); wire_task_self (); Index: init/stubs.c =================================================================== RCS file: /cvsroot/hurd/hurd/init/stubs.c,v retrieving revision 1.3 diff -u -r1.3 stubs.c --- init/stubs.c 14 Mar 2000 00:08:48 -0000 1.3 +++ init/stubs.c 9 Aug 2003 12:27:19 -0000 @@ -1,5 +1,5 @@ /* By-hand stubs for some RPC calls - Copyright (C) 1994,96,99,2000 Free Software Foundation, Inc. + Copyright (C) 1994,96,99,2000,03 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -37,6 +37,7 @@ /* This message buffer might be modified by mach_msg in some error cases, so we cannot safely reuse a static buffer. */ +#ifdef MACH_MSG_TYPE_INTEGER_32 struct { mach_msg_header_t head; @@ -97,6 +98,46 @@ /* Reference port */ refport }; +#else + struct + { + mach_msg_header_t head; + mach_msg_body_t body; + mach_msg_port_descriptor_t refport; + NDR_record_t NDR; + int signal; + natural_t sigcode; + } + message = + { + { + /* Message header: */ + (MACH_MSGH_BITS_COMPLEX + | MACH_MSGH_BITS (MACH_MSG_TYPE_COPY_SEND, + MACH_MSG_TYPE_MAKE_SEND_ONCE)), /* msgh_bits */ + sizeof message, /* msgh_size */ + msgport, /* msgh_remote_port */ + MACH_PORT_NULL, /* msgh_local_port */ + 0, /* msgh_reserved */ + RPCID_SIG_POST, /* msgh_id */ + }, + { + /* Message body */ + 1, /* msgh_descriptor_count */ + }, + { + /* Port descriptor */ + refport, /* name */ + 0, /* pad1 */ + 0, /* pad2 */ + 19, /* disposition */ + MACH_MSG_PORT_DESCRIPTOR, /* type */ + }, + NDR_record, + signal, + 0 + }; +#endif err = mach_msg (&message.head, MACH_SEND_MSG|MACH_SEND_TIMEOUT, sizeof message, 0, @@ -117,8 +158,13 @@ == MACH_MSG_TYPE_MOVE_SEND) mach_port_deallocate (mach_task_self (), message.head.msgh_remote_port); +#ifdef MACH_MSG_TYPE_INTEGER_32 if (message.refporttype.msgt_name == MACH_MSG_TYPE_MOVE_SEND) mach_port_deallocate (mach_task_self (), message.refport); +#else + if (message.refport.disposition == MACH_MSG_TYPE_MOVE_SEND) + mach_port_deallocate (mach_task_self (), message.refport.name); +#endif break; /* These are the other codes that mean a pseudo-receive modified @@ -126,8 +172,12 @@ None of them should be possible in our usage. */ case MACH_SEND_INTERRUPTED: case MACH_SEND_INVALID_NOTIFY: +#ifdef MACH_SEND_NO_NOTIFY case MACH_SEND_NO_NOTIFY: +#endif +#ifdef MACH_SEND_NOTIFY_IN_PROGRESS case MACH_SEND_NOTIFY_IN_PROGRESS: +#endif assert_perror (err); break;