cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

file-mmu.c (1588B)


      1/* file-mmu.c: ramfs MMU-based file operations
      2 *
      3 * Resizable simple ram filesystem for Linux.
      4 *
      5 * Copyright (C) 2000 Linus Torvalds.
      6 *               2000 Transmeta Corp.
      7 *
      8 * Usage limits added by David Gibson, Linuxcare Australia.
      9 * This file is released under the GPL.
     10 */
     11
     12/*
     13 * NOTE! This filesystem is probably most useful
     14 * not as a real filesystem, but as an example of
     15 * how virtual filesystems can be written.
     16 *
     17 * It doesn't get much simpler than this. Consider
     18 * that this file implements the full semantics of
     19 * a POSIX-compliant read-write filesystem.
     20 *
     21 * Note in particular how the filesystem does not
     22 * need to implement any data structures of its own
     23 * to keep track of the virtual data: using the VFS
     24 * caches is sufficient.
     25 */
     26
     27#include <linux/fs.h>
     28#include <linux/mm.h>
     29#include <linux/ramfs.h>
     30#include <linux/sched.h>
     31
     32#include "internal.h"
     33
     34static unsigned long ramfs_mmu_get_unmapped_area(struct file *file,
     35		unsigned long addr, unsigned long len, unsigned long pgoff,
     36		unsigned long flags)
     37{
     38	return current->mm->get_unmapped_area(file, addr, len, pgoff, flags);
     39}
     40
     41const struct file_operations ramfs_file_operations = {
     42	.read_iter	= generic_file_read_iter,
     43	.write_iter	= generic_file_write_iter,
     44	.mmap		= generic_file_mmap,
     45	.fsync		= noop_fsync,
     46	.splice_read	= generic_file_splice_read,
     47	.splice_write	= iter_file_splice_write,
     48	.llseek		= generic_file_llseek,
     49	.get_unmapped_area	= ramfs_mmu_get_unmapped_area,
     50};
     51
     52const struct inode_operations ramfs_file_inode_operations = {
     53	.setattr	= simple_setattr,
     54	.getattr	= simple_getattr,
     55};