986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * CDDL HEADER START
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * The contents of this file are subject to the terms of the
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * Common Development and Distribution License (the "License").
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * You may not use this file except in compliance with the License.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * See the License for the specific language governing permissions
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * and limitations under the License.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * When distributing Covered Code, include this CDDL HEADER in each
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * If applicable, add the following below this CDDL HEADER, with the
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * fields enclosed by brackets "[]" replaced with your own identifying
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * information: Portions Copyright [yyyy] [name of copyright owner]
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * CDDL HEADER END
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * Use is subject to license terms.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje ((virt = create_ramdisk(RD_ROOTFS, st.st_size, NULL)) == NULL))
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje return (-1);
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje if ((size = xread(fd, (char *)virt, st.st_size)) != st.st_size) {
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje (void) printf("Error reading boot archive, bytes read = %ld, "
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje return (-1);
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje /* NOT REACHED */
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje return (0); /* to make cc happy */
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India char ctmpname[MAXPATHLEN];
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India /* Avoid buffer overrun */
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India (void) strncpy(tmpname, fn, strlen(fn)+1);
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India fn = tmpname;
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India (void) cons_gets(ctmpname, sizeof (ctmpname));
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India if (ctmpname[0] != '\0') {
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India (void) strncpy(tmpname, ctmpname,
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India strlen(ctmpname)+1);
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India }
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India if (fn != NULL) {
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India } else if (cmd_line_boot_archive[0] != '\0') {
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India (void) strncpy(tmpname, cmd_line_boot_archive,
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India strlen(cmd_line_boot_archive)+1);
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India fn = tmpname;
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India (void) strncpy(tmpname, def_boot_archive,
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India strlen(def_boot_archive)+1);
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India fn = tmpname;
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India (void) strncpy(tmpname, def_miniroot,
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India strlen(def_miniroot)+1);
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India fn = tmpname;
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India if (fn != tmpname || tmpname[0] == '\0') {
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India printf("Possible buffer overrun, "
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India "entering boot prompt\n");
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India prom_enter_mon();
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India }
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India if (strncmp(fn, def_miniroot,
75e04b8fa133ad94dc80199131b8ec3e2729bdafphaniram rampura krishnamurthy - Sun Microsystems - Bangalore India strlen(def_miniroot)+1) != 0)
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * this function does not return if successful.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * bpath is the boot device path buffer.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * bargs is the boot arguments buffer.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje/*ARGSUSED*/
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setjebootprog(char *bpath, char *bargs, boolean_t user_specified_filename)
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * kernname (default-name) might have changed if mountroot() called
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * boot_nfs_mountroot(), and it called set_default_filename().
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje printf("standalone = `%s', args = `%s'\n", filename, bargs);
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje return (1);