asm-offsets.c 532 B

123456789101112131415161718
  1. #include <stddef.h>
  2. #include <shim_internal.h>
  3. #include <shim_tls.h>
  4. #define OFFSET_T(name, str_t, member) \
  5. asm volatile(".ascii \" #define " #name " %0 \"\n":: \
  6. "i"(offsetof(str_t, member)))
  7. void dummy(void)
  8. {
  9. OFFSET_T(SHIM_TCB_OFFSET, __libc_tcb_t, shim_tcb);
  10. OFFSET_T(TCB_SYSCALL_NR, shim_tcb_t, context.syscall_nr);
  11. OFFSET_T(TCB_SP, shim_tcb_t, context.sp);
  12. OFFSET_T(TCB_RET_IP, shim_tcb_t, context.ret_ip);
  13. OFFSET_T(TCB_REGS, shim_tcb_t, context.regs);
  14. }