- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel/startup.cfa
rdd92fe9 r72a3aff 117 117 } 118 118 119 extern size_t __page_size;119 size_t __page_size = 0; 120 120 121 121 //----------------------------------------------------------------------------- … … 161 161 /* paranoid */ verify( ! __preemption_enabled() ); 162 162 __cfadbg_print_safe(runtime_core, "Kernel : Starting\n"); 163 164 __page_size = sysconf( _SC_PAGESIZE ); 163 165 164 166 __cfa_dbg_global_clusters.list{ __get }; … … 679 681 #if CFA_PROCESSOR_USE_MMAP 680 682 stacksize = ceiling( stacksize, __page_size ) + __page_size; 681 stack = mmap(0p, stacksize, __map_prot, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);683 stack = mmap(0p, stacksize, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); 682 684 if(stack == ((void*)-1)) { 683 685 abort( "pthread stack creation : internal error, mmap failure, error(%d) %s.", errno, strerror( errno ) ); … … 725 727 } 726 728 #else 729 __cfaabi_dbg_debug_do( 730 // pthread has no mechanism to create the guard page in user supplied stack. 731 if ( mprotect( stack, __page_size, PROT_READ | PROT_WRITE ) == -1 ) { 732 abort( "mprotect : internal error, mprotect failure, error(%d) %s.", errno, strerror( errno ) ); 733 } // if 734 ); 727 735 free( stack ); 728 736 #endif
Note: See TracChangeset
for help on using the changeset viewer.