#ifndef RELOCATE_H
#define RELOCATE_H

/* relocate() is conceptually impossible with KEEP_IT_REAL */
#ifndef KEEP_IT_REAL

/* An entry in the post-relocation function table */
struct post_reloc_fn {
	void ( *post_reloc ) ( void );
};

/* Use double digits to avoid problems with "10" < "9" on alphabetic sort */
#define POST_RELOC_LIBRM	"00"

/* Macro for creating a post-relocation function table entry */
#define POST_RELOC_FN( post_reloc_order, post_reloc_func )		      \
	static struct post_reloc_fn post_reloc_functions		      \
	    __attribute__ (( used, __section__( ".post_reloc_fns."	      \
						post_reloc_order ) )) = {     \
		.post_reloc = post_reloc_func,				      \
	};

#endif

#endif /* RELOCATE_H */
