Fix build error.

Change-Id: Iae79f10caded40208dd6fde9f75d5f29a07ef729
diff --git a/mbtk/include/mbtk/mbtk_ril_api.h b/mbtk/include/mbtk/mbtk_ril_api.h
index 2613f97..b3143f9 100755
--- a/mbtk/include/mbtk/mbtk_ril_api.h
+++ b/mbtk/include/mbtk/mbtk_ril_api.h
@@ -1079,7 +1079,7 @@
 *
 * Restarting takes effect after execution.
 */
-int mbtk_sms_cmgd_get(mbtk_ril_handle* handle, char * cmdg);
+mbtk_ril_err_enum mbtk_sms_cmgd_get(mbtk_ril_handle* handle, char * cmdg);
 
 /*
 * Set sms cmgl.
diff --git a/mbtk/libmbtk_lib/sleep/mbtk_sleep.c b/mbtk/libmbtk_lib/sleep/mbtk_sleep.c
old mode 100644
new mode 100755
index 6ae159e..edb0e80
--- a/mbtk/libmbtk_lib/sleep/mbtk_sleep.c
+++ b/mbtk/libmbtk_lib/sleep/mbtk_sleep.c
@@ -8,9 +8,11 @@
 #include "mbtk_log.h"
 #include "mbtk_utils.h"
 
+static bool autosleep_enable = FALSE;
+
 static mbtk_lock_name_s mbtk_lock_name[LOCK_MAX_SIZE]={0};
 
-#define EPOLL_SIZE_HINT    128 
+#define EPOLL_SIZE_HINT    128
 int mEpollFd = -1;
 mbtk_info_callback_func g_sleep_timer_cb;
 int g_sleep_timer_fd = 0;
@@ -183,23 +185,23 @@
 {
     struct epoll_event eventItems[EPOLL_SIZE_HINT];
     int eventCount = epoll_wait(mEpollFd, eventItems, EPOLL_SIZE_HINT, -1);
-        
+
     int timerFd = -1;
     int eventIndex = 0;
     uint64_t readCounter;
- 
+
     if (eventCount < 0) {
         LOGE("Poll failed with an unexpected error: %s\n", strerror(errno));
         return (void*)-1;
     }
- 
+
     for (; eventIndex < eventCount; ++eventIndex) {
         timerFd = eventItems[eventIndex].data.fd;
- 
+
         int retRead = read(timerFd, &readCounter, sizeof(uint64_t));
         if (retRead < 0) {
             LOGE("read %d failed...\n", timerFd);
- 
+
             continue;
         } else {
 
@@ -209,7 +211,7 @@
             LOGI("suspend_timer_success\n");
         }
     }
-    
+
     return 0;
 }
 
@@ -245,13 +247,13 @@
         return -1;
     }
     mEpollFd = epoll_create(EPOLL_SIZE_HINT);
-    
+
     g_sleep_timer_fd = timerfd_create(CLOCK_BOOTTIME_ALARM, 0);
     if (g_sleep_timer_fd < 0) {
         LOGE("Could not create timer fd: %s\n", strerror(errno));
         return 0;
     }
- 
+
     struct itimerspec timerSet;
     timerSet.it_interval.tv_sec = 0;
     timerSet.it_interval.tv_nsec = 0;
@@ -262,7 +264,7 @@
         close(g_sleep_timer_fd);
         return 0;
     }
- 
+
     struct epoll_event eventItem;
     memset(&eventItem, 0, sizeof(eventItem));
     eventItem.events = EPOLLIN | EPOLLET;
diff --git a/mbtk/libmbtk_lib_v2/sleep/mbtk_sleep.c b/mbtk/libmbtk_lib_v2/sleep/mbtk_sleep.c
index 25c3997..f78b736 100755
--- a/mbtk/libmbtk_lib_v2/sleep/mbtk_sleep.c
+++ b/mbtk/libmbtk_lib_v2/sleep/mbtk_sleep.c
@@ -1,9 +1,22 @@
+#include <pthread.h>
+#include <sys/epoll.h>
+#include <sys/timerfd.h>
+
+
+
 #include "mbtk_sleep.h"
 #include "mbtk_log.h"
 #include "mbtk_utils.h"
 
+static bool autosleep_enable = FALSE;
+
 static mbtk_lock_name_s mbtk_lock_name[LOCK_MAX_SIZE]={0};
 
+#define EPOLL_SIZE_HINT    128
+int mEpollFd = -1;
+mbtk_info_callback_func g_sleep_timer_cb;
+int g_sleep_timer_fd = 0;
+
 
 int mbtk_autosuspend_enable(char enable)
 {
@@ -168,5 +181,106 @@
     return 0;
 }
 
+static void* suspend_timer_thread_run(void* arg)
+{
+    struct epoll_event eventItems[EPOLL_SIZE_HINT];
+    int eventCount = epoll_wait(mEpollFd, eventItems, EPOLL_SIZE_HINT, -1);
+
+    int timerFd = -1;
+    int eventIndex = 0;
+    uint64_t readCounter;
+
+    if (eventCount < 0) {
+        LOGE("Poll failed with an unexpected error: %s\n", strerror(errno));
+        return (void*)-1;
+    }
+
+    for (; eventIndex < eventCount; ++eventIndex) {
+        timerFd = eventItems[eventIndex].data.fd;
+
+        int retRead = read(timerFd, &readCounter, sizeof(uint64_t));
+        if (retRead < 0) {
+            LOGE("read %d failed...\n", timerFd);
+
+            continue;
+        } else {
+
+            g_sleep_timer_cb(NULL, 0);
+            mbtk_autosuspend_enable(0);
+            g_sleep_timer_fd = 0;
+            LOGI("suspend_timer_success\n");
+        }
+    }
+
+    return 0;
+}
+
+
+
+static int suspend_timer_timer_init(void)
+{
+    pthread_attr_t thread_attr;
+    pthread_t net_led_thread_id;
+    pthread_attr_init(&thread_attr);
+    if(pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED))
+    {
+        LOGE("[suspend] pthread_attr_setdetachstate() fail.");
+        return -1;
+    }
+
+    if(pthread_create(&net_led_thread_id, &thread_attr, suspend_timer_thread_run, NULL))
+    {
+        LOGE("[suspend] pthread_create() fail.");
+        return -1;
+    }
+
+    pthread_attr_destroy(&thread_attr);
+    return 0;
+}
+
+
+int mbtk_suspend_timer_set(int time, mbtk_info_callback_func cb)
+{
+    if(0 < g_sleep_timer_fd)
+    {
+        LOGE("suspend timer has been init");
+        return -1;
+    }
+    mEpollFd = epoll_create(EPOLL_SIZE_HINT);
+
+    g_sleep_timer_fd = timerfd_create(CLOCK_BOOTTIME_ALARM, 0);
+    if (g_sleep_timer_fd < 0) {
+        LOGE("Could not create timer fd: %s\n", strerror(errno));
+        return 0;
+    }
+
+    struct itimerspec timerSet;
+    timerSet.it_interval.tv_sec = 0;
+    timerSet.it_interval.tv_nsec = 0;
+    timerSet.it_value.tv_sec = time;
+    timerSet.it_value.tv_nsec = 0;
+    if (timerfd_settime(g_sleep_timer_fd, 0, &timerSet, NULL) != 0) {
+        LOGE("timerfd_settime failed: %s\n", strerror(errno));
+        close(g_sleep_timer_fd);
+        return 0;
+    }
+
+    struct epoll_event eventItem;
+    memset(&eventItem, 0, sizeof(eventItem));
+    eventItem.events = EPOLLIN | EPOLLET;
+    eventItem.data.fd = g_sleep_timer_fd;
+    int result = epoll_ctl(mEpollFd, EPOLL_CTL_ADD, g_sleep_timer_fd, &eventItem);
+    if (result != 0) {
+        LOGE("Could not add timer fd(%d) to epoll instance: %s\n", g_sleep_timer_fd, strerror(errno));
+    }
+
+    mbtk_autosuspend_enable(1);
+    g_sleep_timer_cb = cb;
+    suspend_timer_timer_init();
+
+
+    return 0;
+}
+