notaz.gp2x.de
/
ginge.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ts tweaks for _dyn
[ginge.git]
/
loader
/
override.c
diff --git
a/loader/override.c
b/loader/override.c
index
1e0d415
..
5927bc2
100644
(file)
--- a/
loader/override.c
+++ b/
loader/override.c
@@
-39,14
+39,17
@@
static const struct dev_fd_t takeover_devs[] = {
{ "/dev/fb1", FAKEDEV_FB1 },
{ "/dev/fb/1", FAKEDEV_FB1 },
{ "/dev/mmuhack", FAKEDEV_MMUHACK },
{ "/dev/fb1", FAKEDEV_FB1 },
{ "/dev/fb/1", FAKEDEV_FB1 },
{ "/dev/mmuhack", FAKEDEV_MMUHACK },
- { "/dev/tty", FAKEDEV_TTY
0
},
+ { "/dev/tty", FAKEDEV_TTY },
{ "/dev/tty0", FAKEDEV_TTY0 },
{ "/dev/tty0", FAKEDEV_TTY0 },
+ { "/dev/touchscreen/wm97xx", FAKEDEV_WM97XX },
+ { "/etc/pointercal", FAKEDEV_WM97XX_P },
+ { "/dev/input/mice", -ENODEV },
#ifdef PND
#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
};
#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;
{
long ret;
int i;
@@
-68,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++) {
if (ret >= 0) {
for (i = 0; emu_interesting_fds[i].name != NULL; i++) {
@@
-137,12
+143,12
@@
long w_read_raw(int fd, void *buf, size_t count)
{
long ret;
{
long ret;
- if (
fd == FAKEDEV_GPIO
)
- ret = emu_
read_gpiodev(
buf, count);
+ if (
FAKEDEV_MEM <= fd && fd < FAKEDEV_FD_BOUNDARY
)
+ ret = emu_
do_read(fd,
buf, count);
else
ret = g_read_raw(fd, buf, count);
else
ret = g_read_raw(fd, buf, count);
- //strace("read(%d, %p, %
l
d) = %ld\n", fd, buf, count, ret);
+ //strace("read(%d, %p, %
z
d) = %ld\n", fd, buf, count, ret);
return ret;
}
return ret;
}
@@
-282,6
+288,7
@@
static ssize_t w_readlink(const char *path, char *buf, size_t bufsiz)
{
long ret;
{
long ret;
+#ifndef DL
if (path != NULL && strncmp(path, "/proc/", 6) == 0
&& strcmp(strrchr(path, '/'), "/exe") == 0)
{
if (path != NULL && strncmp(path, "/proc/", 6) == 0
&& strcmp(strrchr(path, '/'), "/exe") == 0)
{
@@
-290,6
+297,7
@@
static ssize_t w_readlink(const char *path, char *buf, size_t bufsiz)
ret = bufsiz;
}
else
ret = bufsiz;
}
else
+#endif
ret = g_readlink_raw(path, buf, bufsiz);
strace("readlink(%s, %s, %zd) = %ld\n", path, buf, bufsiz, ret);
ret = g_readlink_raw(path, buf, bufsiz);
strace("readlink(%s, %s, %zd) = %ld\n", path, buf, bufsiz, ret);