OSDN Git Service

pmem: Add cache flush ioctl for pmem buffers
authorDima Zavin <dima@android.com>
Tue, 2 Mar 2010 23:47:57 +0000 (15:47 -0800)
committerArve Hjønnevåg <arve@android.com>
Thu, 22 Jul 2010 22:12:15 +0000 (15:12 -0700)
Change-Id: I9156bad829e8c65087f122b48cc57638902fab12
Signed-off-by: Dima Zavin <dima@android.com>
drivers/misc/pmem.c
include/linux/android_pmem.h

index 55c4de8..7f3b532 100644 (file)
@@ -1148,6 +1148,16 @@ static long pmem_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                DLOG("connect\n");
                return pmem_connect(arg, file);
                break;
+       case PMEM_CACHE_FLUSH:
+               {
+                       struct pmem_region region;
+                       DLOG("flush\n");
+                       if (copy_from_user(&region, (void __user *)arg,
+                                          sizeof(struct pmem_region)))
+                               return -EFAULT;
+                       flush_pmem_file(file, region.offset, region.len);
+                       break;
+               }
        default:
                if (pmem[id].ioctl)
                        return pmem[id].ioctl(file, cmd, arg);
index 398997c..f633621 100644 (file)
@@ -33,6 +33,7 @@
  * struct (with offset set to 0). 
  */
 #define PMEM_GET_TOTAL_SIZE    _IOW(PMEM_IOCTL_MAGIC, 7, unsigned int)
+#define PMEM_CACHE_FLUSH       _IOW(PMEM_IOCTL_MAGIC, 8, unsigned int)
 
 struct android_pmem_platform_data
 {