[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Summary: Compiling fails - still doesn't work



On Wed, 11 Mar 1998, Kristian Vilmann wrote:

> >Christopher Curtis said:
> >This is in the archive.  You need a new resourcebits.h ... not sure where
> >to find it offhand else I'd let you know.  Best thing to do is go to
> >www.altavista.digital.com and do a search.

Sorry ... you actually needed a new "resource.h", not resourcebits. 
However, as I just sent my last message, you _may_ need a new resourcebits
as well, specifically, the one I just hacked up.  I've included all three. 
Put resource.h into /usr/include, resourcebits.h into /usr/include/linux,
and asm-resource.h into /usr/include/asm.  However, BE SURE TO MAKE
BACKUPS FIRST.  The files in /usr/include and /usr/include/asm *should*
have been created by the Alpha-Patches (you did install the patches,
didn't you?) but the one (resourcebits.h) in /usr/src/linux is my own
beast.  Of course, I didn't comment anything.  :)

If this works for you, let everyone know - EGCS just finished compiling
and so it seems to work here.  Next target: MySQL.  If it does work, we
may want to put that into Alpha-Patches 2.0.33 ... (Jay?)

--
Christopher Curtis               - http://www.ee.fit.edu/users/ccurtis
Florida Institute of Technology  - System Administrator, Programmer
Melbourne, Florida  USA          - http://www.lp.org/
#ifndef _LINUX_RESOURCE_H
#define _LINUX_RESOURCE_H

#include <linux/time.h>

/*
 * Resource control/accounting header file for linux
 */

/*
 * Definition of struct rusage taken from BSD 4.3 Reno
 * 
 * We don't support all of these yet, but we might as well have them....
 * Otherwise, each time we add new items, programs which depend on this
 * structure will lose.  This reduces the chances of that happening.
 */
#define __KERNEL_RUSAGE_SELF		0
#define __KERNEL_RUSAGE_CHILDREN	(-1)
#define __KERNEL_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 " */
};

struct rlimit {
	long	rlim_cur;
	long	rlim_max;
};

#define __KERNEL_PRIO_MIN	(-20)
#define __KERNEL_PRIO_MAX	20

#define __KERNEL_PRIO_PROCESS	0
#define __KERNEL_PRIO_PGRP	1
#define __KERNEL_PRIO_USER	2

/*
 * Due to binary compatibility, the actual resource numbers may be
 * different for different linux versions..
 */
#include <asm/resource.h>

#ifndef __KERNEL_RLIM_INFINITY
  /* 32 bit architectures use this value: */
# define __KERNEL_RLIM_INFINITY	0x7fffffff
#endif

#ifndef __KERNEL_STRICT_NAMES
# define RLIMIT_CPU	__KERNEL_RLIMIT_CPU
# define RLIMIT_FSIZE	__KERNEL_RLIMIT_FSIZE
# define RLIMIT_DATA	__KERNEL_RLIMIT_DATA
# define RLIMIT_STACK	__KERNEL_RLIMIT_STACK
# define RLIMIT_CORE	__KERNEL_RLIMIT_CORE
# define RLIMIT_RSS	__KERNEL_RLIMIT_RSS
# define RLIMIT_NOFILE	__KERNEL_RLIMIT_NOFILE
# define RLIMIT_AS	__KERNEL_RLIMIT_AS
# define RLIMIT_NPROC	__KERNEL_RLIMIT_NPROC
# define RLIMIT_MEMLOCK	__KERNEL_RLIMIT_MEMLOCK

# define RLIM_NLIMITS	__KERNEL_RLIM_NLIMITS

# define RLIM_INFINITY	__KERNEL_RLIM_INFINITY

# define RUSAGE_SELF	__KERNEL_RUSAGE_SELF
# define RUSAGE_CHILDREN __KERNEL_RUSAGE_CHILDREN
# define RUSAGE_BOTH	__KERNEL_RUSAGE_BOTH

# define PRIO_MIN	__KERNEL_PRIO_MIN
# define PRIO_MAX	__KERNEL_PRIO_MAX

# define PRIO_PROCESS	__KERNEL_PRIO_PROCESS
# define PRIO_PGRP	__KERNEL_PRIO_PGRP
# define PRIO_USER	__KERNEL_PRIO_USER
#endif /* __KERNEL_STRICT_NAMES */

#endif /* _LINUX_RESOURCE_H */
/* Bit values & structures for resource limits.  Linux version.
   Copyright (C) 1994, 1996 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   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.  */

#include <asm/resource.h>

/* Transmute defines to enumerations.  The macro re-definitions are
   necessary because some programs want to test for operating system
   features with #ifdef RUSAGE_SELF.  In ISO C the reflexive
   definition is a no-op.  */

/* Kinds of resource limit.  */
enum __rlimit_resource
{
  /* Per-process CPU limit, in seconds.  */
  _RLIMIT_CPU = __KERNEL_RLIMIT_CPU,
#undef RLIMIT_CPU
  RLIMIT_CPU = _RLIMIT_CPU,
#define RLIMIT_CPU RLIMIT_CPU

  /* Largest file that can be created, in bytes.  */
  _RLIMIT_FSIZE = __KERNEL_RLIMIT_FSIZE,
#undef RLIMIT_FSIZE
  RLIMIT_FSIZE = _RLIMIT_FSIZE,
#define	RLIMIT_FSIZE RLIMIT_FSIZE

  /* Maximum size of data segment, in bytes.  */
  _RLIMIT_DATA = __KERNEL_RLIMIT_DATA,
#undef RLIMIT_DATA
  RLIMIT_DATA = _RLIMIT_DATA,
#define	RLIMIT_DATA RLIMIT_DATA

  /* Maximum size of stack segment, in bytes.  */
  _RLIMIT_STACK = __KERNEL_RLIMIT_STACK,
#undef RLIMIT_STACK
  RLIMIT_STACK = _RLIMIT_STACK,
#define	RLIMIT_STACK RLIMIT_STACK

  /* Largest core file that can be created, in bytes.  */
  _RLIMIT_CORE = __KERNEL_RLIMIT_CORE,
#undef RLIMIT_CORE
  RLIMIT_CORE = _RLIMIT_CORE,
#define	RLIMIT_CORE RLIMIT_CORE

  /* Largest resident set size, in bytes.
     This affects swapping; processes that are exceeding their
     resident set size will be more likely to have physical memory
     taken from them.  */
  _RLIMIT_RSS = __KERNEL_RLIMIT_RSS,
#undef RLIMIT_RSS
  RLIMIT_RSS = _RLIMIT_RSS,
#define	RLIMIT_RSS RLIMIT_RSS

  /* Number of open files.  */
  _RLIMIT_NOFILE = __KERNEL_RLIMIT_NOFILE,
#undef RLIMIT_NOFILE
  RLIMIT_NOFILE = _RLIMIT_NOFILE,
  RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same.  */
#define RLIMIT_NOFILE RLIMIT_NOFILE
#define RLIMIT_OFILE RLIMIT_OFILE

  /* Address space limit (?) */
  _RLIMIT_AS = __KERNEL_RLIMIT_AS,
#undef RLIMIT_AS
  RLIMIT_AS = _RLIMIT_AS,
#define RLIMIT_AS RLIMIT_AS

  /* Number of processes.  */
  _RLIMIT_NPROC = __KERNEL_RLIMIT_NPROC,
#undef RLIMIT_NPROC
  RLIMIT_NPROC = _RLIMIT_NPROC,
#define RLIMIT_NPROC RLIMIT_NPROC

  /* Locked-in-memory address space.  */
  _RLIMIT_MEMLOCK = __KERNEL_RLIMIT_MEMLOCK,
#undef RLIMIT_MEMLOCK
  RLIMIT_MEMLOCK = _RLIMIT_MEMLOCK,
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK

  RLIMIT_NLIMITS = __KERNEL_RLIM_NLIMITS,
#undef RLIM_NLIMITS
  RLIM_NLIMITS = RLIMIT_NLIMITS,
#define RLIMIT_NLIMITS RLIMIT_NLIMITS
#define RLIM_NLIMITS RLIM_NLIMITS

  /* Value to indicate that there is no limit.  */
  RLIM_INFINITY = (long int)(~0UL >> 1)
#define RLIM_INFINITY RLIM_INFINITY
};

struct rlimit
{
  /* The current (soft) limit.  */
  long int rlim_cur;
  /* The hard limit.  */
  long int rlim_max;
};

/* Whose usage statistics do you want?  */
enum __rusage_who
{
  /* The calling process.  */
  RUSAGE_SELF = 0,
#define RUSAGE_SELF RUSAGE_SELF

  /* All of its terminated child processes.  */
  RUSAGE_CHILDREN = -1,
#define RUSAGE_CHILDREN RUSAGE_CHILDREN

  /* Both.  */
  RUSAGE_BOTH = -2
#define RUSAGE_BOTH RUSAGE_BOTH
};

#include <sys/time.h>		/* For `struct timeval'.  */

/* Structure which says how much of each resource has been used.  */
struct rusage
{
  /* Total amount of user time used.  */
  struct timeval ru_utime;
  /* Total amount of system time used.  */
  struct timeval ru_stime;
  /* Maximum resident set size (in kilobytes).  */
  long int ru_maxrss;
  /* Amount of sharing of text segment memory
     with other processes (kilobyte-seconds).  */
  long int ru_ixrss;
  /* Amount of data segment memory used (kilobyte-seconds).  */
  long int ru_idrss;
  /* Amount of stack memory used (kilobyte-seconds).  */
  long int ru_isrss;
  /* Number of soft page faults (i.e. those serviced by reclaiming
     a page from the list of pages awaiting reallocation.  */
  long int ru_minflt;
  /* Number of hard page faults (i.e. those that required I/O).  */
  long int ru_majflt;
  /* Number of times a process was swapped out of physical memory.  */
  long int ru_nswap;
  /* Number of input operations via the file system.  Note: This
     and `ru_oublock' do not include operations with the cache.  */
  long int ru_inblock;
  /* Number of output operations via the file system.  */
  long int ru_oublock;
  /* Number of IPC messages sent.  */
  long int ru_msgsnd;
  /* Number of IPC messages received.  */
  long int ru_msgrcv;
  /* Number of signals delivered.  */
  long int ru_nsignals;
  /* Number of voluntary context switches, i.e. because the process
     gave up the process before it had to (usually to wait for some
     resource to be available).  */
  long int ru_nvcsw;
  /* Number of involuntary context switches, i.e. a higher priority process
     became runnable or the current process used up its time slice.  */
  long int ru_nivcsw;
};

/* Priority limits.  */
#define PRIO_MIN	-20	/* Minimum priority a process can have.  */
#define PRIO_MAX	20	/* Maximum priority a process can have.  */

/* The type of the WHICH argument to `getpriority' and `setpriority',
   indicating what flavor of entity the WHO argument specifies.  */
enum __priority_which
{
  PRIO_PROCESS = 0,		/* WHO is a process ID.  */
  PRIO_PGRP = 1,		/* WHO is a process group ID.  */
  PRIO_USER = 2			/* WHO is a user ID.  */
};
#ifndef _ALPHA_RESOURCE_H
#define _ALPHA_RESOURCE_H

/*
 * Resource limits
 */
#define __KERNEL_RLIMIT_CPU	0	/* CPU time in ms */
#define __KERNEL_RLIMIT_FSIZE	1	/* Maximum filesize */
#define __KERNEL_RLIMIT_DATA	2	/* max data size */
#define __KERNEL_RLIMIT_STACK	3	/* max stack size */
#define __KERNEL_RLIMIT_CORE	4	/* max core file size */
#define __KERNEL_RLIMIT_RSS	5	/* max resident set size */
#define __KERNEL_RLIMIT_NOFILE	6	/* max number of open files */
#define __KERNEL_RLIMIT_AS	7	/* address space limit(?) */
#define __KERNEL_RLIMIT_NPROC	8	/* max number of processes */
#define __KERNEL_RLIMIT_MEMLOCK	9	/* max locked-in-memory addr. space */

#define __KERNEL_RLIM_NLIMITS	10

#define __KERNEL_RLIM_INFINITY	0x7fffffffffffffffL

#ifdef __KERNEL__

#define INIT_RLIMITS							\
{									\
    {LONG_MAX, LONG_MAX},			/* RLIMIT_CPU */	\
    {LONG_MAX, LONG_MAX},			/* RLIMIT_FSIZE */	\
    {LONG_MAX, LONG_MAX},			/* RLIMIT_DATA */	\
    {_STK_LIM, _STK_LIM},			/* RLIMIT_STACK */	\
    {       0, LONG_MAX},			/* RLIMIT_CORE */	\
    {LONG_MAX, LONG_MAX},			/* RLIMIT_RSS */	\
    { NR_OPEN,  NR_OPEN},			/* RLIMIT_NOFILE */	\
    {LONG_MAX, LONG_MAX},			/* RLIMIT_AS */		\
    {MAX_TASKS_PER_USER, MAX_TASKS_PER_USER},	/* RLIMIT_NPROC */	\
    {LONG_MAX, LONG_MAX},			/* RLIMIT_MEMLOCK */	\
}

#endif /* __KERNEL__ */

#endif /* _ALPHA_RESOURCE_H */

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []