1 /* 2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab 3 * Copyright (C) 2009 - DIGITEO - Allan CORNET 4 * 5 * Copyright (C) 2012 - 2016 - Scilab Enterprises 6 * 7 * This file is hereby licensed under the terms of the GNU GPL v2.0, 8 * pursuant to article 5.3.4 of the CeCILL v.2.1. 9 * This file was originally licensed under the terms of the CeCILL v2.1, 10 * and continues to be available under such terms. 11 * For more information, see the COPYING file which you should have received 12 * along with this program. 13 * 14 */ 15 16 /*--------------------------------------------------------------------------*/ 17 #include <string.h> 18 #include <stdio.h> 19 #ifdef _MSC_VER 20 #include <windows.h> 21 #include "../../../libs/GetWindowsVersion/GetWindowsVersion.h" 22 #else 23 #include <sys/utsname.h> 24 #endif 25 #include "getos.h" 26 #include "sci_malloc.h" 27 #include "os_string.h" 28 29 /*--------------------------------------------------------------------------*/ getOSFullName(void)30char *getOSFullName(void) 31 { 32 #ifndef _MSC_VER 33 struct utsname uname_pointer; 34 uname(&uname_pointer); 35 36 return os_strdup(uname_pointer.sysname); 37 #else 38 return os_strdup("Windows"); 39 #endif 40 } 41 /*--------------------------------------------------------------------------*/ getOSRelease(void)42char *getOSRelease(void) 43 { 44 #ifndef _MSC_VER 45 struct utsname uname_pointer; 46 uname(&uname_pointer); 47 48 return os_strdup(uname_pointer.release); 49 #else 50 switch (GetWindowsVersion()) 51 { 52 case OS_ERROR : 53 default : 54 return os_strdup("Unknow"); 55 break; 56 case OS_WIN32_WINDOWS_NT_3_51 : 57 return os_strdup("NT 3.51"); 58 break; 59 case OS_WIN32_WINDOWS_NT_4_0 : 60 return os_strdup("NT 4.0"); 61 break; 62 case OS_WIN32_WINDOWS_95 : 63 return os_strdup("95"); 64 break; 65 case OS_WIN32_WINDOWS_98 : 66 return os_strdup("98"); 67 break; 68 case OS_WIN32_WINDOWS_Me : 69 return os_strdup("ME"); 70 break; 71 case OS_WIN32_WINDOWS_2000 : 72 return os_strdup("2000"); 73 break; 74 case OS_WIN32_WINDOWS_XP : 75 return os_strdup("XP"); 76 break; 77 case OS_WIN32_WINDOWS_XP_64 : 78 return os_strdup("XP x64"); 79 break; 80 case OS_WIN32_WINDOWS_SERVER_2003 : 81 return os_strdup("Server 2003"); 82 break; 83 case OS_WIN32_WINDOWS_SERVER_2003_R2 : 84 return os_strdup("Server 2003 R2"); 85 break; 86 case OS_WIN32_WINDOWS_SERVER_2003_64 : 87 return os_strdup("Server 2003 x64"); 88 break; 89 case OS_WIN32_WINDOWS_VISTA : 90 return os_strdup("Vista"); 91 break; 92 case OS_WIN32_WINDOWS_VISTA_64 : 93 return os_strdup("Vista x64"); 94 break; 95 case OS_WIN32_WINDOWS_SERVER_2008 : 96 return os_strdup("Server 2008"); 97 break; 98 case OS_WIN32_WINDOWS_SERVER_2008_64 : 99 return os_strdup("Server 2008 x64"); 100 break; 101 case OS_WIN32_WINDOWS_SEVEN : 102 return os_strdup("Seven"); 103 break; 104 case OS_WIN32_WINDOWS_SEVEN_64 : 105 return os_strdup("Seven x64"); 106 break; 107 case OS_WIN32_WINDOWS_SEVEN_SERVER : 108 return os_strdup("Seven Server"); 109 break; 110 case OS_WIN32_WINDOWS_SEVEN_SERVER_64 : 111 return os_strdup("Seven Server x64"); 112 break; 113 case OS_WIN32_WINDOWS_EIGHT: 114 return os_strdup("8"); 115 break; 116 case OS_WIN32_WINDOWS_EIGHT_64: 117 return os_strdup("8 x64"); 118 break; 119 case OS_WIN32_WINDOWS_EIGHT_SERVER: 120 return os_strdup("8 Server"); 121 break; 122 case OS_WIN32_WINDOWS_EIGHT_SERVER_64: 123 return os_strdup("8 Server x64"); 124 break; 125 } 126 #endif 127 } 128 /*--------------------------------------------------------------------------*/ 129