Files
player/Project_App_Calendar/App_Src/main/global.c

85 lines
936 B
C
Raw Normal View History

2025-06-27 00:32:57 +08:00
#include "global.h"
#include "main_inc.h"
2025-07-05 19:47:28 +08:00
//<2F><>ȡ<EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>r9<72>Ĵ<EFBFBD><C4B4><EFBFBD>
2025-06-27 00:32:57 +08:00
void *get_r9(void);
void set_r9(void *r9);
2025-07-05 19:47:28 +08:00
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
2025-06-27 00:32:57 +08:00
static void * const g_r9;
2025-07-05 19:47:28 +08:00
//ָ<><D6B8>app<70><70><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
static app_struct *g_me;
2025-07-05 19:47:28 +08:00
//<2F><>const<73><74><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD>ֵ
2025-06-27 00:32:57 +08:00
__asm static void save_const(void *const_addr,u32 value)
{
str r1,[r0]
bx lr
}
__asm void *get_r9(void)
{
mov r0,r9
bx lr
}
__asm void set_r9(void *r9)
{
mov r9 ,r0
bx lr
}
void *global_in(void)
{
void *t=get_r9();
set_r9(g_r9);
return t;
}
void global_out(void *r9)
{
set_r9(r9);
}
void global_init(app_struct *me)
{
void *t=get_r9();
2025-07-05 19:47:28 +08:00
//ʹ<>ú<EFBFBD><C3BA><EFBFBD>ǿ<EFBFBD>и<EFBFBD>ֵ
2025-06-27 00:32:57 +08:00
save_const((void *)&g_r9,(u32)t);
g_me=me;
2025-07-05 19:47:28 +08:00
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9A9>ϵͳ<CFB5><CDB3><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>app
2025-06-27 00:32:57 +08:00
extern int __app_exit(void *);
g_me->exit=__app_exit;
}
2025-07-05 19:47:28 +08:00
//app<70><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
void global_run_start(void)
{
if(g_me) g_me->run_state++;
}
2025-07-05 19:47:28 +08:00
//app<70><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
void global_run_exit(void)
{
if(g_me)
{
if(g_me->run_state) g_me->run_state--;
}
}