decomp module static init sections

This commit is contained in:
red031000 2020-07-27 14:38:25 +01:00
parent 7c2a848ecc
commit b0cf87ca36
No known key found for this signature in database
GPG Key ID: A3C87CFF2DC536C2
36 changed files with 3739 additions and 3722 deletions

View File

@ -569,8 +569,9 @@ Overlay MODULE_11
{
##Battles##
After MODULE_08
Object module_11.o
Object module_11_thumb1.o
Object module_11_sinit.o
Object module_11_thumb2.o
}
Overlay MODULE_12
@ -638,8 +639,8 @@ Overlay MODULE_21
{
##Pokétch Clock##
After MODULE_20
Object module_21.o
Object module_21_sinit.o
Object module_21.o
}
Overlay MODULE_22
@ -652,8 +653,8 @@ Overlay MODULE_23
{
##Pokétch Calculator##
After MODULE_20
Object module_23.o
Object module_23_sinit.o
Object module_23.o
}
Overlay MODULE_24
@ -680,31 +681,31 @@ Overlay MODULE_27
{
##Pokétch Party##
After MODULE_20
Object module_27.o
Object module_27_sinit.o
Object module_27.o
}
Overlay MODULE_28
{
##Friendship Checker##
After MODULE_20
Object module_28.o
Object module_28_sinit.o
Object module_28.o
}
Overlay MODULE_29
{
##Dowsing Machine##
After MODULE_20
Object module_29.o
Object module_29_sinit.o
Object module_29.o
}
Overlay MODULE_30
{
After MODULE_20
Object module_30.o
Object module_30_sinit.o
Object module_30.o
}
Overlay MODULE_31
@ -717,8 +718,8 @@ Overlay MODULE_31
Overlay MODULE_32
{
After MODULE_20
Object module_32.o
Object module_32_sinit.o
Object module_32.o
}
Overlay MODULE_33
@ -730,8 +731,8 @@ Overlay MODULE_33
Overlay MODULE_34
{
After MODULE_20
Object module_34.o
Object module_34_sinit.o
Object module_34.o
}
Overlay MODULE_35
@ -744,8 +745,8 @@ Overlay MODULE_35
Overlay MODULE_36
{
After MODULE_20
Object module_36.o
Object module_36_sinit.o
Object module_36.o
}
Overlay MODULE_37
@ -765,8 +766,8 @@ Overlay MODULE_38
Overlay MODULE_39
{
After MODULE_20
Object module_39.o
Object module_39_sinit.o
Object module_39.o
}
Overlay MODULE_40
@ -778,31 +779,31 @@ Overlay MODULE_40
Overlay MODULE_41
{
After MODULE_20
Object module_41.o
Object module_41_sinit.o
Object module_41.o
}
Overlay MODULE_42
{
##Marking Map##
After MODULE_20
Object module_42.o
Object module_42_sinit.o
Object module_42.o
}
Overlay MODULE_43
{
##Berry Searcher##
After MODULE_20
Object module_43.o
Object module_43_sinit.o
Object module_43.o
}
Overlay MODULE_44
{
After MODULE_20
Object module_44.o
Object module_44_sinit.o
Object module_44.o
}
Overlay MODULE_45
@ -821,8 +822,8 @@ Overlay MODULE_47
{
##Link Searcher##
After MODULE_20
Object module_47.o
Object module_47_sinit.o
Object module_47.o
}
Overlay MODULE_48

View File

@ -6915,9 +6915,28 @@
.extern MOD8_0222D578
.extern MOD09_022186F0
.extern MOD11_0222D5C0
.extern MOD11_0222D7F8
.extern MOD11_0222D840
.extern MOD11_0222D88C
.extern MOD11_0222D944
.extern MOD11_0222D980
.extern MOD11_0222E520
.extern MOD11_0222F0D4
.extern MOD11_0222F29C
.extern MOD11_0222F4E4
.extern MOD11_0222F93C
.extern MOD11_0222F988
.extern MOD11_0222FABC
.extern MOD11_0222FB04
.extern MOD11_0222FC38
.extern MOD11_0222FC80
.extern MOD11_0222FE58
.extern MOD11_0222FE94
.extern MOD11_0222FEC0
.extern MOD11_0222FF68
.extern MOD11_0222FF74
.extern MOD11_0222FF78
.extern MOD11_0222FF7C
.extern MOD11_0222FF84
.extern MOD11_0222FF88
.extern MOD11_0222FFC8
@ -6936,24 +6955,40 @@
.extern MOD11_02230188
.extern MOD11_02230214
.extern MOD11_02230218
.extern MOD11_0223021C
.extern MOD11_0223022C
.extern MOD11_02230260
.extern MOD11_02230270
.extern MOD11_02230290
.extern MOD11_02230294
.extern MOD11_022302BC
.extern MOD11_02230370
.extern MOD11_02230C68
.extern MOD11_02230D38
.extern MOD11_02230E44
.extern MOD11_02230E54
.extern MOD11_02230EC8
.extern MOD11_02230FA8
.extern MOD11_02231238
.extern MOD11_022312D0
.extern MOD11_02231338
.extern MOD11_02231344
.extern MOD11_02231350
.extern MOD11_0223135C
.extern MOD11_02231368
.extern MOD11_02231374
.extern MOD11_02231390
.extern MOD11_02231410
.extern MOD11_02231474
.extern MOD11_02231484
.extern MOD11_022314A0
.extern MOD11_022314B0
.extern MOD11_02231504
.extern MOD11_02231534
.extern MOD11_02231678
.extern MOD11_0223D1DC
.extern MOD11_0223D238
.extern MOD11_0223D284
.extern MOD11_02243420
.extern MOD11_02244248
.extern MOD11_02245D38
@ -6968,12 +7003,29 @@
.extern MOD11_02249D90
.extern MOD11_02249E04
.extern MOD11_02249E58
.extern MOD11_0224B240
.extern MOD11_0224B310
.extern MOD11_0224C12C
.extern MOD11_0224C474
.extern MOD11_0224C54C
.extern MOD11_0224CA64
.extern MOD11_0224CA94
.extern MOD11_0224CB38
.extern MOD11_0224CB54
.extern MOD11_02252DB4
.extern MOD11_0225377C
.extern MOD11_02253A58
.extern MOD11_02253A70
.extern MOD11_02254820
.extern MOD11_022567E0
.extern MOD11_022583D8
.extern MOD11_02258450
.extern MOD11_022584AC
.extern MOD11_022584D4
.extern MOD11_02258658
.extern MOD11_022586BC
.extern MOD11_02258820
.extern MOD11_02258958
.extern MOD11_0225D3EC
.extern MOD11_0225D45C
.extern MOD11_0225D484
@ -6988,6 +7040,10 @@
.extern MOD11_0225D80C
.extern MOD11_0225D820
.extern MOD11_0225D824
.extern MOD11_0225D9B8
.extern MOD11_0225DA04
.extern MOD11_0225DA40
.extern MOD11_0225DAB8
.extern MOD12_0222D5C0
.extern MOD12_0222D89C
.extern MOD12_0222D9B0

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,17 @@
#define NitroStaticInit MOD11_0222F284
#include "global.h"
extern void MOD11_0222F284(void);
#include "poke_overlay.h"
#include "FS_overlay.h"
extern u32 FUN_02033590(void);
FS_EXTERN_OVERLAY(MODULE_16);
THUMB_FUNC static void MOD11_0222F284(void)
{
if (!FUN_02033590())
{
HandleLoadOverlay(FS_OVERLAY_ID(MODULE_16), 2);
}
}
#define NitroStaticInit MOD11_0222F284
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD21_02254840
MOD21_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD21_02254854
ldr r1, _02254850 ; =MOD21_0225496C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD21_02254854
_02254850: .word MOD21_0225496C
thumb_func_end MOD21_02254840
thumb_func_start MOD21_02254854
MOD21_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD21_02254840
#include "global.h"
extern void MOD21_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD21_02254854();
extern void MOD21_0225496C();
THUMB_FUNC static void MOD21_02254840(void)
{
Poketch_InitApp(MOD21_02254854, MOD21_0225496C);
}
#define NitroStaticInit MOD21_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD23_02254840
MOD23_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD23_02254854
ldr r1, _02254850 ; =MOD23_022549A4
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD23_02254854
_02254850: .word MOD23_022549A4
thumb_func_end MOD23_02254840
thumb_func_start MOD23_02254854
MOD23_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD23_02254840
#include "global.h"
extern void MOD23_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD23_02254854();
extern void MOD23_022549A4();
THUMB_FUNC static void MOD23_02254840(void)
{
Poketch_InitApp(MOD23_02254854, MOD23_022549A4);
}
#define NitroStaticInit MOD23_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD27_02254840
MOD27_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD27_02254854
ldr r1, _02254850 ; =MOD27_0225492C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD27_02254854
_02254850: .word MOD27_0225492C
thumb_func_end MOD27_02254840
thumb_func_start MOD27_02254854
MOD27_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD27_02254840
#include "global.h"
extern void MOD27_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD27_02254854();
extern void MOD27_0225492C();
THUMB_FUNC static void MOD27_02254840(void)
{
Poketch_InitApp(MOD27_02254854, MOD27_0225492C);
}
#define NitroStaticInit MOD27_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD28_02254840
MOD28_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD28_02254854
ldr r1, _02254850 ; =MOD28_022549F4
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD28_02254854
_02254850: .word MOD28_022549F4
thumb_func_end MOD28_02254840
thumb_func_start MOD28_02254854
MOD28_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD28_02254840
#include "global.h"
extern void MOD28_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD28_02254854();
extern void MOD28_022549F4();
THUMB_FUNC static void MOD28_02254840(void)
{
Poketch_InitApp(MOD28_02254854, MOD28_022549F4);
}
#define NitroStaticInit MOD28_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD29_02254840
MOD29_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD29_02254854
ldr r1, _02254850 ; =MOD29_02254914
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD29_02254854
_02254850: .word MOD29_02254914
thumb_func_end MOD29_02254840
thumb_func_start MOD29_02254854
MOD29_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD29_02254840
#include "global.h"
extern void MOD29_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD29_02254854();
extern void MOD29_02254914();
THUMB_FUNC static void MOD29_02254840(void)
{
Poketch_InitApp(MOD29_02254854, MOD29_02254914);
}
#define NitroStaticInit MOD29_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD30_02254840
MOD30_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD30_02254854
ldr r1, _02254850 ; =MOD30_0225496C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD30_02254854
_02254850: .word MOD30_0225496C
thumb_func_end MOD30_02254840
thumb_func_start MOD30_02254854
MOD30_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD30_02254840
#include "global.h"
extern void MOD30_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD30_02254854();
extern void MOD30_0225496C();
THUMB_FUNC static void MOD30_02254840(void)
{
Poketch_InitApp(MOD30_02254854, MOD30_0225496C);
}
#define NitroStaticInit MOD30_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD32_02254840
MOD32_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD32_02254854
ldr r1, _02254850 ; =MOD32_0225495C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD32_02254854
_02254850: .word MOD32_0225495C
thumb_func_end MOD32_02254840
thumb_func_start MOD32_02254854
MOD32_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD32_02254840
#include "global.h"
extern void MOD32_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD32_02254854();
extern void MOD32_0225495C();
THUMB_FUNC static void MOD32_02254840(void)
{
Poketch_InitApp(MOD32_02254854, MOD32_0225495C);
}
#define NitroStaticInit MOD32_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD34_02254840
MOD34_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD34_02254854
ldr r1, _02254850 ; =MOD34_02254948
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD34_02254854
_02254850: .word MOD34_02254948
thumb_func_end MOD34_02254840
thumb_func_start MOD34_02254854
MOD34_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD34_02254840
#include "global.h"
extern void MOD34_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD34_02254854();
extern void MOD34_02254948();
THUMB_FUNC static void MOD34_02254840(void)
{
Poketch_InitApp(MOD34_02254854, MOD34_02254948);
}
#define NitroStaticInit MOD34_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD36_02254840
MOD36_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD36_02254854
ldr r1, _02254850 ; =MOD36_02254990
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD36_02254854
_02254850: .word MOD36_02254990
thumb_func_end MOD36_02254840
thumb_func_start MOD36_02254854
MOD36_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD36_02254840
#include "global.h"
extern void MOD36_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD36_02254854();
extern void MOD36_02254990();
THUMB_FUNC static void MOD36_02254840(void)
{
Poketch_InitApp(MOD36_02254854, MOD36_02254990);
}
#define NitroStaticInit MOD36_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD39_02254840
MOD39_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD39_02254854
ldr r1, _02254850 ; =MOD39_022549D4
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD39_02254854
_02254850: .word MOD39_022549D4
thumb_func_end MOD39_02254840
thumb_func_start MOD39_02254854
MOD39_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD39_02254840
#include "global.h"
extern void MOD39_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD39_02254854();
extern void MOD39_022549D4();
THUMB_FUNC static void MOD39_02254840(void)
{
Poketch_InitApp(MOD39_02254854, MOD39_022549D4);
}
#define NitroStaticInit MOD39_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD41_02254840
MOD41_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD41_02254854
ldr r1, _02254850 ; =MOD41_02254AD8
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD41_02254854
_02254850: .word MOD41_02254AD8
thumb_func_end MOD41_02254840
thumb_func_start MOD41_02254854
MOD41_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD41_02254840
#include "global.h"
extern void MOD41_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD41_02254854();
extern void MOD41_02254AD8();
THUMB_FUNC static void MOD41_02254840(void)
{
Poketch_InitApp(MOD41_02254854, MOD41_02254AD8);
}
#define NitroStaticInit MOD41_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD42_02254840
MOD42_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD42_02254854
ldr r1, _02254850 ; =MOD42_02254A38
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD42_02254854
_02254850: .word MOD42_02254A38
thumb_func_end MOD42_02254840
thumb_func_start MOD42_02254854
MOD42_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD42_02254840
#include "global.h"
extern void MOD42_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD42_02254854();
extern void MOD42_02254A38();
THUMB_FUNC static void MOD42_02254840(void)
{
Poketch_InitApp(MOD42_02254854, MOD42_02254A38);
}
#define NitroStaticInit MOD42_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD43_02254840
MOD43_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD43_02254854
ldr r1, _02254850 ; =MOD43_02254970
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD43_02254854
_02254850: .word MOD43_02254970
thumb_func_end MOD43_02254840
thumb_func_start MOD43_02254854
MOD43_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD43_02254840
#include "global.h"
extern void MOD43_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD43_02254854();
extern void MOD43_02254970();
THUMB_FUNC static void MOD43_02254840(void)
{
Poketch_InitApp(MOD43_02254854, MOD43_02254970);
}
#define NitroStaticInit MOD43_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD44_02254840
MOD44_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD44_02254854
ldr r1, _02254850 ; =MOD44_02254920
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD44_02254854
_02254850: .word MOD44_02254920
thumb_func_end MOD44_02254840
thumb_func_start MOD44_02254854
MOD44_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD44_02254840
#include "global.h"
extern void MOD44_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD44_02254854();
extern void MOD44_02254920();
THUMB_FUNC static void MOD44_02254840(void)
{
Poketch_InitApp(MOD44_02254854, MOD44_02254920);
}
#define NitroStaticInit MOD44_02254840
#include "sinit.h"

View File

@ -3,18 +3,6 @@
.section .text
.balign 4, 0
thumb_func_start MOD47_02254840
MOD47_02254840: ; 0x02254840
ldr r3, _02254848 ; =Poketch_InitApp
ldr r0, _0225484C ; =MOD47_02254854
ldr r1, _02254850 ; =MOD47_0225491C
bx r3
.align 2, 0
_02254848: .word Poketch_InitApp
_0225484C: .word MOD47_02254854
_02254850: .word MOD47_0225491C
thumb_func_end MOD47_02254840
thumb_func_start MOD47_02254854
MOD47_02254854: ; 0x02254854
push {r3, r4, r5, r6, r7, lr}

View File

@ -1,4 +1,13 @@
#define NitroStaticInit MOD47_02254840
#include "global.h"
extern void MOD47_02254840(void);
extern void Poketch_InitApp(void *func1, void *func2);
extern void MOD47_02254854();
extern void MOD47_0225491C();
THUMB_FUNC static void MOD47_02254840(void)
{
Poketch_InitApp(MOD47_02254854, MOD47_0225491C);
}
#define NitroStaticInit MOD47_02254840
#include "sinit.h"

View File

@ -8,4 +8,4 @@
#define ENUMS_ALWAYS_INT_OFF _Pragma("enumsalwaysint off")
#define ENUMS_ALWAYS_INT_RESET _Pragma("enumsalwaysint reset")
#endif //GUARD_FUNCTION_TARGET_H
#endif //GUARD_FUNCTION_TARGET_H