blob: 933cf9e98eb29c97bcf2dda865903ec6542a1ca6 [file] [log] [blame]
b.liu68a94c92025-05-24 12:53:41 +08001#include <stdio.h>
2#include <string.h>
3#include <strings.h>
4#include <stdlib.h>
5#include <errno.h>
6#include <fcntl.h>
7#include <signal.h>
8#include <sys/types.h>
9#include <unistd.h>
10#include <pthread.h>
11#include <termios.h>
12#include <time.h>
13#include <sys/ioctl.h>
14#include <dlfcn.h>
15#include <stdint.h>
16#include <stdbool.h>
17
18typedef void (*GSW_PM_WAKEUPCALLBACK)(int32_t wakeup_in);
19
20void tmp_callback(int32_t wakeup_in)
21{
22 printf("wackout value %d\n",wakeup_in);
23}
24
25int32_t (*gsw_autosleep_enable)(void);
26int32_t (*gsw_autosleep_disenable)(void);
27int32_t (*gsw_pm_sdk_init)(GSW_PM_WAKEUPCALLBACK );
28int32_t (*gsw_pm_enter_sleep)(const char *gsw_wakelock_name);
29int32_t (*gsw_pm_exit_sleep)(const char *gsw_wakelock_name);
30void (*gsw_modem_log_sync)(void);
31
32const char *tmp_name = "pm_test_lock";
33
34void *dlHandle_pm;
35char *lynqLib_pm = "/lib/libgsw_lib.so";
36
37void user_help(void)
38{
39 printf("\t1 autosleep_enable\n"
40 "\t2 autosleep_disenable \n"
41 "\t3 pm_sdk_init\n"
42 "\t4 pm_enter_sleep\n"
43 "\t5 pm_exit_sleep\n"
44 "\t6 modem_log_sync\n"
45 "please input operator: >> ");
46}
47
48int main(void)
49{
50 int ret;
51 int opt = 0;
52 dlHandle_pm = dlopen(lynqLib_pm, RTLD_NOW);
53 while(1)
54 {
55 printf("=========PM main=========\n");
56 user_help();
57 if (scanf("%d", &opt) != 1)
58 printf("input error,please check it");
59 while(getchar()!='\n');
60 switch (opt)
61 {
62 case 1:
63 {
64 gsw_autosleep_enable=(int32_t(*)())dlsym(dlHandle_pm, "gsw_autosleep_enable");
65 ret = gsw_autosleep_enable();
66 if(ret < 0)
67 {
68 printf("gsw_autosleep_enable FAIL.\n");
69 return -1;
70 }
71 printf("gsw_autosleep_enable success.\n");
72 return 0;
73 }
74 case 2:
75 {
76 gsw_autosleep_disenable=(int32_t(*)())dlsym(dlHandle_pm, "gsw_autosleep_disenable");
77 ret = gsw_autosleep_disenable();
78 if(ret < 0)
79 {
80 printf("gsw_autosleep_disenable FAIL.\n");
81 return -1;
82 }
83 printf("gsw_autosleep_disenable success.\n");
84 return 0;
85 }
86 case 3:
87 {
88 gsw_pm_sdk_init=(int32_t(*)(GSW_PM_WAKEUPCALLBACK ))dlsym(dlHandle_pm, "gsw_pm_sdk_init");
89 ret = gsw_pm_sdk_init(tmp_callback);
90 if(ret < 0)
91 {
92 printf("gsw_pm_sdk_init FAIL.\n");
93 return -1;
94 }
95 printf("gsw_pm_sdk_init success.\n");
96 break;
97 }
98 case 4:
99 {
100 gsw_pm_enter_sleep=(int32_t(*)(const char *gsw_wakelock_name))dlsym(dlHandle_pm, "gsw_pm_enter_sleep");
101 ret = gsw_pm_enter_sleep(tmp_name);
102 if(ret < 0)
103 {
104 printf("gsw_pm_enter_sleep FAIL.\n");
105 return -1;
106 }
107 printf("gsw_pm_enter_sleep success.\n");
108 return 0;
109 }
110 case 5:
111 {
112 gsw_pm_exit_sleep=(int32_t(*)(const char *gsw_wakelock_name))dlsym(dlHandle_pm, "gsw_pm_exit_sleep");
113 ret = gsw_pm_exit_sleep(tmp_name);
114 if(ret < 0)
115 {
116 printf("gsw_pm_exit_sleep FAIL.\n");
117 return -1;
118 }
119 printf("gsw_pm_exit_sleep success.\n");
120 break;
121 }
122 case 6:
123 {
124 gsw_modem_log_sync=(void(*)())dlsym(dlHandle_pm, "gsw_modem_log_sync");
125 gsw_modem_log_sync();
126 printf("gsw_modem_log_sync success.\n");
127 return 0;
128 }
129 }
130 }
131 return 0;
132}