sigcontext_32.h 743 B

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
  3. * Licensed under the GPL
  4. */
  5. #ifndef __SYS_SIGCONTEXT_I386_H
  6. #define __SYS_SIGCONTEXT_I386_H
  7. #include <generated/user_constants.h>
  8. #define SC_OFFSET(sc, field) \
  9. *((unsigned long *) &(((char *) (sc))[HOST_##field]))
  10. #define SC_TRAPNO(sc) SC_OFFSET(sc, SC_TRAPNO)
  11. #define SC_ERR(sc) SC_OFFSET(sc, SC_ERR)
  12. #define SC_CR2(sc) SC_OFFSET(sc, SC_CR2)
  13. #define GET_FAULTINFO_FROM_SC(fi, sc) \
  14. { \
  15. (fi).cr2 = SC_CR2(sc); \
  16. (fi).error_code = SC_ERR(sc); \
  17. (fi).trap_no = SC_TRAPNO(sc); \
  18. }
  19. #define GET_FAULTINFO_FROM_MC(fi, mc) \
  20. { \
  21. (fi).cr2 = (mc)->cr2; \
  22. (fi).error_code = (mc)->gregs[REG_ERR]; \
  23. (fi).trap_no = (mc)->gregs[REG_TRAPNO]; \
  24. }
  25. #endif