[FEATURE] check containers 57/39457/7
authorVitaliy Cherepanov <v.cherepanov@samsung.com>
Fri, 15 May 2015 10:09:18 +0000 (13:09 +0300)
committerVitaliy Cherepanov <v.cherepanov@samsung.com>
Fri, 15 May 2015 10:49:08 +0000 (13:49 +0300)
Change-Id: I6effbc19abb603cd61849b3c828dcba9b82bfc74
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
daemon/buffer.c
scripts/start.sh

index e304cd4..f62130b 100644 (file)
@@ -101,8 +101,23 @@ static void close_buf_ctl(void)
 
 static int insert_buf_modules(void)
 {
-       if (system("cd /opt/swap/sdk && ./start.sh")) {
-               LOGE("Cannot insert swap modules\n");
+       int res;
+       FILE *f = NULL;
+       char cmd[PATH_MAX];
+
+       res = system("cd /opt/swap/sdk && ./start.sh");
+       if (res != 0) {
+               LOGE("Cannot insert swap modules. code <%d>\n", res);
+               /* decode error code */
+               snprintf(cmd, sizeof(cmd), "/opt/swap/sdk/start.sh %d", res);
+               f = popen(cmd, "r");
+               if (f) {
+                       while (NULL != fgets(cmd, sizeof(cmd), f))
+                               LOGE("start.sh >%s\n", cmd);
+                       fclose(f);
+               } else {
+                       LOGE("Cannot open start.sh\n");
+               }
                return -1;
        }
 
index 4e92846..6172fb5 100755 (executable)
@@ -1,24 +1,47 @@
 #!/bin/sh
 
+#ERROR CODES
+ERR_CONTAINER_NOT_SUPPORTED=1
+ERR_NO=0
+
+ERR_CONTAINER_NOT_SUPPORTED_ST="SWAP is not supported devices with container feature"
+ERR_NO_ST="No errors"
+
+if [ "$1" != "" ];then
+    echo "Error code <$1>. TODO decode it."
+    exit $1
+fi
+
+PATH=$PATH:/usr/sbin/
+
+config_file="/etc/config/model-config.xml"
+if [ -e $config_file ]; then
+       grep -i "feature/container[^>]*>[[:blank:]]*false" "$config_file" > /dev/null
+       if [ $? -ne 0 ]; then
+               echo $ERR_CONTAINER_NOT_SUPPORTED_ST
+               exit $ERR_CONTAINER_NOT_SUPPORTED
+       fi
+fi
+
 if [ ! -e /sys/kernel/debug/swap/writer/raw ]; then
 
-    insmod swap_master.ko || exit 1
-    insmod swap_buffer.ko || exit 1  # buffer is loaded
-    insmod swap_ksyms.ko || exit 1
-    insmod swap_driver.ko || exit 1  # driver is loaded
-    insmod swap_writer.ko || exit 1
-    insmod swap_kprobe.ko || exit 1  # kprobe is loaded
-    insmod swap_uprobe.ko || exit 1  # uprobe is loaded
-    insmod swap_us_manager.ko || exit 1  # us_manager is loaded
-    insmod swap_ks_features.ko || exit 1  # ks_features is loaded
-    insmod swap_sampler.ko || exit 1
-    insmod swap_energy.ko || exit 1
-    insmod swap_message_parser.ko || exit 1  # parser is loaded
-    insmod swap_retprobe.ko || exit 1 # retprobe is loaded
-    insmod swap_fbiprobe.ko || exit 1  # fbi is loaded
-    insmod swap_webprobe.ko || exit 1 # webprobe is loaded
-    insmod swap_task_data.ko || exit 1
-    insmod swap_preload.ko || exit 1
+    insmod swap_master.ko           || exit 101
+    insmod swap_buffer.ko           || exit 102  # buffer is loaded
+    insmod swap_ksyms.ko            || exit 103
+    insmod swap_driver.ko           || exit 104  # driver is loaded
+    insmod swap_writer.ko           || exit 105
+    insmod swap_kprobe.ko           || exit 106  # kprobe is loaded
+    insmod swap_uprobe.ko           || exit 107  # uprobe is loaded
+    insmod swap_us_manager.ko       || exit 108  # us_manager is loaded
+    insmod swap_ks_features.ko      || exit 109  # ks_features is loaded
+    insmod swap_sampler.ko          || exit 110
+    insmod swap_energy.ko           || exit 111
+    insmod swap_message_parser.ko   || exit 112  # parser is loaded
+    insmod swap_retprobe.ko         || exit 113  # retprobe is loaded
+    insmod swap_fbiprobe.ko         || exit 114  # fbi is loaded
+    insmod swap_webprobe.ko         || exit 115  # webprobe is loaded
+    insmod swap_task_data.ko        || exit 116
+    insmod swap_preload.ko          || exit 117
 
 fi
 
@@ -68,3 +91,5 @@ then
        echo 179 > `ls /sys/kernel/debug/swap/energy/lcd/*/min_num` &&
        echo 1000000 > `ls /sys/kernel/debug/swap/energy/lcd/*/min_denom`
 fi
+
+exit $ERR_NO