This is os-mach.c in view mode; [Download] [Up]
/* * Copyright (c) 1992 Michael A. Cooper. * This software may be freely distributed provided it is not sold for * profit and the author is credited appropriately. */ #ifndef lint static char *RCSid = "$Header: /src/common/usc/bin/sysinfo/RCS/os-mach.c,v 1.4 1992/04/26 23:32:06 mcooper Exp $"; #endif /* * $Log: os-mach.c,v $ * Revision 1.4 1992/04/26 23:32:06 mcooper * Add Copyright notice * * Revision 1.3 1992/04/17 01:07:59 mcooper * More de-linting * * Revision 1.2 1992/03/22 01:05:09 mcooper * Major cleanup and re-org. * * Revision 1.1 1992/03/01 23:28:16 mcooper * Initial revision * */ /* * Mach specific functions */ #include <stdio.h> #include "system.h" #include "defs.h" #if defined(HAVE_HOST_INFO) #include <sys/host_info.h> /* * Use the host_info() call to obtain type of CPU. */ extern char *GetCpuTypeFromHostInfo() { extern NAMETAB CpuTypeTab[]; struct host_basic_info basic_info; unsigned int count = HOST_BASIC_INFO_COUNT; register int i; if (host_info(host_self(), HOST_BASIC_INFO, (host_info_t) &basic_info, &count) != KERN_SUCCESS) { return((char *)NULL); } for (i = 0; CpuTypeTab[i].name; ++i) { if (CpuTypeTab[i].value == basic_info.cpu_type) return(CpuTypeTab[i].name); } return((char *) NULL); } /* * Use the host_info() call to obtain the model of CPU. */ extern char *GetModelFromHostInfo() { extern NAMETAB ModelTabMach[]; struct host_basic_info basic_info; unsigned int count = HOST_BASIC_INFO_COUNT; register int i; if (host_info(host_self(), HOST_BASIC_INFO, (host_info_t) &basic_info, &count) != KERN_SUCCESS) { return((char *)NULL); } for (i = 0; ModelTabMach[i].name; ++i) { if (ModelTabMach[i].value == basic_info.cpu_subtype) return(ModelTabMach[i].name); } return((char *) NULL); } /* * Get our application architecture name. */ extern char *GetAppArchFromHostInfo() { return(GetCpuTypeFromHostInfo()); } /* * Get our kernel architecture name. */ extern char *GetKernArchFromHostInfo() { return(GetCpuTypeFromHostInfo()); } /* * Get amount of memory. */ extern char *GetMemoryFromHostInfo() { struct host_basic_info BasicInfo; unsigned int count = HOST_BASIC_INFO_COUNT; static char Buf[BUFSIZ]; int Amount = -1; if (host_info(host_self(), HOST_BASIC_INFO, (host_info_t) &BasicInfo, &count) == KERN_SUCCESS) { Amount = BasicInfo.memory_size / MBYTES; (void) sprintf(Buf, "%d MB", Amount); return(Buf); } else return((char *) NULL); } /* * Get kernel version string. */ extern char *GetKernelVersionFromHostInfo() { static char Version[BUFSIZ]; register char *p; Version[0] = C_NULL; if (host_kernel_version(host_self(), Version) != KERN_SUCCESS) { if (Debug) Error("host_kernel_version() failed: %s.\n", SYSERR); } #if defined(KERNSTR_END) if (Version[0]) if ((p = index(Version, KERNSTR_END)) != NULL) *p = C_NULL; #endif /* KERNSTR_END */ return((Version[0]) ? Version : (char *) NULL); } /* * Get OS version */ extern char *GetOSVersionFromHostInfo() { static char Buf[BUFSIZ]; struct machine_info Info; if (xxx_host_info(host_self(), (machine_info_t) &Info) == KERN_SUCCESS) { (void) sprintf(Buf, "%d.%d", Info.major_version, Info.minor_version); return(Buf); } return((char *) NULL); } #endif /* HAVE_HOST_INFO */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.