31965d4fb716bdf3973596015888eaff919ff070
[people/lynusvaz/gpxe.git] / src / arch / i386 / include / relocate.h
1 #ifndef RELOCATE_H
2 #define RELOCATE_H
3
4 /* relocate() is conceptually impossible with KEEP_IT_REAL */
5 #ifndef KEEP_IT_REAL
6
7 /* An entry in the post-relocation function table */
8 struct post_reloc_fn {
9         void ( *post_reloc ) ( void );
10 };
11
12 /* Use double digits to avoid problems with "10" < "9" on alphabetic sort */
13 #define POST_RELOC_LIBRM        "00"
14
15 /* Macro for creating a post-relocation function table entry */
16 #define POST_RELOC_FN( post_reloc_order, post_reloc_func )                    \
17         static struct post_reloc_fn post_reloc_functions                      \
18             __attribute__ (( used, __section__( ".post_reloc_fns."            \
19                                                 post_reloc_order ) )) = {     \
20                 .post_reloc = post_reloc_func,                                \
21         };
22
23 #endif
24
25 #endif /* RELOCATE_H */