procfs.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /* Core image file related definitions, LoongArch64 version.
  2. Copyright (C) 2024 uClibc-ng contributors.
  3. Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  4. */
  5. #ifndef _SYS_PROCFS_H
  6. #define _SYS_PROCFS_H 1
  7. #include <features.h>
  8. #include <sys/time.h>
  9. #include <sys/types.h>
  10. #include <sys/user.h>
  11. /* ELF register definitions */
  12. #define ELF_NGREG 45
  13. #define ELF_NFPREG 34
  14. typedef unsigned long int elf_greg_t;
  15. typedef unsigned long int elf_gregset_t[ELF_NGREG];
  16. typedef union {
  17. double d;
  18. float f;
  19. } elf_fpreg_t;
  20. typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  21. __BEGIN_DECLS
  22. struct elf_siginfo
  23. {
  24. int si_signo; /* Signal number. */
  25. int si_code; /* Extra code. */
  26. int si_errno; /* Errno. */
  27. };
  28. struct elf_prstatus
  29. {
  30. struct elf_siginfo pr_info; /* Info associated with signal. */
  31. short int pr_cursig; /* Current signal. */
  32. unsigned long int pr_sigpend; /* Set of pending signals. */
  33. unsigned long int pr_sighold; /* Set of held signals. */
  34. __pid_t pr_pid;
  35. __pid_t pr_ppid;
  36. __pid_t pr_pgrp;
  37. __pid_t pr_sid;
  38. struct timeval pr_utime; /* User time. */
  39. struct timeval pr_stime; /* System time. */
  40. struct timeval pr_cutime; /* Cumulative user time. */
  41. struct timeval pr_cstime; /* Cumulative system time. */
  42. elf_gregset_t pr_reg; /* GP registers. */
  43. int pr_fpvalid; /* True if math copro being used. */
  44. };
  45. #define ELF_PRARGSZ (80) /* Number of chars for args */
  46. struct elf_prpsinfo
  47. {
  48. char pr_state; /* Numeric process state. */
  49. char pr_sname; /* Char for pr_state. */
  50. char pr_zomb; /* Zombie. */
  51. char pr_nice; /* Nice val. */
  52. unsigned long int pr_flag; /* Flags. */
  53. long int pr_uid;
  54. long int pr_gid;
  55. int pr_pid, pr_ppid, pr_pgrp, pr_sid;
  56. /* Lots missing */
  57. char pr_fname[16]; /* Filename of executable. */
  58. char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
  59. };
  60. typedef void *psaddr_t;
  61. typedef elf_gregset_t prgregset_t;
  62. typedef elf_fpregset_t prfpregset_t;
  63. typedef __pid_t lwpid_t;
  64. typedef struct elf_prstatus prstatus_t;
  65. typedef struct elf_prpsinfo prpsinfo_t;
  66. __END_DECLS
  67. #endif /* sys/procfs.h */