From: Sven M. Hallberg Date: Tue, 26 Aug 2014 19:14:55 +0000 (+0200) Subject: Merge branch 'feature/windows' of github.com:everbase/catta into feature/windows X-Git-Url: http://git.meshlink.io/?p=catta;a=commitdiff_plain;h=c43decab1ba903a086a9baf9908f8fb55700c97b;hp=038bf844bf100245b8a330823ed44752b1159db7 Merge branch 'feature/windows' of github.com:everbase/catta into feature/windows --- diff --git a/src/compat/windows/wincompat.c b/src/compat/windows/wincompat.c index 985ca6d..3aa2b2e 100644 --- a/src/compat/windows/wincompat.c +++ b/src/compat/windows/wincompat.c @@ -3,12 +3,32 @@ int uname(struct utsname *buf) { + SYSTEM_INFO si; + const char *arch = "unknown"; + memset(buf, 0, sizeof(struct utsname)); + + // operating system strncpy(buf->sysname, "Windows", sizeof(buf->sysname)-1); + strncpy(buf->release, "unknown", sizeof(buf->sysname)-1); // we don't need it + strncpy(buf->version, "unknown", sizeof(buf->sysname)-1); // we don't need it + + // computer (node) name if(GetComputerName(buf->nodename, sizeof(buf->nodename)-1) == 0) { errno = EFAULT; return -1; } + // hardware type + GetSystemInfo(&si); + switch(si.wProcessorArchitecture) { + case PROCESSOR_ARCHITECTURE_AMD64: arch = "amd64"; break; + case PROCESSOR_ARCHITECTURE_ARM: arch = "arm"; break; + case PROCESSOR_ARCHITECTURE_IA64: arch = "ia64"; break; + case PROCESSOR_ARCHITECTURE_INTEL: arch = "x86"; break; + default: arch = "unknown"; + } + strncpy(buf->machine, arch, sizeof(buf->machine)-1); + return 0; }