root/include/linux/vmm.h

/* [previous][next][first][last][top][bottom][index][help] */
   1 #ifndef _LINUX_VMM_H
   2 #define _LINUX_VMM_H
   3 
   4 /*
   5  * Linux kernel virtual memory manager primitives.
   6  * The idea being to have a "virtual" mm in the same way
   7  * we have a virtual fs - giving a cleaner interface to the
   8  * mm details, and allowing different kinds of memory mappings
   9  * (from shared memory to executable loading to arbitrary
  10  * mmap() functions).
  11  */
  12 
  13 /*
  14  * This struct defines a memory VMM memory area. There is one of these
  15  * per VM-area/task.  A VM area is any part of the process virtual memory
  16  * space that has a special rule for the page-fault handlers (ie a shared
  17  * library, the executable area etc).
  18  */
  19 struct vm_area_struct {
  20         unsigned long vm_start;                 /* VM area parameters */
  21         unsigned long vm_end;
  22         struct vm_area_struct * vm_next;        /* ordered linked list */
  23         struct vm_area_struct * vm_share;       /* circular linked list */
  24         struct inode * vm_inode;
  25         unsigned long vm_offset;
  26         struct vm_operations_struct * vm_ops;
  27         unsigned long vm_flags;
  28 };
  29 
  30 struct vm_operations_struct {
  31         void (*open)(struct task_struct * tsk, struct vm_area_struct * area);
  32         void (*close)(struct task_struct * tsk, struct vm_area_struct * area);
  33         void (*nopage)(struct task_struct * tsk, struct vm_area_struct * area, unsigned long address);
  34         void (*wppage)(struct task_struct * tsk, struct vm_area_struct * area, unsigned long address);
  35 };
  36 
  37 #endif

/* [previous][next][first][last][top][bottom][index][help] */