90308f23ce29c202880f6d0b267e8527c7ca5ecd
[tpg/acess2.git] / Usermode / Libraries / libposix.so_src / include_exp / sys / resource.h
1 /*
2  * Acess2 POSIX Emulation
3  * - By John Hodge (thePowersGang)
4  *
5  * sys/resource.h
6  * - (XSI) Resource Operations
7  */
8 #ifndef _LIBPOSIX__SYS__RESOURCE_H_
9 #define _LIBPOSIX__SYS__RESOURCE_H_
10
11 #include <sys/time.h>   // struct timeval
12
13 // (get|set)priority(which)
14 enum
15 {
16         PRIO_PROCESS,
17         PRIO_PGRP,
18         PRIO_USER
19 };
20
21 typedef unsigned int    rlim_t;
22 #define RLIM_INFINITY   -1
23 #define RLIM_SAVED_MAX  -2
24 #define RLIM_SAVED_CUR  -3
25
26 struct rlimit
27 {
28         rlim_t  rlim_cur;
29         rlim_t  rlim_max;
30 };
31
32 enum
33 {
34         RLIMIT_AS,      // Address space size
35         RLIMIT_CORE,    // Max core file size
36         RLIMIT_CPU,     // CPU time limit in s (SIGXCPU when reached)
37         RLIMIT_DATA,
38         // TODO: More?
39 };
40
41 struct rusage
42 {
43         struct timeval  ru_time;
44         struct timeval  ru_stime;
45 };
46
47 extern int      getpriority(int, id_t);
48 extern int      getrlimit(int, struct rlimit *);
49 extern int      getrusage(int, struct rusage *);
50 extern int      setpriority(int, id_t, int);
51 extern int      setrlimit(int, const struct rlimit *);
52
53 #endif
54

UCC git Repository :: git.ucc.asn.au