Changeset 246 for trunk/kernel/mm
- Timestamp:
- Jul 20, 2017, 12:55:23 PM (7 years ago)
- Location:
- trunk/kernel/mm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/mm/mapper.c
r238 r246 40 40 #include <mapper.h> 41 41 42 ////////////////////////// 43 mapper_t * mapper_create( )42 ////////////////////////////////////////////// 43 mapper_t * mapper_create( vfs_fs_type_t type ) 44 44 { 45 45 mapper_t * mapper; … … 78 78 } 79 79 80 // initialize mapper type 81 mapper->type = type; 82 80 83 // initialize mapper lock 81 84 rwlock_init( &mapper->lock ); … … 139 142 error_t error; 140 143 141 mapper_dmsg("\n[INFO] %s : enter for page %d / mapper =%x\n",144 mapper_dmsg("\n[INFO] %s : enters for page %d in mapper %x\n", 142 145 __FUNCTION__ , index , mapper ); 143 146 … … 254 257 } 255 258 256 mapper_dmsg("\n[INFO] %s : exit for page %d / pagedesc = %x\n",257 __FUNCTION__ , index , page );259 mapper_dmsg("\n[INFO] %s : exit for page %d in mapper %x / page_desc = %x\n", 260 __FUNCTION__ , index , mapper , page ); 258 261 259 262 return page; -
trunk/kernel/mm/mapper.h
r238 r246 49 49 * - The mapper is protected by a blocking "rwlock", to support several simultaneous 50 50 * readers, and only one writer. This lock implement a busy waiting policy. 51 * - The vfs_mapper_move_page() and vfs_mapper_load_all() functions are used to move 52 * pages to or from the file system on device. 51 * - The mapper_get_page() function that return a page descriptor pointer from a page 52 * index in file is in charge of handling the miss on the mapper cache. 53 * - The vfs_mapper_move_page() function is used to handle miss on one specific page, 54 * or update a dirty page on device. 55 * - The vfs_mapper_load_all() functions is used to load all pages of a given directory 56 * into the mapper. 53 57 * - the mapper_move() function is used to move data to or from an user buffer. 54 58 * This user space buffer can be physically distributed in several clusters. 55 * - The mapper_get_page() function that return a page descriptor pointer from a page 56 * index in file is in charge of handling the miss on the mapper cache. 57 * - In the present implementation the cache size increases on demand, and the 58 * allocated memory is only released when the mapper/inode is destroyed. 59 * - In the present implementation the cache size for a given file increases on demand, 60 * and the allocated memory is only released when the mapper/inode is destroyed. 59 61 ******************************************************************************************/ 60 62 … … 67 69 { 68 70 struct vfs_inode_s * inode; /*! owner inode */ 71 uint32_t type; /*! file system type */ 69 72 grdxt_t radix; /*! pages cache implemented as a radix tree */ 70 73 rwlock_t lock; /*! several readers / only one writer */
Note: See TracChangeset
for help on using the changeset viewer.