getpagesize.c

来自「基于4个mips核的noc设计」· C语言 代码 · 共 97 行

C
97
字号
/* Emulation of getpagesize() for systems that need it. *//*NAME	getpagesize -- return the number of bytes in page of memorySYNOPSIS	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 */intgetpagesize (){  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#endifextern 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 */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?