Index: trunk/kernel/kern/thread.h
===================================================================
--- trunk/kernel/kern/thread.h	(revision 635)
+++ trunk/kernel/kern/thread.h	(revision 641)
@@ -28,4 +28,5 @@
 #include <hal_kernel_types.h>
 #include <shared_syscalls.h>
+#include <shared_almos.h>
 #include <hal_special.h>
 #include <hal_kentry.h>
@@ -95,23 +96,4 @@
 
 /***************************************************************************************
- * This structure defines thread instrumentation informations.
- **************************************************************************************/
-
-typedef struct thread_info_s
-{
-	uint32_t     false_pgfault_nr;       /*! number of local page fault               */
-	uint32_t     local_pgfault_nr;       /*! number of local page fault               */
-	uint32_t     global_pgfault_nr;      /*! number of global page fault              */
-    uint32_t     false_pgfault_cost;     /*! cumulated cost                           */
-    uint32_t     local_pgfault_cost;     /*! cumulated cost                           */
-    uint32_t     global_pgfault_cost;    /*! cumulated cost                           */
-
-	cycle_t      last_cycle;             /*! last cycle counter value (date)          */
-	cycle_t      usr_cycles;             /*! user execution duration (cycles)         */
-	cycle_t      sys_cycles;             /*! system execution duration (cycles)       */
-}
-thread_info_t;
-
-/***************************************************************************************
  * This structure defines a thread descriptor.
  * It is used for both the user threads and the kernel threads.
@@ -119,26 +101,31 @@
  * - The TRDID 16 LSB bits contain the LTID (Local Thread Index).
  * - The TRDID 16 MSB bits contain the CXY of cluster containing the thread.
- * The main thread LTID value is always 0. 
+ * For the main thread the LTID value is always 0, in the owner cluster. 
  * The LTID is used to index the th_tbl[] array in the local process descriptor.
  * This TRDID is computed by the process_register_thread() function, when the user
  * thread is registered in the local copy of the process descriptor.
  *
- * WARNING (1) Don't modify the first 4 fields order, as this order is used by the
- *             hal_kentry assembly code for the TSAR architectures.
- *
- * WARNING (2) Most of the thread state is private and accessed only by this thread,
- *             but some fields are shared, and can be modified by other threads.
- *             - the "blocked" bit_vector can be modified by another thread
- *               running in another cluster (using atomic instructions),
- *               to change this thread scheduling status.
- *             - the "flags" bit_vector can be modified by another thread
- *               running in another cluster (using atomic instructions),
- *               to register requests such as ACK or DELETE.
- *             - the "join_xp" field can be modified by the joining thread,
- *               and this rendez-vous is protected by the dedicated "join_lock".
- *
- * WARNING (3) When this thread is blocked on a shared resource (queuelock, condvar,
- *             or chdev), it registers in the associated waiting queue, using the
- *             "wait_list" (local list) or "wait_xlist" (trans-cluster list) fields. 
+ * Implementation notes:
+ *
+ * (1) Don't modify the first 4 fields order, as this order is used by the
+ *     hal_kentry assembly code for the TSAR architectures.
+ *
+ * (2) Most of the thread state is private and accessed only by this thread,
+ *     but some fields are shared, and can be modified by other threads.
+ *     - the "blocked" bit_vector can be modified by another thread
+ *       running in another cluster (using atomic instructions),
+ *       to change this thread scheduling status.
+ *     - the "flags" bit_vector can be modified by another thread
+ *       running in another cluster (using atomic instructions),
+ *       to register requests such as ACK or DELETE.
+ *     - the "join_xp" field can be modified by the joining thread,
+ *       and this rendez-vous is protected by the dedicated "join_lock".
+ *
+ * (3) When this thread is blocked on a shared resource (queuelock, condvar,
+ *     or chdev), it registers in the associated waiting queue, using the
+ *     "wait_list" (local list) or "wait_xlist" (trans-cluster list) fields. 
+ *
+ * (4) The thread_info_t structure is defined in the shared_almos.h file in the
+ *     /kernel/syscall/shared_include directory.
  **************************************************************************************/
 
