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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [binutils-2.20.1/] [libiberty/] [getpagesize.c] - Diff between revs 816 and 818

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

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

powered by: WebSVN 2.1.0

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