haiku/headers/posix/sys/resource.h
Ingo Weinhold 2222d0559d * Introduced new header directory "config", which ATM contains HaikuConfig.h
and types.h. The idea is to provide a basic architecture/compiler
  abstraction by defining types and macros that allow the posix/ and os/
  headers to be mostly architecture/compiler agnostic. 
* Adjusted the posix/ and os/ headers accordingly.
* <SupportDefs.h>: Introduced B_PRI* and B_SCN* macros similar to the PRI*
  and SCN* macros defined in <inttypes.h>, just for the BeOS/Haiku [u]int*
  types and some POSIX types (e.g. off_t, dev_t, ino_t) that don't have POSIX
  macros. Also the B_PRI* and B_SCN* macros are available unconditionally,
  unlike the <inttypes.h> macros, which require __STDC_FORMAT_MACROS to be
  defined in C++ mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-24 19:44:07 +00:00

74 lines
1.7 KiB
C

/*
* Copyright 2003-2008, Haiku Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _SYS_RESOURCE_H
#define _SYS_RESOURCE_H
#include <config/types.h>
#include <sys/cdefs.h>
#include <sys/time.h>
/* getrlimit()/setrlimit() definitions */
typedef __haiku_addr_t rlim_t;
struct rlimit {
rlim_t rlim_cur; /* current soft limit */
rlim_t rlim_max; /* hard limit */
};
/* ToDo: the only supported mode is RLIMIT_NOFILE right now */
#define RLIMIT_CORE 0 /* size of the core file */
#define RLIMIT_CPU 1 /* CPU time per team */
#define RLIMIT_DATA 2 /* data segment size */
#define RLIMIT_FSIZE 3 /* file size */
#define RLIMIT_NOFILE 4 /* number of open files */
#define RLIMIT_STACK 5 /* stack size */
#define RLIMIT_AS 6 /* address space size */
/* Haiku-specifics */
#define RLIMIT_NOVMON 7 /* number of open vnode monitors */
#define RLIM_NLIMITS 8 /* number of resource limits */
#define RLIM_INFINITY (0xffffffffUL)
#define RLIM_SAVED_MAX RLIM_INFINITY
#define RLIM_SAVED_CUR RLIM_INFINITY
/* getrusage() definitions */
struct rusage {
struct timeval ru_utime; /* user time used */
struct timeval ru_stime; /* system time used */
};
#define RUSAGE_SELF 0
#define RUSAGE_CHILDREN -1
/* getpriority()/setpriority() definitions */
#define PRIO_PROCESS 0
#define PRIO_PGRP 1
#define PRIO_USER 2
__BEGIN_DECLS
extern int getrusage(int who, struct rusage *rusage);
extern int getrlimit(int resource, struct rlimit * rlp);
extern int setrlimit(int resource, const struct rlimit * rlp);
/* ToDo: The following POSIX calls are missing (in BeOS as well):
* int getpriority(int which, id_t who);
* int setpriority(int which, id_t who, int priority); */
__END_DECLS
#endif /* _SYS_RESOURCE_H */