Changeset 415 for trunk/kernel/kern/process.c
- Timestamp:
- Dec 22, 2017, 1:16:59 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/kern/process.c
r409 r415 125 125 uint32_t stdout_id; 126 126 uint32_t stderr_id; 127 error_t error; 127 128 128 129 process_dmsg("\n[DBG] %s : core[%x,%d] enters for process %x / ppid = %x\n", … … 139 140 140 141 // initialize vmm as empty 141 vmm_init( process ); 142 error = vmm_init( process ); 143 assert( (error == 0) , __FUNCTION__ , "cannot initialize VMM\n" ); 144 142 145 143 146 process_dmsg("\n[DBG] %s : core[%x,%d] / vmm empty for process %x\n", … … 259 262 xptr_t reference_process_xp ) 260 263 { 264 error_t error; 265 261 266 // get reference process cluster and local pointer 262 267 cxy_t ref_cxy = GET_CXY( reference_process_xp ); … … 272 277 273 278 // reset local process vmm 274 vmm_init( local_process ); 279 error = vmm_init( local_process ); 280 assert( (error == 0) , __FUNCTION__ , "cannot initialize VMM\n"); 275 281 276 282 // reset process file descriptors array … … 309 315 // register new process descriptor in owner cluster manager copies_list 310 316 cluster_process_copies_link( local_process ); 311 312 // initialize signal manager TODO [AG]313 317 314 318 hal_fence(); … … 397 401 process_t * process_ptr; // local pointer on process copy 398 402 399 sig nal_dmsg("\n[DBG] %s : enter for signal %s to process %x in cluster %x\n",403 sigaction_dmsg("\n[DBG] %s : enter for signal %s to process %x in cluster %x\n", 400 404 __FUNCTION__ , process_action_str( action_type ) , process , local_cxy ); 401 405 … … 432 436 process_ptr = (process_t *)GET_PTR( process_xp ); 433 437 434 printk("\n @@@%s : process = %x / pid = %x / ppid = %x\n",438 sigaction_dmsg("\n[DBG] %s : process = %x / pid = %x / ppid = %x\n", 435 439 __FUNCTION__ , process_ptr , process_ptr->pid , process_ptr->ppid ); 436 440 … … 449 453 sched_yield("BLOCKED on RPC"); 450 454 451 sig nal_dmsg("\n[DBG] %s : exit for signal %s to process %x in cluster %x\n",455 sigaction_dmsg("\n[DBG] %s : exit for signal %s to process %x in cluster %x\n", 452 456 __FUNCTION__ , process_action_str( action_type ) , process , local_cxy ); 453 457 … … 471 475 killer = CURRENT_THREAD; 472 476 473 sig nal_dmsg("\n[DBG] %s : enter for process %x in cluster %x\n",477 sigaction_dmsg("\n[DBG] %s : enter for process %x in cluster %x\n", 474 478 __FUNCTION__ , process->pid , local_cxy ); 475 479 … … 532 536 } 533 537 534 sig nal_dmsg("\n[DBG] %s : exit for process %x in cluster %x / %d threads blocked\n",538 sigaction_dmsg("\n[DBG] %s : exit for process %x in cluster %x / %d threads blocked\n", 535 539 __FUNCTION__ , process->pid , local_cxy , count ); 536 540 … … 553 557 killer = CURRENT_THREAD; 554 558 555 sig nal_dmsg("\n[DBG] %s : enter for process %x in cluster %x\n",559 sigaction_dmsg("\n[DBG] %s : enter for process %x in cluster %x\n", 556 560 __FUNCTION__ , process->pid , local_cxy ); 557 561 … … 586 590 } 587 591 588 sig nal_dmsg("\n[DBG] %s : exit for process %x in cluster %x / %d threads blocked\n",592 sigaction_dmsg("\n[DBG] %s : exit for process %x in cluster %x / %d threads blocked\n", 589 593 __FUNCTION__ , process->pid , local_cxy , req_count ); 590 594 … … 607 611 pid = process->pid; 608 612 609 sig nal_dmsg("\n[DBG] %s : enter for process %x in cluster %x at cycle %d\n",613 sigaction_dmsg("\n[DBG] %s : enter for process %x in cluster %x at cycle %d\n", 610 614 __FUNCTION__ , pid , local_cxy , (uint32_t)hal_get_cycles() ); 611 615 … … 648 652 } 649 653 650 sig nal_dmsg("\n[DBG] %s : exit for process %x in cluster %x at cycle %d\n",654 sigaction_dmsg("\n[DBG] %s : exit for process %x in cluster %x at cycle %d\n", 651 655 __FUNCTION__ , pid , local_cxy , (uint32_t)hal_get_cycles() ); 652 656 … … 1181 1185 __FUNCTION__, local_cxy, CURRENT_THREAD->core->lid ); 1182 1186 1183 // re-initialize VMM 1184 vmm_init( process ); 1187 // initialize VMM 1188 error = vmm_init( process ); 1189 { 1190 printk("\n[ERROR] in %s : cannot initialize VMM for process %x / path = %s\n", 1191 __FUNCTION__, pid , path ); 1192 process_destroy( process ); 1193 return -1; 1194 } 1195 1196 if( error ) 1185 1197 1186 1198 // register "code" and "data" vsegs as well as entry-point and vfs_bin_xp 1187 1199 // in VMM, using information contained in the elf file. 1188 if( elf_load_process( path , process ) ) 1200 error = elf_load_process( path , process ); 1201 1202 if( error ) 1189 1203 { 1190 1204 printk("\n[ERROR] in %s : failed to access .elf file for process %x / path = %s\n",
Note: See TracChangeset
for help on using the changeset viewer.