Changeset 656 for trunk/kernel/mm/kmem.c
- Timestamp:
- Dec 6, 2019, 12:07:51 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/mm/kmem.c
r635 r656 45 45 flags = req->flags; 46 46 47 ////////////////////// //////////// PPM47 ////////////////////// 48 48 if( type == KMEM_PPM ) 49 49 { … … 76 76 return ptr; 77 77 } 78 /////////////////////////// ////////// KCM78 /////////////////////////// 79 79 else if( type == KMEM_KCM ) 80 80 { … … 102 102 return ptr; 103 103 } 104 /////////////////////////// ///////// KHM104 /////////////////////////// 105 105 else if( type == KMEM_KHM ) 106 106 { … … 140 140 uint32_t type = req->type; 141 141 142 ////////////////////// 142 143 if( type == KMEM_PPM ) 143 144 { … … 146 147 ppm_free_pages( page ); 147 148 } 149 /////////////////////////// 148 150 else if( type == KMEM_KCM ) 149 151 { 150 152 kcm_free( req->ptr ); 151 153 } 154 /////////////////////////// 152 155 else if( type == KMEM_KHM ) 153 156 { … … 172 175 flags = req->flags; 173 176 174 ////////////////////// /////////// PPM175 if( type == KMEM_PPM ) 176 { 177 // allocate the number of requested pages 178 page_t * page_ptr= ppm_remote_alloc_pages( cxy , order );179 180 if( page_ ptr ==NULL )177 ////////////////////// 178 if( type == KMEM_PPM ) 179 { 180 // allocate the number of requested pages from remote cluster 181 xptr_t page_xp = ppm_remote_alloc_pages( cxy , order ); 182 183 if( page_xp == XPTR_NULL ) 181 184 { 182 185 printk("\n[ERROR] in %s : failed for PPM / order %d in cluster %x\n", … … 185 188 } 186 189 187 xptr_t page_xp = XPTR( cxy , page_ptr ); 188 189 // get pointer on buffer from the page descriptor 190 // get extended pointer on remote buffer 190 191 xptr_t base_xp = ppm_page2base( page_xp ); 191 192 … … 193 194 if( flags & AF_ZERO ) hal_remote_memset( base_xp , 0 , CONFIG_PPM_PAGE_SIZE ); 194 195 195 void * ptr = GET_PTR( base_xp );196 196 197 197 #if DEBUG_KMEM_REMOTE … … 201 201 printk("\n[%s] thread[%x,%x] from PPM / %d page(s) / ppn %x / cxy %x / cycle %d\n", 202 202 __FUNCTION__, this->process->pid, this->trdid, 203 1<<order, ppm_page2ppn( XPTR(local_cxy,ptr)), cxy, cycle );204 #endif 205 return ptr;206 } 207 /////////////////////////// //////// KCM203 1<<order, ppm_page2ppn( page_xp ), cxy, cycle ); 204 #endif 205 return GET_PTR( base_xp ); 206 } 207 /////////////////////////// 208 208 else if( type == KMEM_KCM ) 209 209 { … … 231 231 return ptr; 232 232 } 233 /////////////////////////// //////// KHM233 /////////////////////////// 234 234 else if( type == KMEM_KHM ) 235 235 { … … 250 250 uint32_t type = req->type; 251 251 252 ////////////////////// 252 253 if( type == KMEM_PPM ) 253 254 { … … 256 257 ppm_remote_free_pages( cxy , page ); 257 258 } 259 /////////////////////////// 258 260 else if( type == KMEM_KCM ) 259 261 { 260 262 kcm_remote_free( cxy , req->ptr ); 261 263 } 264 /////////////////////////// 262 265 else if( type == KMEM_KHM ) 263 266 {
Note: See TracChangeset
for help on using the changeset viewer.