Changeset 637 for trunk/kernel/syscalls/sys_thread_create.c
- Timestamp:
- Jul 18, 2019, 2:06:55 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/syscalls/sys_thread_create.c
r635 r637 66 66 67 67 #if DEBUG_SYS_THREAD_CREATE 68 tm_start = hal_get_cycles();69 68 if( DEBUG_SYS_THREAD_CREATE < tm_start ) 70 69 printk("\n[%s] thread[%x,%x] enter / cycle %d\n", … … 73 72 74 73 // check trdid buffer in user space 75 error = vmm_get_vseg( process , (intptr_t)trdid_ptr , &vseg ); 76 77 if ( error ) 74 if( vmm_get_vseg( process , (intptr_t)trdid_ptr , &vseg ) ) 78 75 { 79 76 … … 89 86 if( user_attr != NULL ) 90 87 { 91 error = vmm_get_vseg( process , (intptr_t)user_attr , &vseg ); 92 93 if( error ) 88 if( vmm_get_vseg( process , (intptr_t)user_attr , &vseg ) ) 94 89 { 95 90 … … 102 97 } 103 98 104 hal_copy_from_uspace( local_cxy, 105 &kern_attr, 99 hal_copy_from_uspace( XPTR( local_cxy , &kern_attr ), 106 100 user_attr, 107 101 sizeof(pthread_attr_t) ); … … 109 103 110 104 // check start_func in user space 111 error = vmm_get_vseg( process , (intptr_t)start_func , &vseg ); 112 113 if( error ) 105 if( vmm_get_vseg( process , (intptr_t)start_func , &vseg ) ) 114 106 { 115 107 … … 125 117 if( start_args != NULL ) 126 118 { 127 error = vmm_get_vseg( process , (intptr_t)start_args , &vseg ); 128 129 if( error ) 119 if( vmm_get_vseg( process , (intptr_t)start_args , &vseg ) ) 130 120 { 131 121 … … 145 135 if( kern_attr.attributes & PT_ATTR_CLUSTER_DEFINED ) 146 136 { 147 if( cluster_is_ undefined( kern_attr.cxy ))137 if( cluster_is_active( kern_attr.cxy ) == false ) 148 138 { 149 139 … … 159 149 else 160 150 { 161 child_cxy = dqdt_get_cluster_for_ process();151 child_cxy = dqdt_get_cluster_for_thread( LOCAL_CLUSTER->dqdt_root_xp ); 162 152 } 163 153 } … … 165 155 { 166 156 kern_attr.attributes = PT_ATTR_DETACH | PT_ATTR_CLUSTER_DEFINED; 167 child_cxy = dqdt_get_cluster_for_process();157 child_cxy = dqdt_get_cluster_for_thread( LOCAL_CLUSTER->dqdt_root_xp ); 168 158 } 169 159 … … 209 199 // returns trdid to user space 210 200 trdid = hal_remote_l32( XPTR( child_cxy , &child_ptr->trdid ) ); 211 hal_copy_to_uspace( local_cxy, 212 &trdid, 213 trdid_ptr, 201 hal_copy_to_uspace( trdid_ptr, 202 XPTR( local_cxy , &trdid ), 214 203 sizeof(pthread_t) ); 215 204
Note: See TracChangeset
for help on using the changeset viewer.