Loading libcutils/ashmem-dev.c +14 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,7 @@ * ashmem-enabled kernel. See ashmem-sim.c for the "fake" tmp-based version, * ashmem-enabled kernel. See ashmem-sim.c for the "fake" tmp-based version, * used by the simulator. * used by the simulator. */ */ #define LOG_TAG "ashmem" #include <errno.h> #include <errno.h> #include <fcntl.h> #include <fcntl.h> Loading @@ -32,6 +33,7 @@ #include <linux/ashmem.h> #include <linux/ashmem.h> #include <cutils/ashmem.h> #include <cutils/ashmem.h> #include <log/log.h> #define ASHMEM_DEVICE "/dev/ashmem" #define ASHMEM_DEVICE "/dev/ashmem" Loading Loading @@ -92,6 +94,7 @@ static int __ashmem_is_ashmem(int fd) return -1; return -1; } } rdev = 0; /* Too much complexity to sniff __ashmem_rdev */ if (S_ISCHR(st.st_mode) && st.st_rdev) { if (S_ISCHR(st.st_mode) && st.st_rdev) { pthread_mutex_lock(&__ashmem_lock); pthread_mutex_lock(&__ashmem_lock); rdev = __ashmem_rdev; rdev = __ashmem_rdev; Loading @@ -114,6 +117,17 @@ static int __ashmem_is_ashmem(int fd) } } } } if (rdev) { ALOGE("illegal fd=%d mode=0%o rdev=%d:%d expected 0%o %d:%d", fd, st.st_mode, major(st.st_rdev), minor(st.st_rdev), S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IRGRP, major(rdev), minor(rdev)); } else { ALOGE("illegal fd=%d mode=0%o rdev=%d:%d expected 0%o", fd, st.st_mode, major(st.st_rdev), minor(st.st_rdev), S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IRGRP); } errno = ENOTTY; errno = ENOTTY; return -1; return -1; } } Loading Loading
libcutils/ashmem-dev.c +14 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,7 @@ * ashmem-enabled kernel. See ashmem-sim.c for the "fake" tmp-based version, * ashmem-enabled kernel. See ashmem-sim.c for the "fake" tmp-based version, * used by the simulator. * used by the simulator. */ */ #define LOG_TAG "ashmem" #include <errno.h> #include <errno.h> #include <fcntl.h> #include <fcntl.h> Loading @@ -32,6 +33,7 @@ #include <linux/ashmem.h> #include <linux/ashmem.h> #include <cutils/ashmem.h> #include <cutils/ashmem.h> #include <log/log.h> #define ASHMEM_DEVICE "/dev/ashmem" #define ASHMEM_DEVICE "/dev/ashmem" Loading Loading @@ -92,6 +94,7 @@ static int __ashmem_is_ashmem(int fd) return -1; return -1; } } rdev = 0; /* Too much complexity to sniff __ashmem_rdev */ if (S_ISCHR(st.st_mode) && st.st_rdev) { if (S_ISCHR(st.st_mode) && st.st_rdev) { pthread_mutex_lock(&__ashmem_lock); pthread_mutex_lock(&__ashmem_lock); rdev = __ashmem_rdev; rdev = __ashmem_rdev; Loading @@ -114,6 +117,17 @@ static int __ashmem_is_ashmem(int fd) } } } } if (rdev) { ALOGE("illegal fd=%d mode=0%o rdev=%d:%d expected 0%o %d:%d", fd, st.st_mode, major(st.st_rdev), minor(st.st_rdev), S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IRGRP, major(rdev), minor(rdev)); } else { ALOGE("illegal fd=%d mode=0%o rdev=%d:%d expected 0%o", fd, st.st_mode, major(st.st_rdev), minor(st.st_rdev), S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IRGRP); } errno = ENOTTY; errno = ENOTTY; return -1; return -1; } } Loading