gcc/include/vtv-change-permission.h
2024-01-03 12:19:35 +01:00

63 lines
2.1 KiB
C

/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
This file is part of GCC.
modify it under the terms of the GNU Library General Public License
as published by the Free Software Foundation; either version 2, or
(at your option) any later version.
In addition to the permissions in the GNU Library General Public
License, the Free Software Foundation gives you unlimited
permission to link the compiled version of this file into
combinations with other programs, and to distribute those
combinations without any restriction coming from the use of this
file. (The Library Public License restrictions do apply in other
respects; for example, they cover modification of the file, and
distribution when not linked into a combined executable.)
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
#ifndef __VTV_H__
#define __VTV_H__
/* We could have used an enumeration here but it just makes it more
difficult for the compiler to generate a call to this. These are
used as arguments to the function __VLTChangePermission, declared
below. */
#define __VLTP_READ_ONLY 0
#define __VLTP_READ_WRITE 1
#ifdef __cplusplus
extern "C" void __VLTChangePermission (int);
#else
extern void __VLTChangePermission (int);
#endif
#ifdef BIG_PAGE_SIZE
/* TODO - Replace '4096' below with correct big page size. */
#define VTV_PAGE_SIZE 4096
#else
#if defined(__sun__) && defined(__svr4__) && defined(__sparc__)
#define VTV_PAGE_SIZE 8192
#elif defined(__loongarch_lp64)
/* The page size is configurable by the kernel to be 4, 16 or 64 KiB.
For now, only the default page size of 16KiB is supported. */
#define VTV_PAGE_SIZE 16384
#else
#define VTV_PAGE_SIZE 4096
#endif
#endif
#endif /* __VTV_H__ */