cregit-Linux how code gets into the kernel

Release 4.14 arch/sh/kernel/sys_sh.c

Directory: arch/sh/kernel
// SPDX-License-Identifier: GPL-2.0
/*
 * linux/arch/sh/kernel/sys_sh.c
 *
 * This file contains various random system calls that
 * have a non-standard calling sequence on the Linux/SuperH
 * platform.
 *
 * Taken from i386 version.
 */
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/smp.h>
#include <linux/sem.h>
#include <linux/msg.h>
#include <linux/shm.h>
#include <linux/stat.h>
#include <linux/syscalls.h>
#include <linux/mman.h>
#include <linux/file.h>
#include <linux/utsname.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/ipc.h>
#include <asm/syscalls.h>
#include <linux/uaccess.h>
#include <asm/unistd.h>
#include <asm/cacheflush.h>
#include <asm/cachectl.h>


asmlinkage int old_mmap(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, int fd, unsigned long off) { if (off & ~PAGE_MASK) return -EINVAL; return sys_mmap_pgoff(addr, len, prot, flags, fd, off>>PAGE_SHIFT); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)5798.28%150.00%
Al Viro11.72%150.00%
Total58100.00%2100.00%


asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff) { /* * The shift for mmap2 is constant, regardless of PAGE_SIZE * setting. */ if (pgoff & ((1 << (PAGE_SHIFT - 12)) - 1)) return -EINVAL; pgoff >>= PAGE_SHIFT - 12; return sys_mmap_pgoff(addr, len, prot, flags, fd, pgoff); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)4560.00%133.33%
Toshinobu Sugioka2938.67%133.33%
Al Viro11.33%133.33%
Total75100.00%3100.00%

/* sys_cacheflush -- flush (part of) the processor cache. */
asmlinkage int sys_cacheflush(unsigned long addr, unsigned long len, int op) { struct vm_area_struct *vma; if ((op <= 0) || (op > (CACHEFLUSH_D_PURGE|CACHEFLUSH_I))) return -EINVAL; /* * Verify that the specified address region actually belongs * to this process. */ if (addr + len < addr) return -EFAULT; down_read(&current->mm->mmap_sem); vma = find_vma (current->mm, addr); if (vma == NULL || addr < vma->vm_start || addr + len > vma->vm_end) { up_read(&current->mm->mmap_sem); return -EFAULT; } switch (op & CACHEFLUSH_D_PURGE) { case CACHEFLUSH_D_INVAL: __flush_invalidate_region((void *)addr, len); break; case CACHEFLUSH_D_WB: __flush_wback_region((void *)addr, len); break; case CACHEFLUSH_D_PURGE: __flush_purge_region((void *)addr, len); break; } if (op & CACHEFLUSH_I) flush_icache_range(addr, addr+len); up_read(&current->mm->mmap_sem); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Stuart Menefy18695.38%133.33%
Giuseppe Cavallaro94.62%266.67%
Total195100.00%3100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Stuart Menefy19349.36%15.88%
Linus Torvalds (pre-git)13835.29%317.65%
Toshinobu Sugioka297.42%15.88%
Paul Mundt112.81%423.53%
Giuseppe Cavallaro92.30%211.76%
Arnd Bergmann30.77%15.88%
Andrew Morton30.77%15.88%
Al Viro20.51%15.88%
Greg Kroah-Hartman10.26%15.88%
Linus Torvalds10.26%15.88%
Adrian Bunk10.26%15.88%
Total391100.00%17100.00%
Directory: arch/sh/kernel
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.