blob: 933cf9e98eb29c97bcf2dda865903ec6542a1ca6 [file] [log] [blame]
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
#include <signal.h>
#include <sys/types.h>
#include <unistd.h>
#include <pthread.h>
#include <termios.h>
#include <time.h>
#include <sys/ioctl.h>
#include <dlfcn.h>
#include <stdint.h>
#include <stdbool.h>
typedef void (*GSW_PM_WAKEUPCALLBACK)(int32_t wakeup_in);
void tmp_callback(int32_t wakeup_in)
{
printf("wackout value %d\n",wakeup_in);
}
int32_t (*gsw_autosleep_enable)(void);
int32_t (*gsw_autosleep_disenable)(void);
int32_t (*gsw_pm_sdk_init)(GSW_PM_WAKEUPCALLBACK );
int32_t (*gsw_pm_enter_sleep)(const char *gsw_wakelock_name);
int32_t (*gsw_pm_exit_sleep)(const char *gsw_wakelock_name);
void (*gsw_modem_log_sync)(void);
const char *tmp_name = "pm_test_lock";
void *dlHandle_pm;
char *lynqLib_pm = "/lib/libgsw_lib.so";
void user_help(void)
{
printf("\t1 autosleep_enable\n"
"\t2 autosleep_disenable \n"
"\t3 pm_sdk_init\n"
"\t4 pm_enter_sleep\n"
"\t5 pm_exit_sleep\n"
"\t6 modem_log_sync\n"
"please input operator: >> ");
}
int main(void)
{
int ret;
int opt = 0;
dlHandle_pm = dlopen(lynqLib_pm, RTLD_NOW);
while(1)
{
printf("=========PM main=========\n");
user_help();
if (scanf("%d", &opt) != 1)
printf("input error,please check it");
while(getchar()!='\n');
switch (opt)
{
case 1:
{
gsw_autosleep_enable=(int32_t(*)())dlsym(dlHandle_pm, "gsw_autosleep_enable");
ret = gsw_autosleep_enable();
if(ret < 0)
{
printf("gsw_autosleep_enable FAIL.\n");
return -1;
}
printf("gsw_autosleep_enable success.\n");
return 0;
}
case 2:
{
gsw_autosleep_disenable=(int32_t(*)())dlsym(dlHandle_pm, "gsw_autosleep_disenable");
ret = gsw_autosleep_disenable();
if(ret < 0)
{
printf("gsw_autosleep_disenable FAIL.\n");
return -1;
}
printf("gsw_autosleep_disenable success.\n");
return 0;
}
case 3:
{
gsw_pm_sdk_init=(int32_t(*)(GSW_PM_WAKEUPCALLBACK ))dlsym(dlHandle_pm, "gsw_pm_sdk_init");
ret = gsw_pm_sdk_init(tmp_callback);
if(ret < 0)
{
printf("gsw_pm_sdk_init FAIL.\n");
return -1;
}
printf("gsw_pm_sdk_init success.\n");
break;
}
case 4:
{
gsw_pm_enter_sleep=(int32_t(*)(const char *gsw_wakelock_name))dlsym(dlHandle_pm, "gsw_pm_enter_sleep");
ret = gsw_pm_enter_sleep(tmp_name);
if(ret < 0)
{
printf("gsw_pm_enter_sleep FAIL.\n");
return -1;
}
printf("gsw_pm_enter_sleep success.\n");
return 0;
}
case 5:
{
gsw_pm_exit_sleep=(int32_t(*)(const char *gsw_wakelock_name))dlsym(dlHandle_pm, "gsw_pm_exit_sleep");
ret = gsw_pm_exit_sleep(tmp_name);
if(ret < 0)
{
printf("gsw_pm_exit_sleep FAIL.\n");
return -1;
}
printf("gsw_pm_exit_sleep success.\n");
break;
}
case 6:
{
gsw_modem_log_sync=(void(*)())dlsym(dlHandle_pm, "gsw_modem_log_sync");
gsw_modem_log_sync();
printf("gsw_modem_log_sync success.\n");
return 0;
}
}
}
return 0;
}