/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
#include <sys/param.h>
#include <sys/promif.h>
#include <sys/platnames.h>
#define MAXNMLEN 80 /* # of chars in an impl-arch name */
/*
* Return the manufacturer name for this platform.
*
* This is exported (solely) as the rootnode name property in
* the kernel's devinfo tree via the 'mfg-name' boot property.
* So it's only used by boot, not the boot blocks.
*/
char *
get_mfg_name(void)
{
pnode_t n;
int len;
static char mfgname[MAXNMLEN];
if ((n = prom_rootnode()) != OBP_NONODE &&
(len = prom_getproplen(n, OBP_NAME)) > 0 && len < MAXNMLEN) {
(void) prom_getprop(n, OBP_NAME, mfgname);
mfgname[len] = '\0'; /* broken clones don't terminate name */
return (mfgname);
}
return ("Unknown");
}