CProcessStatisticsReader.h 773 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include <AK/AKString.h>
  3. #include <AK/HashMap.h>
  4. struct CProcessStatistics {
  5. // Keep this in sync with /proc/all.
  6. // From the kernel side:
  7. pid_t pid;
  8. unsigned times_scheduled;
  9. unsigned pgid;
  10. unsigned pgp;
  11. unsigned sid;
  12. uid_t uid;
  13. gid_t gid;
  14. String state;
  15. pid_t ppid;
  16. unsigned nfds;
  17. String name;
  18. String tty;
  19. size_t amount_virtual;
  20. size_t amount_resident;
  21. size_t amount_shared;
  22. unsigned ticks;
  23. String priority;
  24. unsigned syscall_count;
  25. // synthetic
  26. String username;
  27. };
  28. class CProcessStatisticsReader {
  29. public:
  30. static HashMap<pid_t, CProcessStatistics> get_all();
  31. private:
  32. static String username_from_uid(uid_t);
  33. static HashMap<uid_t, String> s_usernames;
  34. };