summaryrefslogtreecommitdiffstats
path: root/prebuilt/common/bin/compcache
blob: bb3a349574de8477ea476df71e3e14d61594749a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/system/bin/sh
#
# Compcache manager
# shade@chemlab.org (cyanogen)
#

isramzswap="$(find /system/lib/modules/ -name ramzswap.ko 2>/dev/null)"
isramzswapbuiltin="$(ls -l /dev/block/ramzswap0 2>/dev/null)"

if [ -n "$isramzswap$isramzswapbuiltin" ] ; then
    MODULE=ramzswap
    DEV=/dev/block/ramzswap0
else
    DEV=/dev/block/zram0
    MODULE=zram
    SYSFS_PATH=/sys/block/zram0
fi

case "$1" in
   start)
      echo 3 > /proc/sys/vm/drop_caches
      echo 30 > /proc/sys/vm/swappiness
      modprobe $MODULE
      if [ $MODULE = ramzswap ]; then
          rzscontrol $DEV --disksize_kb=$2 --init
      else
          echo "$(($2 * 1024))" > $SYSFS_PATH/disksize
          mkswap $DEV >/dev/null
      fi
      swapon $DEV
   ;;

   stop)
      swapoff $DEV >/dev/null 2>&1
      rmmod $MODULE >/dev/null 2>&1
   ;;
   stats)
     if [ $MODULE = ramzswap ]; then
         rzscontrol $DEV --stats
     else
         cd $SYSFS_PATH && for i in * ; do
             echo -n "$i:" 
             cat $i
         done
     fi
   ;;
   *)
      echo "Usage: $0 {start <size>|stop|stats}"
      exit 1
esac

exit 0