// SPDX-License-Identifier: GPL-2.0 /* linux/arch/sparc/kernel/sys_sparc.c * * This file contains various random system calls that * have a non-standard calling sequence on the Linux/sparc * platform.
*/
/* XXX Make this per-binary type, this way we can detect the type of * XXX a binary. Every Sparc executable calls this very early on.
*/
SYSCALL_DEFINE0(getpagesize)
{ return PAGE_SIZE; /* Possibly older binaries want 8192 on sun4's? */
}
if (filp && is_file_hugepages(filp))
file_hugepage = true;
if (flags & MAP_FIXED) { /* We do not accept a shared mapping if it would violate * cache aliasing constraints.
*/ if (!file_hugepage && (flags & MAP_SHARED) &&
((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1))) return -EINVAL; return addr;
}
/* See asm-sparc/uaccess.h */ if (len > TASK_SIZE - PAGE_SIZE) return -ENOMEM; if (!addr)
addr = TASK_UNMAPPED_BASE;
/* * sys_pipe() is the normal C calling standard for creating * a pipe. It's not the way unix traditionally does this, though.
*/
SYSCALL_DEFINE0(sparc_pipe)
{ int fd[2]; int error;
SYSCALL_DEFINE5(sparc_remap_file_pages, unsignedlong, start, unsignedlong, size, unsignedlong, prot, unsignedlong, pgoff, unsignedlong, flags)
{ /* This works on an existing mmap so we don't need to validate * the range as that was done at the original mmap call.
*/ return sys_remap_file_pages(start, size, prot,
(pgoff >> (PAGE_SHIFT - 12)), flags);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.