-/*
+/*
* Emulator
*
* Copyright (C) 2012, 2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact:
+ * Contact:
* SeokYeon Hwang <syeon.hwang@samsung.com>
* MunKyu Im <munkyu.im@samsung.com>
* GiWoong Kim <giwoong.kim@samsung.com>
MULTI_DEBUG_CHANNEL (emulator, osutil);
+
+static qemu_timeval tv = { 0, 0 };
+static time_t ti;
+static char buf_time[64];
+static HANDLE g_hMapFile;
+static char *g_pBuf;
+
extern char tizen_target_img_path[];
-extern int tizen_base_port;
static const char *pactempfile = ".autoproxy";
void make_vm_lock_os(void)
{
- HANDLE hMapFile;
- char *pBuf;
char *port_in_use;
char *shared_memory;
+ int base_port;
+ base_port = get_emul_vm_base_port();
shared_memory = g_strdup_printf("%s", tizen_target_img_path);
- port_in_use = g_strdup_printf("%d", tizen_base_port);
- hMapFile = CreateFileMapping(
+ port_in_use = g_strdup_printf("%d", base_port);
+ g_hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, /* use paging file */
NULL, /* default security */
PAGE_READWRITE, /* read/write access */
0, /* maximum object size (high-order DWORD) */
50, /* maximum object size (low-order DWORD) */
port_in_use); /* name of mapping object */
- if (hMapFile == NULL) {
+ if (g_hMapFile == NULL) {
ERR("Could not create file mapping object (%d).\n", GetLastError());
return;
}
- pBuf = MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 50);
- if (pBuf == NULL) {
+ g_pBuf = MapViewOfFile(g_hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 50);
+ if (g_pBuf == NULL) {
ERR("Could not map view of file (%d).\n", GetLastError());
- CloseHandle(hMapFile);
+ CloseHandle(g_hMapFile);
return;
}
- CopyMemory((PVOID)pBuf, shared_memory, strlen(shared_memory));
+ CopyMemory((PVOID)g_pBuf, shared_memory, strlen(shared_memory));
free(port_in_use);
free(shared_memory);
}
+void remove_vm_lock_os(void)
+{
+ if (g_pBuf != NULL) {
+ UnmapViewOfFile(g_pBuf);
+ }
+ if (g_hMapFile != NULL) {
+ CloseHandle(g_hMapFile);
+ }
+}
+
+
void set_bin_path_os(gchar * exec_argv)
{
gchar link_path[PATH_MAX] = { 0, };
g_strlcat(bin_path, "\\", PATH_MAX);
}
+int get_number_of_processors(void)
+{
+ SYSTEM_INFO sysi;
+ int num_processors = 0;
+
+ GetSystemInfo(&sysi);
+ TRACE("Processor type: %d, Core number: %d\n",
+ sysi.dwProcessorType, sysi.dwNumberOfProcessors);
+
+ num_processors = sysi.dwNumberOfProcessors;
+ if (num_processors < 1) {
+ num_processors = 1;
+ }
+
+ return num_processors;
+}
+
void print_system_info_os(void)
{
INFO("* Windows\n");
SYSTEM_INFO sysi;
ZeroMemory(&sysi, sizeof(SYSTEM_INFO));
+#if 0
GetSystemInfo(&sysi);
INFO("* Processor type : %d, Number of processors : %d\n",
sysi.dwProcessorType, sysi.dwNumberOfProcessors);
+#endif
+ get_number_of_processors();
MEMORYSTATUSEX memInfo;
memInfo.dwLength = sizeof(MEMORYSTATUSEX);
memInfo.ullTotalPhys / 1024, memInfo.ullAvailPhys / 1024);
}
+char *get_timeofday(void)
+{
+ qemu_gettimeofday(&tv);
+ ti = tv.tv_sec;
+
+ struct tm *ptm = localtime(&ti);
+ strftime(buf_time, sizeof(buf_time),
+ "%H:%M:%S", ptm);
+
+ return buf_time;
+}
+
static int get_auto_proxy(BYTE *url, char *http_proxy, char *https_proxy, char *ftp_proxy, char *socks_proxy)
{
char type[MAXLEN];
ERR("pac file is not wrong! It could be the wrong pac address or pac file format\n");
fclose(fp_pacfile);
}
- }
+ }
else {
ERR("fail to get pacfile fp\n");
return -1;
lRet = RegQueryValueEx(hKey, "AutoConfigURL", 0, NULL, url, &dwLength);
if (lRet == ERROR_SUCCESS && dwLength != 0) {
get_auto_proxy(url, http_proxy, https_proxy, ftp_proxy, socks_proxy);
- RegCloseKey(hKey);
+ RegCloseKey(hKey);
return 0;
}
}
}
if (*(char*)proxyenable == 0) {
free(proxyenable);
- RegCloseKey(hKey);
+ RegCloseKey(hKey);
return 0;
}
if (lRet != ERROR_SUCCESS && dwLength == 0) {
ERR("Failed to query value from from %s\n",
"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings");
- RegCloseKey(hKey);
+ RegCloseKey(hKey);
return 0;
}
proxyserver = (BYTE*)malloc(dwLength);
if (proxyserver == NULL) {
ERR( "Failed to allocate a buffer\n");
- RegCloseKey(hKey);
+ RegCloseKey(hKey);
return 0;
}
RegCloseKey(hKey);
return 0;
}
-
+
if((char*)proxyserver != NULL) {
INFO("proxy value: %s\n", (char*)proxyserver);
real_proxy = malloc(MAXLEN);
-
+
for(p = strtok((char*)proxyserver, ";"); p; p = strtok(NULL, ";")){
if(strstr(p, HTTP_PROTOCOL)) {
remove_string(p, real_proxy, HTTP_PROTOCOL);