Index: trunk/kernel/kern/process.h
===================================================================
--- trunk/kernel/kern/process.h	(revision 601)
+++ trunk/kernel/kern/process.h	(revision 610)
@@ -125,5 +125,5 @@
 	fd_array_t         fd_array;         /*! embedded open file descriptors array            */
 
-	xptr_t             vfs_root_xp;      /*! extended pointer on current VFS root inode      */
+	xptr_t             vfs_root_xp;      /*! extended pointer on VFS root inode              */
 	xptr_t             vfs_bin_xp;       /*! extended pointer on .elf file descriptor        */
 	pid_t              pid;              /*! process identifier                              */
@@ -132,6 +132,6 @@
     xptr_t             parent_xp;        /*! extended pointer on parent process              */
 
-	xptr_t             vfs_cwd_xp;       /*! extended pointer on current working dir inode   */
-	remote_rwlock_t    cwd_lock;         /*! lock protecting working directory changes       */
+	xptr_t             cwd_xp;           /*! extended pointer on current working dir inode   */
+	remote_busylock_t  cwd_lock;         /*! lock protecting working directory changes       */
 
 	xlist_entry_t      children_root;    /*! root of the children process xlist              */
@@ -338,5 +338,6 @@
  * It scan the list of local thread, and sets the THREAD_BLOCKED_GLOBAL bit for all threads.
  * It request the relevant schedulers to acknowledge the blocking, using IPI if required, 
- * and returns only when all threads in cluster, but the calling thread, are actually blocked.
+ * when the target thread is running on another core than the calling thread.
+ * It returns only when all threads in cluster, including the caller are actually blocked.
  * The threads are not detached from the scheduler, and not detached from the local process.
  *********************************************************************************************
@@ -425,15 +426,17 @@
 
 /*********************************************************************************************
- * This function allocates a free slot in the fd_array of the reference process,
- * register the <file_xp> argument in the allocated slot, and return the slot index.
+ * This function allocates a free slot in the fd_array of the reference process
+ * identified by the <process_xp> argument, register the <file_xp> argument in the
+ * allocated slot, and return the slot index in the <fdid> buffer.
  * It can be called by any thread in any cluster, because it uses portable remote access
  * primitives to access the reference process descriptor.
  * It takes the lock protecting the reference fd_array against concurrent accesses.
  *********************************************************************************************
- * @ file_xp  : extended pointer on the file descriptor to be registered.
- * @ fdid     : [out] buffer for fd_array slot index.
+ * @ process_xp : [in]  extended pointer on client reference process.
+ * @ file_xp    : [in]  extended pointer on the file descriptor to be registered.
+ * @ fdid       : [out] buffer for fd_array slot index.
  * @ return 0 if success / return EMFILE if array full.
  ********************************************************************************************/
-error_t process_fd_register( process_t * process,
+error_t process_fd_register( xptr_t      process_xp,
                              xptr_t      file_xp,
                              uint32_t  * fdid );
@@ -447,6 +450,6 @@
  * TODO this function is not implemented yet.
  *********************************************************************************************
- * @ process  : pointer on the local process descriptor.
- * @ fdid     : file descriptor index in the fd_array.
+ * @ process  : [in] pointer on the local process descriptor.
+ * @ fdid     : [in] file descriptor index in the fd_array.
  ********************************************************************************************/
 void process_fd_remove( process_t * process,
