1
0
Files
irix-657m-src/eoe/cmd/sysinfo/sysinfo.c
2022-09-29 17:59:04 +03:00

117 lines
2.6 KiB
C

/**************************************************************************
* *
* Copyright (C) 1988, Silicon Graphics, Inc. *
* *
* These coded instructions, statements, and computer programs contain *
* unpublished proprietary information of Silicon Graphics, Inc., and *
* are protected by Federal copyright law. They may not be disclosed *
* to third parties or copied or duplicated in any form, in whole or *
* in part, without the prior written consent of Silicon Graphics, Inc. *
* *
**************************************************************************/
#ident "$Revision: 1.13 $"
#include <locale.h>
#include <pfmt.h>
#include <sys/systeminfo.h>
#include <sys/syssgi.h>
#include "stdio.h"
unsigned sysid();
/*
* Print out unique system id
*/
main( argc, argv )
int argc;
char *argv[];
{
register int i;
register int c;
short sflag = 0;
short verbose = 0;
int ret_val;
char systemid[ MAXSYSIDSIZE ];
(void)setlocale(LC_ALL, "");
(void)setcat("uxsgicore");
(void)setlabel("UX:sysinfo");
while((c = getopt(argc, argv, "sv")) != -1)
switch(c) {
case 's': /* print sum */
sflag++;
break;
case 'v':
verbose++;
break;
default:
Usage();
/* NOTREACHED */
}
if (sflag) {
/* if there was an error (ret_val < 0) or no bytes were copied
(ret_val ==0) no serial number was retrieved */
if ((ret_val = sysinfo(SI_HW_SERIAL, systemid, MAXSYSIDSIZE)) >= 0) {
printf("%s\n", systemid);
} else {
fprintf(stderr, "Could not retrieve system serial number.\n");
exit(1);
}
}
else if (verbose) {
module_info_t mod_info;
int num_modules;
if ((num_modules = get_num_modules()) < 0) {
fprintf(stderr, "Could not retrieve system serial number information.\n");
exit(1);
}
for (i = 0; i < num_modules; i++) {
if ((ret_val = get_module_info(i, &mod_info, sizeof(module_info_t))) >= 0) {
printf("%llu ",mod_info.serial_num);
if (verbose > 1) {
printf("%s ",
mod_info.serial_str);
}
printf("Module: %d\n",mod_info.mod_num);
}
else {
fprintf(stderr, "Could not retrieve system serial number"
" for module index %d.\n",i);
}
}
}
else {
/* GET_SYSID returns nonzero on error */
if (!syssgi( GET_SYSID, systemid)) {
pfmt(stdout, MM_NOSTD, ":7:System ID:\n");
for (i = 0; i < MAXSYSIDSIZE; i++) {
printf("%2.2x ", systemid[i] & 0xff);
if ((i % 16) == 15)
printf("\n");
}
} else {
fprintf(stderr, "Couldn't retrieve serial number.\n");
exit(1);
}
}
exit(0);
}
Usage()
{
pfmt(stderr, MM_INFO, ":6:Usage: sysinfo [-s][-v][-vv]\n");
exit(-1);
}