- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#j0212e4c]
#backlinks
*説明 [#qc679d4e]
-パス: [[linux-2.6.33/include/linux/mm_types.h]]
-FIXME: これは何?
--説明
**参考 [#p33d180b]
*実装 [#e9d83a56]
struct mm_struct {
struct vm_area_struct * mmap; /* list of VMAs */
-
--[[linux-2.6.33/vm_area_struct]]
struct rb_root mm_rb;
-
--[[linux-2.6.33/rb_root]]
struct vm_area_struct * mmap_cache; /* last find_vma result */
#ifdef CONFIG_MMU
-
--[[linux-2.6.33/CONFIG_MMU]]
unsigned long (*get_unmapped_area) (struct file *filp,
unsigned long addr, unsigned long len,
unsigned long pgoff, unsigned long flags);
-
--[[linux-2.6.33/file]]
void (*unmap_area) (struct mm_struct *mm, unsigned long addr);
#endif
unsigned long mmap_base; /* base of mmap area */
unsigned long task_size; /* size of task vm space */
unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */
unsigned long free_area_cache; /* first hole of size cached_hole_size or larger */
pgd_t * pgd;
-
--[[linux-2.6.33/pgd_t]]
atomic_t mm_users; /* How many users with user space? */
atomic_t mm_count; /* How many references to "struct mm_struct" (users count as 1) */
-
--[[linux-2.6.33/atomic_t]]
int map_count; /* number of VMAs */
struct rw_semaphore mmap_sem;
-
--[[linux-2.6.33/rw_semaphore]]
spinlock_t page_table_lock; /* Protects page tables and some counters */
-
--[[linux-2.6.33/spinlock_t]]
struct list_head mmlist; /* List of maybe swapped mm's. These are globally strung
* together off init_mm.mmlist, and are protected
* by mmlist_lock
*/
-
--[[linux-2.6.33/list_head]]
/* Special counters, in some configurations protected by the
* page_table_lock, in other configurations by being atomic.
*/
mm_counter_t _file_rss;
mm_counter_t _anon_rss;
-
--[[linux-2.6.33/mm_counter_t]]
unsigned long hiwater_rss; /* High-watermark of RSS usage */
unsigned long hiwater_vm; /* High-water virtual memory usage */
unsigned long total_vm, locked_vm, shared_vm, exec_vm;
unsigned long stack_vm, reserved_vm, def_flags, nr_ptes;
unsigned long start_code, end_code, start_data, end_data;
unsigned long start_brk, brk, start_stack;
unsigned long arg_start, arg_end, env_start, env_end;
unsigned long saved_auxv[AT_VECTOR_SIZE]; /* for /proc/PID/auxv */
struct linux_binfmt *binfmt;
-
--[[linux-2.6.33/linux_binfmt]]
cpumask_t cpu_vm_mask;
-
--[[linux-2.6.33/cpumask_t]]
/* Architecture-specific MM context */
mm_context_t context;
-
--[[linux-2.6.33/mm_context_t]]
/* Swap token stuff */
/*
* Last value of global fault stamp as seen by this process.
* In other words, this value gives an indication of how long
* it has been since this task got the token.
* Look at mm/thrash.c
*/
unsigned int faultstamp;
unsigned int token_priority;
unsigned int last_interval;
unsigned long flags; /* Must use atomic bitops to access the bits */
struct core_state *core_state; /* coredumping support */
#ifdef CONFIG_AIO
-
--[[linux-2.6.33/CONFIG_AIO]]
spinlock_t ioctx_lock;
struct hlist_head ioctx_list;
-
--[[linux-2.6.33/hlist_head]]
#endif
#ifdef CONFIG_MM_OWNER
-
--[[linux-2.6.33/CONFIG_MM_OWNER]]
/*
* "owner" points to a task that is regarded as the canonical
* user/owner of this mm. All of the following must be true in
* order for it to be changed:
*
* current == mm->owner
* current->mm != mm
* new_owner->mm == mm
* new_owner->alloc_lock is held
*/
struct task_struct *owner;
-
--[[linux-2.6.33/task_struct]]
#endif
#ifdef CONFIG_PROC_FS
-
--[[linux-2.6.33/CONFIG_PROC_FS]]
/* store ref to file /proc/<pid>/exe symlink points to */
struct file *exe_file;
unsigned long num_exe_file_vmas;
#endif
#ifdef CONFIG_MMU_NOTIFIER
-
--[[linux-2.6.33/CONFIG_MMU_NOTIFIER]]
struct mmu_notifier_mm *mmu_notifier_mm;
-
--[[linux-2.6.33/mmu_notifier_mm]]
#endif
};
*コメント [#n416ed55]