Changeset 445 for trunk/kernel/kern


Ignore:
Timestamp:
May 29, 2018, 9:27:23 AM (7 years ago)
Author:
alain
Message:

Restructure the mini_libc.

Location:
trunk/kernel/kern
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/kernel/kern/printk.c

    r443 r445  
    3030#include <chdev.h>
    3131#include <printk.h>
     32#include <shared_syscalls.h>
    3233
    3334///////////////////////////////////////////////////////////////////////////////////
     
    416417
    417418        // suicide
    418         hal_core_sleep();
     419        sys_exit( EXIT_FAILURE );
    419420    }
    420421}
  • trunk/kernel/kern/process.c

    r443 r445  
    401401uint32_t cycle = (uint32_t)hal_get_cycles();
    402402if( DEBUG_PROCESS_DESTROY )
    403 printk("\n[DBG] %s : thread %x enter in cluster %x / pid %x / process %x / cycle %d\n",
    404 __FUNCTION__ , CURRENT_THREAD , pid , process , cycle );
     403printk("\n[DBG] %s : thread %x enter for process %x in cluster %x / cycle %d\n",
     404__FUNCTION__ , CURRENT_THREAD , pid , local_cxy , cycle );
    405405#endif
    406406
     
    447447cycle = (uint32_t)hal_get_cycles();
    448448if( DEBUG_PROCESS_DESTROY )
    449 printk("\n[DBG] %s : thread %x exit / destroyed process %x (pid = %x) / cycle %d\n",
    450 __FUNCTION__ , CURRENT_THREAD , process, pid, cycle );
     449printk("\n[DBG] %s : thread %x exit / destroyed process %x in cluster %x / cycle %d\n",
     450__FUNCTION__ , CURRENT_THREAD , pid, local_cxy, cycle );
    451451#endif
    452452
     
    13791379    process_txt_detach( XPTR( local_cxy , old_process ) );
    13801380
    1381     // request old_thread destruction => old_process destruction
     1381    // block this old_thread
    13821382    thread_block( XPTR( local_cxy , old_thread ) , THREAD_BLOCKED_GLOBAL );
    1383     hal_atomic_or( &old_thread->flags , THREAD_FLAG_REQ_DELETE );
     1383
     1384    // atomically update old_process descriptor term_state to ask
     1385    // the parent process (wait() function) to delete this old_thread
     1386    hal_atomic_or( &old_process->term_state , PROCESS_TERM_EXIT );
    13841387
    13851388    hal_fence();
  • trunk/kernel/kern/process.h

    r443 r445  
    535535/*********************************************************************************************
    536536 * This function detach a process, identified by the <process_xp> argument,
    537  * from the list of process attached to a given TXT terminal.
     537 * from the list of process attached to a given TXT terminal. It transfer the TXT ownership,
     538 * if the detached process is the TXT owner.
    538539 * The target process descriptor must be in the owner cluster, but the calling thread can
    539540 * be running in any cluster.
  • trunk/kernel/kern/scheduler.c

    r443 r445  
    248248uint32_t cycle = (uint32_t)hal_get_cycles();
    249249if( DEBUG_SCHED_HANDLE_SIGNALS < cycle )
    250 printk("\n[DBG] %s : thread %x in proces %x on core[%x,%d] deleted / cycle %d\n",
     250printk("\n[DBG] %s : thread %x in process %x on core[%x,%d] deleted / cycle %d\n",
    251251__FUNCTION__ , thread->trdid , process->pid , local_cxy , thread->core->lid , cycle );
    252252#endif
Note: See TracChangeset for help on using the changeset viewer.