resource.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <stdint.h>
  8. #include <sys/cdefs.h>
  9. #include <sys/time.h>
  10. __BEGIN_DECLS
  11. struct rusage {
  12. struct timeval ru_utime;
  13. struct timeval ru_stime;
  14. long ru_maxrss;
  15. long ru_ixrss;
  16. long ru_idrss;
  17. long ru_isrss;
  18. long ru_minflt;
  19. long ru_majflt;
  20. long ru_nswap;
  21. long ru_inblock;
  22. long ru_oublock;
  23. long ru_msgsnd;
  24. long ru_msgrcv;
  25. long ru_nsignals;
  26. long ru_nvcsw;
  27. long ru_nivcsw;
  28. };
  29. #define RUSAGE_SELF 1
  30. #define RUSAGE_CHILDREN 2
  31. int getrusage(int who, struct rusage* usage);
  32. #define RLIMIT_CORE 1
  33. #define RLIMIT_CPU 2
  34. #define RLIMIT_DATA 3
  35. #define RLIMIT_FSIZE 4
  36. #define RLIMIT_NOFILE 5
  37. #define RLIMIT_STACK 6
  38. #define RLIMIT_AS 7
  39. #define RLIM_NLIMITS 8
  40. #define RLIM_INFINITY SIZE_MAX
  41. typedef size_t rlim_t;
  42. struct rlimit {
  43. rlim_t rlim_cur;
  44. rlim_t rlim_max;
  45. };
  46. int getrlimit(int, struct rlimit*);
  47. int setrlimit(int, struct rlimit const*);
  48. #define PRIO_PROCESS 0
  49. #define PRIO_PGRP 1
  50. #define PRIO_USER 2
  51. int getpriority(int, id_t);
  52. int setpriority(int, id_t, int);
  53. __END_DECLS