/*#define IMPORT_BEGIN(lib)  .align 2; .section .fimport_##lib,"ax";*/
#define IMPORT_BEGIN(lib)

/*#define IMPORT(name) \
   .global name; \
   name: \
   nop; \
   nop*/

#define IMPORT(name) \
.align 2; \
.section ".rplTramp.text","ax"; \
   .global name; \
   name: \
      lis %r0, name##_stub@h; \
      ori %r0, %r0, name##_stub@l; \
      mtctr %r0; \
      bctr;

/*#define IMPORT_END() .align 2;*/
#define IMPORT_END()

#include "imports.h"

#undef IMPORT_BEGIN
#undef IMPORT
#undef IMPORT_END

#define IMPORT_BEGIN(lib) \
.section ".rodata.rplNames"; \
   1: \
   .string #lib; \
.section ".data.rplFuncStubs"; \
.align 2; \
   2:

#define IMPORT(name) \
   .global name##_stub; \
   name##_stub: \
   .long name;

#define IMPORT_END() \
   3: \
.section ".lib.rplLibs"; \
   .align 2; \
   .long 1b; \
   .long 2b; \
   .long 3b

#include "imports.h"

.section ".text"
.globl SC0x25_KernelCopyData
SC0x25_KernelCopyData:
li r0, 0x2500
sc
blr