ts tweaks for _dyn
[ginge.git] / loader / override.c
index 3d0d0cc..5927bc2 100644 (file)
@@ -39,16 +39,17 @@ static const struct dev_fd_t takeover_devs[] = {
   { "/dev/fb1",     FAKEDEV_FB1 },
   { "/dev/fb/1",    FAKEDEV_FB1 },
   { "/dev/mmuhack", FAKEDEV_MMUHACK },
-  { "/dev/tty",     FAKEDEV_TTY0 },
+  { "/dev/tty",     FAKEDEV_TTY },
   { "/dev/tty0",    FAKEDEV_TTY0 },
   { "/dev/touchscreen/wm97xx", FAKEDEV_WM97XX },
   { "/etc/pointercal",         FAKEDEV_WM97XX_P },
+  { "/dev/input/mice", -ENODEV },
 #ifdef PND
-  { "/dev/input/event*", -1 }, // hide for now, may cause dupe events
+  { "/dev/input/event*", -ENODEV }, // hide for now, may cause dupe events
 #endif
 };
 
-static long w_open_raw(const char *pathname, int flags, mode_t mode)
+long w_open_raw(const char *pathname, int flags, mode_t mode)
 {
   long ret;
   int i;
@@ -70,8 +71,11 @@ static long w_open_raw(const char *pathname, int flags, mode_t mode)
     }
   }
 
-  if (i == ARRAY_SIZE(takeover_devs))
-    ret = g_open_raw(pathname, flags, mode);
+  if (i == ARRAY_SIZE(takeover_devs)) {
+    const char *w_path = emu_wrap_path(pathname);
+    ret = g_open_raw(w_path, flags, mode);
+    emu_wrap_path_free(w_path, pathname);
+  }
 
   if (ret >= 0) {
     for (i = 0; emu_interesting_fds[i].name != NULL; i++) {