OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [branches/] [oc/] [gdb-5.0/] [libiberty/] [getpagesize.c] - Rev 1765

Compare with Previous | Blame | View Log

/* Emulation of getpagesize() for systems that need it. */
 
/*
 
NAME
 
	getpagesize -- return the number of bytes in page of memory
 
SYNOPSIS
 
	int getpagesize (void)
 
DESCRIPTION
 
	Returns the number of bytes in a page of memory.  This is the
	granularity of many of the system memory management routines.
	No guarantee is made as to whether or not it is the same as the
	basic memory management hardware page size.
 
BUGS
 
	Is intended as a reasonable replacement for systems where this
	is not provided as a system call.  The value of 4096 may or may
	not be correct for the systems where it is returned as the default
	value.
 
*/
 
#ifndef VMS
 
#include "config.h"
 
#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
 
#undef GNU_OUR_PAGESIZE
#if defined (HAVE_SYSCONF) && defined (HAVE_UNISTD_H)
#include <unistd.h>
#ifdef _SC_PAGESIZE
#define GNU_OUR_PAGESIZE sysconf(_SC_PAGESIZE)
#endif
#endif
 
#ifndef GNU_OUR_PAGESIZE
# ifdef	PAGESIZE
#  define	GNU_OUR_PAGESIZE PAGESIZE
# else	/* no PAGESIZE */
#  ifdef	EXEC_PAGESIZE
#   define	GNU_OUR_PAGESIZE EXEC_PAGESIZE
#  else	/* no EXEC_PAGESIZE */
#   ifdef	NBPG
#    define	GNU_OUR_PAGESIZE (NBPG * CLSIZE)
#    ifndef	CLSIZE
#     define	CLSIZE 1
#    endif	/* CLSIZE */
#   else	/* no NBPG */
#    ifdef	NBPC
#     define	GNU_OUR_PAGESIZE NBPC
#    else	/* no NBPC */
#     define	GNU_OUR_PAGESIZE 4096	/* Just punt and use reasonable value */
#    endif /* NBPC */
#   endif /* NBPG */
#  endif /* EXEC_PAGESIZE */
# endif /* PAGESIZE */
#endif /* GNU_OUR_PAGESIZE */
 
int
getpagesize ()
{
  return (GNU_OUR_PAGESIZE);
}
 
#else /* VMS */
 
#if 0	/* older distributions of gcc-vms are missing <syidef.h> */
#include <syidef.h>
#endif
#ifndef SYI$_PAGE_SIZE	/* VMS V5.4 and earlier didn't have this yet */
#define SYI$_PAGE_SIZE 4452
#endif
extern unsigned long lib$getsyi(const unsigned short *,...);
 
int getpagesize ()
{
  long pagsiz = 0L;
  unsigned short itmcod = SYI$_PAGE_SIZE;
 
  (void) lib$getsyi (&itmcod, (void *) &pagsiz);
  if (pagsiz == 0L)
    pagsiz = 512L;	/* VAX default */
  return (int) pagsiz;
}
 
#endif /* VMS */
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.