From owner-svn-src-head@FreeBSD.ORG Thu Jul 15 16:39:17 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79AE01065670; Thu, 15 Jul 2010 16:39:17 +0000 (UTC) (envelope-from jchandra@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 50BE48FC08; Thu, 15 Jul 2010 16:39:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o6FGdHNS041536; Thu, 15 Jul 2010 16:39:17 GMT (envelope-from jchandra@svn.freebsd.org) Received: (from jchandra@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o6FGdHdA041534; Thu, 15 Jul 2010 16:39:17 GMT (envelope-from jchandra@svn.freebsd.org) Message-Id: <201007151639.o6FGdHdA041534@svn.freebsd.org> From: "Jayachandran C." Date: Thu, 15 Jul 2010 16:39:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r210126 - head/sys/mips/rmi X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jul 2010 16:39:17 -0000 Author: jchandra Date: Thu Jul 15 16:39:17 2010 New Revision: 210126 URL: http://svn.freebsd.org/changeset/base/210126 Log: Fix for 64 bit compilation. RMI bootloader passes argv[] and envp[] as an array of 32 bit pointers. Convert the pointers to correct pointer type before use. Modified: head/sys/mips/rmi/xlr_machdep.c Modified: head/sys/mips/rmi/xlr_machdep.c ============================================================================== --- head/sys/mips/rmi/xlr_machdep.c Thu Jul 15 16:32:59 2010 (r210125) +++ head/sys/mips/rmi/xlr_machdep.c Thu Jul 15 16:39:17 2010 (r210126) @@ -89,7 +89,7 @@ struct boot1_info xlr_boot1_info; struct xlr_loader_info xlr_loader_info; /* FIXME : Unused */ int xlr_run_mode; int xlr_argc; -char **xlr_argv, **xlr_envp; +int32_t *xlr_argv, *xlr_envp; uint64_t cpu_mask_info; uint32_t xlr_online_cpumask; uint32_t xlr_core_cpu_mask = 0x1; /* Core 0 thread 0 is always there */ @@ -298,8 +298,11 @@ platform_start(__register_t a0 __unused, xlr_online_cpumask = read_c0_register32(MIPS_COP_0_OSSCRATCH, 2); xlr_run_mode = read_c0_register32(MIPS_COP_0_OSSCRATCH, 3); xlr_argc = read_c0_register32(MIPS_COP_0_OSSCRATCH, 4); - xlr_argv = (char **)(intptr_t)(int)read_c0_register32(MIPS_COP_0_OSSCRATCH, 5); - xlr_envp = (char **)(intptr_t)(int)read_c0_register32(MIPS_COP_0_OSSCRATCH, 6); + /* + * argv and envp are passed in array of 32bit pointers + */ + xlr_argv = (int32_t *)(intptr_t)(int)read_c0_register32(MIPS_COP_0_OSSCRATCH, 5); + xlr_envp = (int32_t *)(intptr_t)(int)read_c0_register32(MIPS_COP_0_OSSCRATCH, 6); /* TODO: Verify the magic number here */ /* FIXMELATER: xlr_boot1_info.magic_number */ @@ -331,14 +334,15 @@ platform_start(__register_t a0 __unused, if (xlr_argc == 1) printf("\tNone\n"); for (i = 1; i < xlr_argc; i++) { - char *n; + char *n, *arg; - printf("\t%s\n", xlr_argv[i]); - n = strsep(&xlr_argv[i], "="); - if (xlr_argv[i] == NULL) + arg = (char *)(intptr_t)xlr_argv[i]; + printf("\t%s\n", arg); + n = strsep(&arg, "="); + if (arg == NULL) setenv(n, "1"); else - setenv(n, xlr_argv[i]); + setenv(n, arg); } xlr_set_boot_flags();