1/* 2 * Copyright 2003-2012 Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _SYS_RESOURCE_H 6#define _SYS_RESOURCE_H 7 8 9#include <config/types.h> 10 11#include <sys/cdefs.h> 12#include <sys/time.h> 13 14 15/* getrlimit()/setrlimit() definitions */ 16 17typedef __haiku_addr_t rlim_t; 18 19struct rlimit { 20 rlim_t rlim_cur; /* current soft limit */ 21 rlim_t rlim_max; /* hard limit */ 22}; 23 24/* ToDo: the only supported mode is RLIMIT_NOFILE right now */ 25#define RLIMIT_CORE 0 /* size of the core file */ 26#define RLIMIT_CPU 1 /* CPU time per team */ 27#define RLIMIT_DATA 2 /* data segment size */ 28#define RLIMIT_FSIZE 3 /* file size */ 29#define RLIMIT_NOFILE 4 /* number of open files */ 30#define RLIMIT_STACK 5 /* stack size */ 31#define RLIMIT_AS 6 /* address space size */ 32/* Haiku-specifics */ 33#define RLIMIT_NOVMON 7 /* number of open vnode monitors */ 34 35#define RLIM_NLIMITS 8 /* number of resource limits */ 36 37#define RLIM_INFINITY (0xffffffffUL) 38#define RLIM_SAVED_MAX RLIM_INFINITY 39#define RLIM_SAVED_CUR RLIM_INFINITY 40 41 42/* getrusage() definitions */ 43 44struct rusage { 45 struct timeval ru_utime; /* user time used */ 46 struct timeval ru_stime; /* system time used */ 47 48 /* unused, only for compatibility with other systems */ 49 long ru_maxrss; 50 long ru_ixrss; 51 long ru_idrss; 52 long ru_isrss; 53 long ru_minflt; 54 long ru_majflt; 55 long ru_nswap; 56 long ru_inblock; 57 long ru_oublock; 58 long ru_msgsnd; 59 long ru_msgrcv; 60 long ru_nsignals; 61 long ru_nvcsw; 62 long ru_nivcsw; 63}; 64 65#define RUSAGE_SELF 0 66#define RUSAGE_CHILDREN -1 67 68 69/* getpriority()/setpriority() definitions */ 70 71#define PRIO_PROCESS 0 72#define PRIO_PGRP 1 73#define PRIO_USER 2 74 75 76__BEGIN_DECLS 77 78extern int getrusage(int who, struct rusage *rusage); 79 80extern int getrlimit(int resource, struct rlimit * rlp); 81extern int setrlimit(int resource, const struct rlimit * rlp); 82 83extern int getpriority(int which, id_t who); 84extern int setpriority(int which, id_t who, int priority); 85 86__END_DECLS 87 88#endif /* _SYS_RESOURCE_H */ 89