|  | @@ -1,73 +1,103 @@
 | 
	
		
			
				|  |  | -/*
 | 
	
		
			
				|  |  | - * Resource control/accounting header file for linux-86
 | 
	
		
			
				|  |  | - */
 | 
	
		
			
				|  |  | +/* Copyright (C) 1992, 94, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
 | 
	
		
			
				|  |  | +   This file is part of the GNU C Library.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#ifndef _SYS_RESOURCE_H
 | 
	
		
			
				|  |  | -#define _SYS_RESOURCE_H
 | 
	
		
			
				|  |  | +   The GNU C Library is free software; you can redistribute it and/or
 | 
	
		
			
				|  |  | +   modify it under the terms of the GNU Library General Public License as
 | 
	
		
			
				|  |  | +   published by the Free Software Foundation; either version 2 of the
 | 
	
		
			
				|  |  | +   License, or (at your option) any later version.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +   The GNU C Library is distributed in the hope that it will be useful,
 | 
	
		
			
				|  |  | +   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
	
		
			
				|  |  | +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
	
		
			
				|  |  | +   Library General Public License for more details.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +   You should have received a copy of the GNU Library General Public
 | 
	
		
			
				|  |  | +   License along with the GNU C Library; see the file COPYING.LIB.  If not,
 | 
	
		
			
				|  |  | +   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
	
		
			
				|  |  | +   Boston, MA 02111-1307, USA.  */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#ifndef	_SYS_RESOURCE_H
 | 
	
		
			
				|  |  | +#define	_SYS_RESOURCE_H	1
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include <features.h>
 | 
	
		
			
				|  |  | -#include <sys/time.h>
 | 
	
		
			
				|  |  | -#include <limits.h>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#define	RUSAGE_SELF	0
 | 
	
		
			
				|  |  | -#define	RUSAGE_CHILDREN	(-1)
 | 
	
		
			
				|  |  | -#define RUSAGE_BOTH	(-2)		/* sys_wait4() uses this */
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -struct	rusage {
 | 
	
		
			
				|  |  | -	struct timeval ru_utime;	/* user time used */
 | 
	
		
			
				|  |  | -	struct timeval ru_stime;	/* system time used */
 | 
	
		
			
				|  |  | -	long	ru_maxrss;		/* maximum resident set size */
 | 
	
		
			
				|  |  | -	long	ru_ixrss;		/* integral shared memory size */
 | 
	
		
			
				|  |  | -	long	ru_idrss;		/* integral unshared data size */
 | 
	
		
			
				|  |  | -	long	ru_isrss;		/* integral unshared stack size */
 | 
	
		
			
				|  |  | -	long	ru_minflt;		/* page reclaims */
 | 
	
		
			
				|  |  | -	long	ru_majflt;		/* page faults */
 | 
	
		
			
				|  |  | -	long	ru_nswap;		/* swaps */
 | 
	
		
			
				|  |  | -	long	ru_inblock;		/* block input operations */
 | 
	
		
			
				|  |  | -	long	ru_oublock;		/* block output operations */
 | 
	
		
			
				|  |  | -	long	ru_msgsnd;		/* messages sent */
 | 
	
		
			
				|  |  | -	long	ru_msgrcv;		/* messages received */
 | 
	
		
			
				|  |  | -	long	ru_nsignals;		/* signals received */
 | 
	
		
			
				|  |  | -	long	ru_nvcsw;		/* voluntary context switches */
 | 
	
		
			
				|  |  | -	long	ru_nivcsw;		/* involuntary " */
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#define RLIM_INFINITY	((long)(~0UL>>1))
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -struct rlimit {
 | 
	
		
			
				|  |  | -	long	rlim_cur;
 | 
	
		
			
				|  |  | -	long	rlim_max;
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#define	PRIO_MIN	(-20)
 | 
	
		
			
				|  |  | -#define	PRIO_MAX	20
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#define	PRIO_PROCESS	0
 | 
	
		
			
				|  |  | -#define	PRIO_PGRP	1
 | 
	
		
			
				|  |  | -#define	PRIO_USER	2
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#define RLIMIT_CPU	0		/* CPU time in ms */
 | 
	
		
			
				|  |  | -#define RLIMIT_FSIZE	1		/* Maximum filesize */
 | 
	
		
			
				|  |  | -#define RLIMIT_DATA	2		/* max data size */
 | 
	
		
			
				|  |  | -#define RLIMIT_STACK	3		/* max stack size */
 | 
	
		
			
				|  |  | -#define RLIMIT_CORE	4		/* max core file size */
 | 
	
		
			
				|  |  | -#define RLIMIT_RSS	5		/* max resident set size */
 | 
	
		
			
				|  |  | -#define RLIMIT_NPROC	6		/* max number of processes */
 | 
	
		
			
				|  |  | -#define RLIMIT_NOFILE	7		/* max number of open files */
 | 
	
		
			
				|  |  | -#define RLIMIT_MEMLOCK	8		/* max locked-in-memory address space */
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#define RLIM_NLIMITS	9
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -extern int	getrlimit __P ((int __resource,
 | 
	
		
			
				|  |  | -			struct rlimit *__rlp));
 | 
	
		
			
				|  |  | -extern int	setrlimit __P ((int __resource,
 | 
	
		
			
				|  |  | -			__const struct rlimit *__rlp));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -extern int      getpriority __P((int __which, int __who));
 | 
	
		
			
				|  |  | -extern int      setpriority __P((int __which, int __who,
 | 
	
		
			
				|  |  | -			int __prio));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -extern int	__getrusage __P ((int __who, struct rusage *__rusage));
 | 
	
		
			
				|  |  | -extern int	getrusage __P ((int __who, struct rusage *__rusage));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#endif /* _SYS_RESOURCE_H */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* Get the system-dependent definitions of structures and bit values.  */
 | 
	
		
			
				|  |  | +#include <bits/resource.h>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#ifndef __id_t_defined
 | 
	
		
			
				|  |  | +typedef __id_t id_t;
 | 
	
		
			
				|  |  | +# define __id_t_defined
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +__BEGIN_DECLS
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* The X/Open standard defines that all the functions below must use
 | 
	
		
			
				|  |  | +   `int' as the type for the first argument.  When we are compiling with
 | 
	
		
			
				|  |  | +   GNU extensions we change this slightly to provide better error
 | 
	
		
			
				|  |  | +   checking.  */
 | 
	
		
			
				|  |  | +#ifdef __USE_GNU
 | 
	
		
			
				|  |  | +typedef enum __rlimit_resource __rlimit_resource_t;
 | 
	
		
			
				|  |  | +typedef enum __rusage_who __rusage_who_t;
 | 
	
		
			
				|  |  | +typedef enum __priority_which __priority_which_t;
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +typedef int __rlimit_resource_t;
 | 
	
		
			
				|  |  | +typedef int __rusage_who_t;
 | 
	
		
			
				|  |  | +typedef int __priority_which_t;
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* Put the soft and hard limits for RESOURCE in *RLIMITS.
 | 
	
		
			
				|  |  | +   Returns 0 if successful, -1 if not (and sets errno).  */
 | 
	
		
			
				|  |  | +#ifndef __USE_FILE_OFFSET64
 | 
	
		
			
				|  |  | +extern int getrlimit (__rlimit_resource_t __resource,
 | 
	
		
			
				|  |  | +		      struct rlimit *__rlimits);
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +# ifdef __REDIRECT
 | 
	
		
			
				|  |  | +extern int __REDIRECT (getrlimit, (__rlimit_resource_t __resource,
 | 
	
		
			
				|  |  | +				   struct rlimit *__rlimits) ,
 | 
	
		
			
				|  |  | +		       getrlimit64);
 | 
	
		
			
				|  |  | +# else
 | 
	
		
			
				|  |  | +#  define getrlimit getrlimit64
 | 
	
		
			
				|  |  | +# endif
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +#ifdef __USE_LARGEFILE64
 | 
	
		
			
				|  |  | +extern int getrlimit64 (__rlimit_resource_t __resource,
 | 
	
		
			
				|  |  | +			struct rlimit64 *__rlimits);
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* Set the soft and hard limits for RESOURCE to *RLIMITS.
 | 
	
		
			
				|  |  | +   Only the super-user can increase hard limits.
 | 
	
		
			
				|  |  | +   Return 0 if successful, -1 if not (and sets errno).  */
 | 
	
		
			
				|  |  | +#ifndef __USE_FILE_OFFSET64
 | 
	
		
			
				|  |  | +extern int setrlimit (__rlimit_resource_t __resource,
 | 
	
		
			
				|  |  | +		      __const struct rlimit *__rlimits);
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +# ifdef __REDIRECT
 | 
	
		
			
				|  |  | +extern int __REDIRECT (setrlimit, (__rlimit_resource_t __resource,
 | 
	
		
			
				|  |  | +				   __const struct rlimit *__rlimits) ,
 | 
	
		
			
				|  |  | +		       setrlimit64);
 | 
	
		
			
				|  |  | +# else
 | 
	
		
			
				|  |  | +#  define setrlimit setrlimit64
 | 
	
		
			
				|  |  | +# endif
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +#ifdef __USE_LARGEFILE64
 | 
	
		
			
				|  |  | +extern int setrlimit64 (__rlimit_resource_t __resource,
 | 
	
		
			
				|  |  | +			__const struct rlimit64 *__rlimits);
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* Return resource usage information on process indicated by WHO
 | 
	
		
			
				|  |  | +   and put it in *USAGE.  Returns 0 for success, -1 for failure.  */
 | 
	
		
			
				|  |  | +extern int getrusage (__rusage_who_t __who, struct rusage *__usage);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* Return the highest priority of any process specified by WHICH and WHO
 | 
	
		
			
				|  |  | +   (see above); if WHO is zero, the current process, process group, or user
 | 
	
		
			
				|  |  | +   (as specified by WHO) is used.  A lower priority number means higher
 | 
	
		
			
				|  |  | +   priority.  Priorities range from PRIO_MIN to PRIO_MAX (above).  */
 | 
	
		
			
				|  |  | +extern int getpriority (__priority_which_t __which, id_t __who);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* Set the priority of all processes specified by WHICH and WHO (see above)
 | 
	
		
			
				|  |  | +   to PRIO.  Returns 0 on success, -1 on errors.  */
 | 
	
		
			
				|  |  | +extern int setpriority (__priority_which_t __which, id_t __who, int __prio);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +__END_DECLS
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#endif	/* sys/resource.h  */
 |