From 761d71df82d538f2d53db5d8e088e386a1d04fb8 Mon Sep 17 00:00:00 2001 From: marc Date: Wed, 27 Dec 1995 16:29:55 +0000 Subject: [PATCH] added get{Arch,Os}{Name,Num}() CVS patchset: 83 CVS date: 1995/12/27 16:29:55 --- lib/misc.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/misc.h | 5 +++++ 2 files changed, 66 insertions(+) diff --git a/lib/misc.c b/lib/misc.c index 737fca6..05a9125 100644 --- a/lib/misc.c +++ b/lib/misc.c @@ -1,9 +1,12 @@ #include #include #include +#include #include "misc.h" +static void init_arch_os(void); + char ** splitString(char * str, int length, char sep) { char * s, * source, * dest; char ** list; @@ -56,3 +59,61 @@ int exists(char * filespec) { return 1; } + +static int osnum = -1; +static int archnum = -1; +static char *osname = NULL; +static char *archname = NULL; + +int getOsNum(void) +{ + init_arch_os(); + return osnum; +} + +int getArchNum(void) +{ + init_arch_os(); + return archnum; +} + +char *getOsName(void) +{ + init_arch_os(); + return osname; +} + +char *getArchName(void) +{ + init_arch_os(); + return archname; +} + +static void init_arch_os(void) +{ + struct utsname un; + + if (osnum >= 0) { + return; + } + + uname(&un); + if ((!strcmp(un.machine, "i586")) || + (!strcmp(un.machine, "i486")) || + (!strcmp(un.machine, "i386"))) { + archnum = 1; + archname = "i386"; + } else if (!strcmp(un.machine, "axp")) { + archnum = 2; + archname = "axp"; + } else { + /* XXX unknown arch - how should we handle this? */ + } + + if (!strcmp(un.sysname, "Linux")) { + osnum = 1; + osname = "Linux"; + } else { + /* XXX unknown os - how should we handle this? */ + } +} diff --git a/lib/misc.h b/lib/misc.h index 444b3f8..341dd8f 100644 --- a/lib/misc.h +++ b/lib/misc.h @@ -6,4 +6,9 @@ void freeSplitString(char ** list); int exists(char * filespec); +int getOsNum(void); +int getArchNum(void); +char *getOsName(void); +char *getArchName(void); + #endif -- 2.7.4