SDL_Linked_Version()->minor,
SDL_Linked_Version()->patch);
#endif
+
print_system_info_os();
}
void maruskin_sdl_quit(void)
{
+ INFO("maru sdl quit\n");
+
/* remove multi-touch finger points */
- get_emul_multi_touch_state()->multitouch_enable = 0;
- clear_finger_slot();
cleanup_multi_touch_state();
#if 0
/* base + 2 = shared memory key */
int mykey = get_emul_vm_base_port() + 2;
- INFO("shared memory key: %d, vga ram_size : %d\n", mykey, shm_size);
+ INFO("shared memory key: %d, size: %d bytes\n", mykey, shm_size);
/* make a shared framebuffer */
skin_shmid = shmget((key_t)mykey, (size_t)shm_size, 0666 | IPC_CREAT);
maru_register_exit_msg(MARU_EXIT_UNKNOWN,
(char*) "Cannot launch this VM.\n"
- "Shared memory is not enough.");
- exit(0);
+ "Failed to get identifier of the shared memory segment.");
+ exit(1);
}
shared_memory = shmat(skin_shmid, (void*)0, 0);
if (shared_memory == (void *)-1) {
ERR("shmat failed\n");
perror("maru_vga: ");
+
+ maru_register_exit_msg(MARU_EXIT_UNKNOWN,
+ (char*) "Cannot launch this VM.\n"
+ "Failed to attach the shared memory segment.");
exit(1);
}
/* default screen */
memset(shared_memory, 0x00, (size_t)shm_size);
- printf("Memory attached at %X\n", (int)shared_memory);
+ printf("Memory attached at 0x%X\n", (int)shared_memory);
}
void maruskin_shm_quit(void)
{
+ INFO("maru shm quit\n");
+
if (shmdt(shared_memory) == -1) {
ERR("shmdt failed\n");
perror("maru_vga: ");
}
+ shared_memory = NULL;
if (shmctl(skin_shmid, IPC_RMID, 0) == -1) {
- ERR("shmctl failed\n");
+ INFO("segment was already removed\n");
perror("maru_vga: ");
}
}
void print_system_info_os(void)
{
- INFO("* Mac\n");
+ INFO("* Mac\n");
/* uname */
INFO("* Host machine uname :\n");
if (sysctl(mib, 2, &sys_num, &len, NULL, 0) >= 0) {
INFO("* Total memory : %llu bytes\n", sys_num);
}
+
+ /* java version */
+ INFO("* Java version :\n");
+ char lspci_cmd[MAXLEN] = "java -version 2>> ";
+ strcat(lspci_cmd, log_path);
+
+ fflush(stdout);
+ if(system(lspci_cmd) < 0) {
+ INFO("system function command '%s' \
+ returns error !", lspci_cmd);
+ }
}
static int get_auto_proxy(char *http_proxy, char *https_proxy, char *ftp_proxy, char *socks_proxy)
/* depends on building */
INFO("* QEMU build machine linux kernel version : (%d, %d, %d)\n",
- LINUX_VERSION_CODE >> 16,
- (LINUX_VERSION_CODE >> 8) & 0xff,
- LINUX_VERSION_CODE & 0xff);
+ LINUX_VERSION_CODE >> 16,
+ (LINUX_VERSION_CODE >> 8) & 0xff,
+ LINUX_VERSION_CODE & 0xff);
/* depends on launching */
struct utsname host_uname_buf;
INFO("* PCI devices :\n");
char lspci_cmd[MAXLEN] = "lspci >> ";
strcat(lspci_cmd, log_path);
+
+ fflush(stdout);
if(system(lspci_cmd) < 0) {
INFO("system function command '%s' \
returns error !", lspci_cmd);
JNIEXPORT jint JNICALL Java_org_tizen_emulator_skin_EmulatorShmSkin_shmget
- (JNIEnv *env, jobject obj, jint shmkey, jint vga_ram_size)
+ (JNIEnv *env, jobject obj, jint shmkey, jint size)
{
- fprintf(stdout, "share.c: shared memory key = %d, size=%d\n", shmkey, vga_ram_size);
+ fprintf(stdout, "share.c: shared memory key=%d, size=%d bytes\n",
+ shmkey, size);
fflush(stdout);
- shmid = shmget((key_t)shmkey, (size_t)vga_ram_size, 0666 | IPC_CREAT);
+ shmid = shmget((key_t)shmkey, (size_t)size, 0666 | IPC_CREAT);
if (shmid == -1) {
fprintf(stderr, "share.c: shmget failed\n");
fflush(stderr);
return 2;
}
+ fprintf(stdout, "Memory attached at 0x%X\n", (int)shared_memory);
+ fflush(stdout);
+
return 0;
}
JNIEXPORT jint JNICALL Java_org_tizen_emulator_skin_EmulatorShmSkin_shmdt
(JNIEnv *env, jobject obj)
{
+ fprintf(stdout, "share.c: clean up the shared memory\n");
+ fflush(stdout);
+
/* Lastly, the shared memory is detached */
if (shmdt(shared_memory) == -1) {
fprintf(stderr, "share.c: shmdt failed\n");
perror("share.c: ");
return 1;
}
+ shared_memory = NULL;
/*
if (shmctl(shmid, IPC_RMID, 0) == -1) {
- fprintf(stderr, "share.c: shmctl failed\n");
- fflush(stderr);
+ fprintf(stdout, "share.c: segment was already removed\n");
+ fflush(stdout);
perror("share.c: ");
+ return 2;
}
*/
return -1;
}
- (*env)->SetIntArrayRegion(env, array, 0, len, shared_memory);
+ if (shared_memory != NULL) {
+ (*env)->SetIntArrayRegion(env, array, 0, len, shared_memory);
+ }
return len;
}
currentState.getCurrentResolutionHeight() * 4);
logger.info("shmget native function returned " + result);
+ if (result == 1) {
+ logger.severe("Failed to get identifier of the shared memory segment.");
+ SkinUtil.openMessage(shell, null,
+ "Cannot launch this VM.\n" +
+ "Failed to get identifier of the shared memory segment.",
+ SWT.ICON_ERROR, config);
+ System.exit(-1);
+ } else if (result == 2) {
+ logger.severe("Failed to attach the shared memory segment.");
+ SkinUtil.openMessage(shell, null,
+ "Cannot launch this VM.\n" +
+ "Failed to attach the shared memory segment.",
+ SWT.ICON_ERROR, config);
+ System.exit(-1);
+ }
+
/* update lcd thread */
pollThread = new PollFBThread(
currentState.getCurrentResolutionWidth(),
}
protected void skinFinalize() {
+ logger.info("skinFinalize");
+
skinComposer.composerFinalize();
}
}
public void shutdown() {
+ logger.info("shutdown the skin process");
isShutdownRequested = true;
System.setProperty("apple.laf.useScreenMenuBar", "true");
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Emulator");
}
-
+
String simpleMsg = getSimpleMsg(args);
if (simpleMsg != null) {
/* just show one message box. that's all. */
logger = SkinLogger.getSkinLogger(EmulatorSkinMain.class).getLogger();
logger.info("!!! Start Emualtor Skin !!!");
+ logger.info("java.version: " + System.getProperty("java.version"));
+ logger.info("java vendor: " + System.getProperty("java.vendor"));
+ logger.info("vm version: " + System.getProperty("java.vm.version"));
+ logger.info("vm vendor: " + System.getProperty("java.vm.vendor"));
+ logger.info("vm name: " + System.getProperty("java.vm.name"));
+ logger.info("os name: " + System.getProperty("os.name"));
+ logger.info("os arch: " + System.getProperty("os.arch"));
+ logger.info("os version: " + System.getProperty("os.version"));
+
/* startup arguments parsing */
Map<String, String> argsMap = parsArgs(args);