SCP: More thorough OS version display in SHOW VERSION
This commit is contained in:
parent
94a0629134
commit
f285d52b1c
1 changed files with 48 additions and 7 deletions
55
scp.c
55
scp.c
|
@ -4370,14 +4370,55 @@ if (flag) {
|
||||||
fprintf (st, "\n\t\tOS: OpenVMS %s %s", arch, __VMS_VERSION);
|
fprintf (st, "\n\t\tOS: OpenVMS %s %s", arch, __VMS_VERSION);
|
||||||
}
|
}
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
fprintf (st, "\n\t\tOS: Windows: ");
|
if (1) {
|
||||||
fflush (st);
|
char *proc_id = getenv ("PROCESSOR_IDENTIFIER");
|
||||||
system ("ver");
|
char *arch = getenv ("PROCESSOR_ARCHITECTURE");
|
||||||
system ("echo \t\t%PROCESSOR_IDENTIFIER% - %PROCESSOR_ARCHITECTURE%-%PROCESSOR_ARCHITEW6432%");
|
char *procs = getenv ("NUMBER_OF_PROCESSORS");
|
||||||
|
char *proc_level = getenv ("PROCESSOR_LEVEL");
|
||||||
|
char *proc_rev = getenv ("PROCESSOR_REVISION");
|
||||||
|
char *proc_arch3264 = getenv ("PROCESSOR_ARCHITEW6432");
|
||||||
|
char *tmpnam = _tempnam (NULL, "simh-ver");
|
||||||
|
char vercmd[PATH_MAX+1];
|
||||||
|
char osversion[PATH_MAX+1];
|
||||||
|
FILE *f;
|
||||||
|
|
||||||
|
sprintf (vercmd, "ver >%s", tmpnam);
|
||||||
|
system (vercmd);
|
||||||
|
f = fopen (tmpnam, "r");
|
||||||
|
memset (osversion, 0, sizeof(osversion));
|
||||||
|
do {
|
||||||
|
if (NULL == fgets (osversion, sizeof(osversion)-1, f))
|
||||||
|
break;
|
||||||
|
sim_trim_endspc (osversion);
|
||||||
|
} while (osversion[0] == '\0');
|
||||||
|
fclose (f);
|
||||||
|
remove (tmpnam);
|
||||||
|
free (tmpnam);
|
||||||
|
fprintf (st, "\n\t\tOS: %s", osversion);
|
||||||
|
fprintf (st, "\n\t\tArchitecture: %s%s%s, Processors: %s", arch, proc_arch3264 ? " on " : "", proc_arch3264 ? proc_arch3264 : "", procs);
|
||||||
|
fprintf (st, "\n\t\tProcessor Id: %s, Level: %s, Revision: %s", proc_id ? proc_id : "", proc_level ? proc_level : "", proc_rev ? proc_rev : "");
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
fprintf (st, "\n\t\tOS: ");
|
if (1) {
|
||||||
fflush (st);
|
char *tmpnam = tempnam (NULL, "simh-ver");
|
||||||
system ("uname -a");
|
char vercmd[2*PATH_MAX+1];
|
||||||
|
char osversion[2*PATH_MAX+1];
|
||||||
|
FILE *f;
|
||||||
|
|
||||||
|
sprintf (vercmd, "uname -a >%s", tmpnam);
|
||||||
|
system (vercmd);
|
||||||
|
f = fopen (tmpnam, "r");
|
||||||
|
memset (osversion, 0, sizeof(osversion));
|
||||||
|
do {
|
||||||
|
if (NULL == fgets (osversion, sizeof(osversion)-1, f))
|
||||||
|
break;
|
||||||
|
sim_trim_endspc (osversion);
|
||||||
|
} while (osversion[0] == '\0');
|
||||||
|
fclose (f);
|
||||||
|
remove (tmpnam);
|
||||||
|
free (tmpnam);
|
||||||
|
fprintf (st, "\n\t\tOS: %s", osversion);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#if defined(SIM_GIT_COMMIT_ID)
|
#if defined(SIM_GIT_COMMIT_ID)
|
||||||
|
|
Loading…
Add table
Reference in a new issue