Reactos
1
2#ifdef _M_IX86
3#define SYM(name) _##name
4#define IMPSYM(name) __imp__##name
5#else
6#define SYM(name) name
7#define IMPSYM(name) __imp_##name
8#endif
9
10#if (defined(_M_IX86) || defined(_M_AMD64))
11
12#include <asm.inc>
13
14MACRO(CREATE_ALIAS1, alias, target)
15#ifdef _USE_ML
16 EXTERN SYM(&target):PROC
17 ALIAS <SYM(&alias)> = <SYM(&target)>
18#else
19 .weakref SYM(&alias), SYM(&target)
20#endif
21ENDM
22
23MACRO(CREATE_ALIAS2, alias, target)
24#ifdef _USE_ML
25 EXTERN IMPSYM(&target):PROC
26 ALIAS <IMPSYM(&alias)> = <IMPSYM(&target)>
27#else
28 .weakref IMPSYM(&alias), IMPSYM(&target)
29#endif
30ENDM
31
32MACRO(CREATE_ALIAS, alias, target)
33 CREATE_ALIAS1 &alias, &target
34 CREATE_ALIAS2 &alias, &target
35ENDM
36
37#elif defined(_M_ARM)
38
39#include <kxarm.h>
40
41 MACRO
42 CREATE_ALIAS1 $alias, $target
43 IMPORT SYM($alias), WEAK SYM($target)
44 MEND
45
46 MACRO
47 CREATE_ALIAS2 $alias, $target
48 IMPORT IMPSYM($alias), WEAK IMPSYM($target)
49 MEND
50
51 MACRO
52 CREATE_ALIAS $alias, $target
53 CREATE_ALIAS1 $alias, $target
54 CREATE_ALIAS2 $alias, $target
55 MEND
56#else
57#error "Unsupported platform."
58#endif