Department of Computer Science
University of São Paulo
São Paulo, Brazil
Linux 2.4 Virtual Memory Overview
filemap.c
On this page you can find some of our studies of Linux 2.4 VM system. This
page was created to help us out to visualize VM system better. WARNING:
this material is still very raw and some ideas may have not been correctly
understood. If you have any suggestion or correction, please send an e-mail to
us at [email protected].
description
In filemap.c we have the generic file mmap semantics used by
most "normal" filesystems.
functions
- static void
add_page_to_hash_queue(struct page * page, struct page **p)
- static inline void add_page_to_inode_queue(struct
address_space *mapping, struct page * page)
- static inline void
remove_page_from_inode_queue(struct page * page)
- static inline void
remove_page_from_hash_queue(struct page * page)
- void __remove_inode_page(struct page *page)
- void remove_inode_page(struct page *page)
- static inline int sync_page(struct page *page)
- void __set_page_dirty(struct page *page)
- void invalidate_inode_pages(struct inode * inode)
- static inline void truncate_partial_page(struct
page *page, unsigned partial)
- static inline void truncate_complete_page(struct page *page)
- static int truncate_list_pages(struct list_head
*head, unsigned long start, unsigned *partial)
- void truncate_inode_pages(struct address_space *
mapping, loff_t lstart)
- static inline struct page *
__find_page_nolock(struct address_space *mapping, unsigned
long offset, struct page *page)
- static int writeout_one_page(struct page *page)
- static int waitfor_one_page(struct page *page)
- static int do_buffer_fdatasync(struct list_head
*head, unsigned long start, unsigned long end, int (*fn)(struct page
*))
- int generic_buffer_fdatasync(struct inode *inode,
unsigned long start_idx, unsigned long end_idx)
- void filemap_fdatasync(struct address_space *
mapping)
- void filemap_fdatawait(struct address_space *
mapping)
- void add_to_page_cache_locked(struct page * page,
struct address_space *mapping, unsigned long index)
- static inline void __add_to_page_cache(struct page
* page, struct address_space *mapping, unsigned long offset, struct
page **hash)
- void add_to_page_cache(struct page * page, struct
address_space * mapping, unsigned long offset)
- static int add_to_page_cache_unique( struct page *
page, struct address_space *mapping, unsigned long offset, struct
page **hash)
- static inline int page_cache_read(struct file *
file, unsigned long offset)
- static int read_cluster_nonblocking(struct file *
file, unsigned long offset, unsigned long filesize)
- void ___wait_on_page(struct page *page)
- static void __lock_page(struct page *page)
- void lock_page(struct page *page)
- struct page * __find_get_page(struct address_space
*mapping, unsigned long offset, struct page **hash)
- struct page * __find_lock_page (struct
address_space *mapping, unsigned long offset, struct page **hash)
- static void drop_behind(struct file * file,
unsigned long index)
- static void profile_readahead(int async, struct
file *filp)
- static inline int get_max_readahead(struct inode *
inode)
- static void generic_file_readahead(int reada_ok,
struct file * filp, struct inode * inode, struct page * page)
- void do_generic_file_read(struct file * filp,
loff_t *ppos, read_descriptor_t * desc, read_actor_t actor)
- static int file_read_actor(read_descriptor_t *
desc, struct page *page, unsigned long offset, unsigned long size)
- ssize_t generic_file_read(struct file * filp, char
* buf, size_t count, loff_t *ppos)
- static int file_send_actor(read_descriptor_t *
desc, struct page *page, unsigned long offset , unsigned long size)
- asmlinkage ssize_t sys_sendfile(int out_fd, int
in_fd, off_t *offset, size_t count)
- static void nopage_sequential_readahead(struct
vm_area_struct * vma, unsigned long pgoff, unsigned long filesize)
- struct page * filemap_nopage(struct vm_area_struct
* area, unsigned long address, int no_share)
- static inline int filemap_sync_pte(pte_t * ptep,
struct vm_area_struct *vma, unsigned long address, unsigned int
flags)
- static inline int filemap_sync_pte_range(pmd_t *
pmd, unsigned long address, unsigned long size, struct
vm_area_struct *vma, unsigned long offset, unsigned int flags)
- static inline int filemap_sync_pmd_range(pgd_t *
pgd, unsigned long address, unsigned long size, struct
vm_area_struct *vma, unsigned int flags)
- int filemap_sync(struct vm_area_struct * vma,
unsigned long address, size_t size, unsigned int flags)
- int generic_file_mmap(struct file * file, struct
vm_area_struct * vma)
- static int msync_interval(struct vm_area_struct *
vma, unsigned long start, unsigned long end, int flags)
- asmlinkage long sys_msync(unsigned long start,
size_t len, int flags)
- static inline void setup_read_behavior(struct
vm_area_struct * vma, int behavior)
- static long madvise_fixup_start(struct
vm_area_struct * vma, unsigned long end, int behavior)
- static long madvise_fixup_end(struct
vm_area_struct * vma, unsigned long start, int behavior)
- static long madvise_fixup_middle(struct
vm_area_struct * vma, unsigned long start, unsigned long end, int
behavior)
- static long madvise_behavior(struct vm_area_struct
* vma, unsigned long start, unsigned long end, int behavior)
- static long madvise_willneed(struct vm_area_struct
* vma, unsigned long start, unsigned long end)
- static long madvise_dontneed(struct vm_area_struct
* vma, unsigned long start, unsigned long end)
- static long madvise_vma(struct vm_area_struct *
vma, unsigned long start, unsigned long end, int behavior)
- asmlinkage long sys_madvise(unsigned long start,
size_t len, int behavior)
- static unsigned char mincore_page(struct
vm_area_struct * vma, unsigned long pgoff)
- static long mincore_vma(struct vm_area_struct *
vma, unsigned long start, unsigned long end, unsigned char * vec)
- asmlinkage long sys_mincore(unsigned long start,
size_t len, unsigned char * vec)
- static inline struct page
*__read_cache_page(struct address_space *mapping, unsigned
long index, int (*filler)(void *,struct page*), void *data)
- struct page *read_cache_page(struct address_space
*mapping, unsigned long index, int (*filler)(void *,struct page*),
void *data)
- static inline struct page *
__grab_cache_page(struct address_space *mapping, unsigned
long index, struct page **cached_page)
- struct page *grab_cache_page(struct address_space
*mapping, unsigned long index)
- static inline void remove_suid(struct inode
*inode)
- ssize_t generic_file_write(struct file *file,const
char *buf,size_t count,loff_t *ppos)
- void __init page_cache_init(unsigned long
mempages)
Page last updated on "Mon Apr 30 08:45:31 2001"
Send feedback to
Rodrigo S. de Castro<[email protected]>