![]() |
The ROme OpTimistic Simulator
2.0.0
A General-Purpose Multithreaded Parallel/Distributed Simulation Platform
|
Per-thread page table. More...
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/errno.h>
#include <linux/device.h>
#include <linux/kprobes.h>
#include <linux/mutex.h>
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/version.h>
#include <asm/tlbflush.h>
#include <asm/page.h>
#include <asm/cacheflush.h>
#include <linux/uaccess.h>
#include "cross_state_manager.h"
Go to the source code of this file.
Typedefs | |
typedef void(* | do_page_fault_t) (struct pt_regs *, unsigned long) |
Functions | |
static int | rs_ktblmgr_init (void) |
static void | rs_ktblmgr_cleanup (void) |
static int | rs_ktblmgr_open (struct inode *, struct file *) |
static int | rs_ktblmgr_release (struct inode *, struct file *) |
static long | rs_ktblmgr_ioctl (struct file *, unsigned int, unsigned long) |
MODULE_LICENSE ("GPL") | |
MODULE_AUTHOR ("Alessandro Pellegrini <pellegrini@dis.uniroma1.it>, Francesco Quaglia <quaglia@dis.uniroma1.it>") | |
MODULE_DESCRIPTION ("ROOT-Sim Multiple Page Table Kernel Module") | |
module_init (rs_ktblmgr_init) | |
module_exit (rs_ktblmgr_cleanup) | |
static | DEFINE_MUTEX (rs_ktblmgr_mutex) |
Only one process can access this device (before spawning threads!) | |
static | DEVICE_ATTR (multimap, S_IRUSR|S_IRGRP|S_IROTH, NULL, NULL) |
static void | rootsim_load_cr3 (pgd_t *pgdir) |
static void | set_single_pte_sticky_flag (void *target_address) |
static void | set_pte_sticky_flags (ioctl_info *info) |
static int | get_pde_sticky_bit (void *target_address) |
static int | get_pte_sticky_bit (void *target_address) |
static int | get_presence_bit (void *target_address) |
static void | set_presence_bit (void *target_address) |
static void | set_page_privilege (ioctl_info *info) |
static void | set_single_page_privilege (ioctl_info *info) |
void | root_sim_page_fault (struct pt_regs *regs, long error_code, do_page_fault_t kernel_handler) |
EXPORT_SYMBOL (root_sim_page_fault) | |
void | the_pager (void) |
Variables | |
void(* | rootsim_pager )(void) =NULL |
static int | major |
Device major number. | |
static struct class * | dev_cl = NULL |
Device class being created. | |
static struct device * | device = NULL |
Device being created. | |
struct mutex | pgd_get_mutex |
struct mm_struct * | mm_struct_addr [128] |
void * | pgd_addr [128] |
unsigned int | managed_pgds = 0 |
struct mm_struct * | original_view [128] |
int | stack_index = 256 - 1 |
void * | auxiliary_frames [256] |
int | root_sim_processes [128] ={[0 ... ( 128 -1)] = -1} |
fault_info_t * | root_sim_fault_info [128] |
int | currently_open [128][1024] |
int | open_index [128] ={[0 ... ( 128 -1)] = -1} |
void ** | ancestor_pml4 |
int | restore_pml4 |
int | restore_pml4_entries |
int | mapped_processes |
ulong | callback |
struct vm_area_struct * | changed_mode_mmap |
struct vm_operations_struct * | original_vm_ops |
struct vm_operations_struct | auxiliary_vm_ops_table |
struct vm_area_struct * | target_vma |
int(* | original_fault_handler )(struct vm_area_struct *vma, struct vm_fault *vmf) |
struct file_operations | fops |
File operations for the module. More... | |
void(* | flush_tlb_all_lookup )(void) = NULL |
This is to access the actual flush_tlb_all using a kernel proble. | |
Per-thread page table.
This Linux kernel module implements a modification to the x86_64 page table management to support event cross state dependency tracking
This file is part of ROOT-Sim (ROme OpTimistic Simulator).
ROOT-Sim is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; only version 3 of the License applies.
ROOT-Sim 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 General Public License for more details.
You should have received a copy of the GNU General Public License along with ROOT-Sim; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Definition in file cross_state_manager.c.
struct file_operations fops |
File operations for the module.
Definition at line 133 of file cross_state_manager.c.