CProcessStatisticsReader.h 970 B

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