CProcessStatisticsReader.h 788 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include <AK/String.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. int icon_id;
  26. // synthetic
  27. String username;
  28. };
  29. class CProcessStatisticsReader {
  30. public:
  31. static HashMap<pid_t, CProcessStatistics> get_all();
  32. private:
  33. static String username_from_uid(uid_t);
  34. static HashMap<uid_t, String> s_usernames;
  35. };