tls.c 676 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include <errno.h>
  2. #include <sys/ptrace.h>
  3. #include "sysdep/tls.h"
  4. /* TLS support - we basically rely on the host's one.*/
  5. #ifndef PTRACE_GET_THREAD_AREA
  6. #define PTRACE_GET_THREAD_AREA 25
  7. #endif
  8. #ifndef PTRACE_SET_THREAD_AREA
  9. #define PTRACE_SET_THREAD_AREA 26
  10. #endif
  11. int os_set_thread_area(user_desc_t *info, int pid)
  12. {
  13. int ret;
  14. ret = ptrace(PTRACE_SET_THREAD_AREA, pid, info->entry_number,
  15. (unsigned long) info);
  16. if (ret < 0)
  17. ret = -errno;
  18. return ret;
  19. }
  20. int os_get_thread_area(user_desc_t *info, int pid)
  21. {
  22. int ret;
  23. ret = ptrace(PTRACE_GET_THREAD_AREA, pid, info->entry_number,
  24. (unsigned long) info);
  25. if (ret < 0)
  26. ret = -errno;
  27. return ret;
  28. }