X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fsparc64%2Fsolaris%2Fmisc.c;h=036d5f2234acf2bd2ee9d3ec02e031ebdf4b8f54;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=ebd420743255ad7ecee036b73d6105f4dadae606;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/arch/sparc64/solaris/misc.c b/arch/sparc64/solaris/misc.c index ebd420743..036d5f223 100644 --- a/arch/sparc64/solaris/misc.c +++ b/arch/sparc64/solaris/misc.c @@ -4,6 +4,7 @@ * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) */ +#include #include #include #include @@ -11,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -24,7 +24,6 @@ #include #include #include -#include #include "conv.h" @@ -196,17 +195,14 @@ static char *machine(void) } } -static char *platform(char *buffer, int sz) +static char *platform(char *buffer) { - struct device_node *dp = of_find_node_by_path("/"); int len; *buffer = 0; - len = strlen(dp->name); - if (len > sz) - len = sz; - memcpy(buffer, dp->name, len); - buffer[len] = 0; + len = prom_getproperty(prom_root_node, "name", buffer, 256); + if(len > 0) + buffer[len] = 0; if (*buffer) { char *p; @@ -218,22 +214,16 @@ static char *platform(char *buffer, int sz) return "sun4u"; } -static char *serial(char *buffer, int sz) +static char *serial(char *buffer) { - struct device_node *dp = of_find_node_by_path("/options"); + int node = prom_getchild(prom_root_node); int len; + node = prom_searchsiblings(node, "options"); *buffer = 0; - if (dp) { - char *val = of_get_property(dp, "system-board-serial#", &len); - - if (val && len > 0) { - if (len > sz) - len = sz; - memcpy(buffer, val, len); - buffer[len] = 0; - } - } + len = prom_getproperty(node, "system-board-serial#", buffer, 256); + if(len > 0) + buffer[len] = 0; if (!*buffer) return "4512348717234"; else @@ -316,8 +306,8 @@ asmlinkage int solaris_sysinfo(int cmd, u32 buf, s32 count) case SI_MACHINE: r = machine(); break; case SI_ARCHITECTURE: r = "sparc"; break; case SI_HW_PROVIDER: r = "Sun_Microsystems"; break; - case SI_HW_SERIAL: r = serial(buffer, sizeof(buffer)); break; - case SI_PLATFORM: r = platform(buffer, sizeof(buffer)); break; + case SI_HW_SERIAL: r = serial(buffer); break; + case SI_PLATFORM: r = platform(buffer); break; case SI_SRPC_DOMAIN: r = ""; break; case SI_VERSION: r = "Generic"; break; default: return -EINVAL; @@ -424,7 +414,7 @@ asmlinkage int solaris_procids(int cmd, s32 pid, s32 pgid) Solaris setpgrp and setsid? */ ret = sys_setpgid(0, 0); if (ret) return ret; - proc_clear_tty(current); + current->signal->tty = NULL; return process_group(current); } case 2: /* getsid */