MOS Source Code
Loading...
Searching...
No Matches
page_cache.h File Reference
+ Include dependency graph for page_cache.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

phyframe_tpagecache_get_page_for_read (inode_cache_t *cache, off_t pgoff)
 Get a page from the page cache.
 
phyframe_tpagecache_get_page_for_write (inode_cache_t *cache, off_t pgoff)
 Get a page from the page cache for writing.
 
ssize_t vfs_read_pagecache (inode_cache_t *icache, void *buf, size_t size, off_t offset)
 
ssize_t vfs_write_pagecache (inode_cache_t *icache, const void *buf, size_t total_size, off_t offset)
 
long pagecache_flush_or_drop (inode_cache_t *icache, off_t pgoff, size_t npages, bool drop_page)
 Flush or drop a range of pages from the page cache.
 
long pagecache_flush_or_drop_all (inode_cache_t *icache, bool drop_page)
 Flush or drop all pages in the page cache.
 

Function Documentation

◆ pagecache_get_page_for_read()

phyframe_t * pagecache_get_page_for_read ( inode_cache_t * cache,
off_t pgoff )

Get a page from the page cache.

Parameters
cacheThe inode cache
pgoffThe page offset
Returns
phyframe_t* The page, or NULL if it doesn't exist
Note
Caller must hold the cache's lock

Definition at line 85 of file page_cache.c.

Referenced by pagecache_get_page_for_write(), vfs_fault_handler(), and vfs_read_pagecache().

+ Here is the call graph for this function:

◆ pagecache_get_page_for_write()

phyframe_t * pagecache_get_page_for_write ( inode_cache_t * cache,
off_t pgoff )

Get a page from the page cache for writing.

Parameters
cacheThe inode cache
pgoffThe page offset
Returns
phyframe_t* The page

Definition at line 103 of file page_cache.c.

Referenced by simple_page_write_begin().

+ Here is the call graph for this function:

◆ vfs_read_pagecache()

ssize_t vfs_read_pagecache ( inode_cache_t * icache,
void * buf,
size_t size,
off_t offset )

Definition at line 108 of file page_cache.c.

Referenced by vfs_generic_read().

+ Here is the call graph for this function:

◆ vfs_write_pagecache()

ssize_t vfs_write_pagecache ( inode_cache_t * icache,
const void * buf,
size_t total_size,
off_t offset )

Definition at line 137 of file page_cache.c.

Referenced by vfs_generic_write().

+ Here is the call graph for this function:

◆ pagecache_flush_or_drop()

long pagecache_flush_or_drop ( inode_cache_t * icache,
off_t pgoff,
size_t npages,
bool drop_page )

Flush or drop a range of pages from the page cache.

Parameters
icacheThe inode cache
pgoffThe starting page offset
npagesThe number of pages to flush or drop
drop_pageWhether to drop the pages, or just flush them
Returns
long

Definition at line 56 of file page_cache.c.

Referenced by do_pagecache_flush().

+ Here is the call graph for this function:

◆ pagecache_flush_or_drop_all()

long pagecache_flush_or_drop_all ( inode_cache_t * icache,
bool drop_page )

Flush or drop all pages in the page cache.

Parameters
icacheThe inode cache
drop_pageWhether to drop the pages, or just flush them
Returns
long

Definition at line 78 of file page_cache.c.

Referenced by do_pagecache_flush(), and inode_try_drop().

+ Here is the call graph for this function: