Changeset 1289
- Timestamp:
- Mar 15, 2004, 2:50:57 AM (21 years ago)
- Location:
- trunk/src/emx
- Files:
-
- 2 added
- 4 deleted
- 72 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/src/emx/Makefile ¶
-
Property cvs2svn:cvs-rev
changed from
1.45
to1.46
r1288 r1289 105 105 CFLAGS.omf = -Zomf 106 106 CFLAGS.prof = -pg 107 CFLAGS.log = -DDEBUG_LOGGING 107 CFLAGS.log = -DDEBUG_LOGGING -D__LIBC_STRICT 108 108 # The object files are put in subdirectory objectformat-targetkind, 109 109 # we decompose object file name back and pick appropiate $CFLAGS -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/include/386/builtin.h ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 39 39 __asm__ __volatile__ ("cli"); 40 40 } 41 42 /** 43 * Atomically sets a bit and return the old one. 44 * 45 * @returns 1 if the bit was set, 0 if it was clear. 46 * @param pv Pointer to base of bitmap. 47 * @param uBit Bit in question. 48 */ 49 static __inline__ int __atomic_set_bit(__volatile__ void *pv, unsigned uBit) 50 { 51 int rc; 52 __asm__ __volatile__("lock btsl %2, %1\n\t" 53 "sbbl %0,%0" 54 : "=r" (rc), 55 "=m" (*(__volatile__ unsigned *)pv) 56 : "r" (uBit) 57 : "memory"); 58 return rc; 59 } 60 61 62 /** 63 * Atomically clears a bit. 64 * 65 * @param pv Pointer to base of bitmap. 66 * @param uBit Bit in question. 67 */ 68 static __inline__ void __atomic_clear_bit(__volatile__ void *pv, unsigned uBit) 69 { 70 __asm__ __volatile__("lock btrl %1, %0" 71 : "=m" (*(__volatile__ unsigned *)pv) 72 : "r" (uBit)); 73 } 74 75 76 /** 77 * Atomically (er?) tests if a bit is set. 78 * 79 * @returns non zero if the bit was set. 80 * @returns 0 if the bit was clear. 81 * @param pv Pointer to base of bitmap. 82 * @param uBit Bit in question. 83 */ 84 static __inline__ int __atomic_test_bit(const __volatile__ void *pv, unsigned uBit) 85 { 86 __asm__ __volatile__("btl %0, %1\n\t" 87 "sbbl %0, %0\t\n" 88 : "=r" (uBit) 89 : "m" (*(const __volatile__ unsigned *)pv)); 90 return uBit; 91 } 92 93 94 /** 95 * Atomically increments a 32-bit unsigned value. 96 * 97 * @param pu Pointer to the value to increment. 98 */ 99 static __inline__ void __atomic_increment(__volatile__ unsigned *pu) 100 { 101 __asm__ __volatile__("lock incl %0" 102 : "=m" (*pu)); 103 } 104 105 /** 106 * Atomically decrements a 32-bit unsigned value. 107 * 108 * @param pu Pointer to the value to decrement. 109 */ 110 static __inline__ void __atomic_decrement(__volatile__ unsigned *pu) 111 { 112 __asm__ __volatile__("lock decl %0" 113 : "=m" (*pu)); 114 } 115 116 /** 117 * Atomically increments a 32-bit unsigned value if less than max. 118 * 119 * @returns 0 if incremented. 120 * @returns *pu + 1 when not updated. 121 * @param pu Pointer to the value to increment. 122 * @param uMax *pu must not be above this value. 123 */ 124 static __inline__ int __atomic_increment_max(__volatile__ unsigned *pu, unsigned uMax) 125 { 126 unsigned rc; 127 __asm__ __volatile__("movl %1, %%eax\n" 128 "1:\n\t" 129 "lea 1(%%eax), %0\n\t" 130 "cmpl %0, %2\n\t" 131 "jna 2f\n\t" 132 "jmp 4f\n" 133 "2:\n\t" 134 "lock cmpxchgl %0, %1\n\t" 135 "jz 3f\n\t" 136 "jmp 1b\n" 137 "3:" 138 "xorl %0, %0\n\t" 139 "4:" 140 : "=r" (rc), 141 "=m" (pu) 142 : "r" (uMax) 143 : "%eax"); 144 return rc; 145 } 146 147 148 /** 149 * Atomically decrements a 32-bit unsigned value if greater than a min. 150 * 151 * @returns 0 if incremented. 152 * @returns *pu + 1 when not updated. 153 * @param pu Pointer to the value to decrement. 154 * @param uMin *pu must not be below this value. 155 */ 156 static __inline__ int __atomic_increment_min(__volatile__ unsigned *pu, unsigned uMin) 157 { 158 unsigned rc; 159 __asm__ __volatile__("movl %1, %%eax\n" 160 "1:\n\t" 161 "lea -1(%%eax), %0\n\t" 162 "cmpl %0, %2\n\t" 163 "jnb 2f\n\t" 164 "jmp 4f\n" 165 "2:\n\t" 166 "lock cmpxchgl %0, %1\n\t" 167 "jz 3f\n\t" 168 "jmp 1b\n" 169 "3:" 170 "xorl %0, %0\n\t" 171 "4:" 172 : "=r" (rc), 173 "=m" (*pu) 174 : "r" (uMin) 175 : "%eax"); 176 return rc; 177 } 178 41 179 42 180 #define __ROTATE_FUN(F,I,T) \ -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/include/emx/syscalls.h ¶
-
Property cvs2svn:cvs-rev
changed from
1.9
to1.10
r1288 r1289 78 78 unsigned short env_count; 79 79 unsigned short env_size; 80 unsigned short mode; 81 unsigned short mode2; /* Present only if (mode & 0x8000) */ 80 unsigned mode; 82 81 }; 83 82 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/include/sys/process.h ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 28 28 #define P_NOCLOSE 0x2000 29 29 #define P_NOSESSION 0x4000 30 31 /* Note: 0x8000 is used internally. */32 30 33 31 #define P_QUOTE 0x10000 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/libc.def ¶
-
Property cvs2svn:cvs-rev
changed from
1.50
to1.51
r1288 r1289 14 14 ; 15 15 ; Imports which are freqently used may of course be moved to an low ordinal 16 ; number to save 5 cpu cycles every now and then ;-) 16 ; number to save 5 cpu cycles every now and then ;-) However the general idea 17 ; is just to sort them and assign fresh ordinals when a libc version goes out 18 ; of development. 17 19 ; 18 20 19 21 EXPORTS 20 22 ; data 21 "___d igits" @122 "___ locale" @223 "___ default_hash" @323 "___default_hash" @1 24 "___digits" @2 25 "___locale" @3 24 26 "___locale_collate" @4 25 27 "___locale_ctype" @5 26 28 "___locale_lconv" @6 27 29 "___locale_time" @7 28 "___stderrp" @8 29 "___stdinp" @9 30 "___stdoutp" @10 31 "__atexit_n" @11 32 "__atexit_v" @12 33 "__fmode_bin" @13 34 "__mb_cur_max" @14 35 "__org_environ" @15 36 "__osmajor" @16 37 "__osminor" @17 38 "__pipe_size" @18 39 "__rand48_add" @19 40 "__rand48_mult" @20 41 "__rand48_seed" @21 42 "__std_daylight" @22 43 "__std_environ" @23 44 "__std_timezone" @24 45 "__std_tzname" @25 46 "__streamv_rmutex" @26 47 "__streamvec_head" @27 48 ; fixme "" @28 49 "__tmpidx" @29 50 "__tzi" @30 51 "__tzset_flag" @31 52 "__um_high_heap" @32 53 "__um_low_heap" @33 54 "__um_regular_heap" @34 55 "__um_tiled_heap" @35 56 "__emx_optarg" @36 57 "__emx_opterr" @37 58 "__emx_optind" @38 59 "__emx_optmode" @39 60 "__emx_optopt" @40 61 "__emx_optswchar" @41 62 "_optarg" @42 63 "_opterr" @43 64 "_optind" @44 65 "_optopt" @45 66 "_optreset" @46 67 "___progname" @47 68 "_error_message_count" @48 69 "_error_one_per_line" @49 70 "_error_print_progname" @50 30 "___progname" @8 31 "___stderrp" @9 32 "___stdinp" @10 33 "___stdoutp" @11 34 "__atexit_n" @12 35 "__atexit_v" @13 36 "__emx_optarg" @14 37 "__emx_opterr" @15 38 "__emx_optind" @16 39 "__emx_optmode" @17 40 "__emx_optopt" @18 41 "__emx_optswchar" @19 42 "__fmode_bin" @20 43 "__mb_cur_max" @21 44 "__org_environ" @22 45 "__osmajor" @23 46 "__osminor" @24 47 "__pipe_size" @25 48 "__rand48_add" @26 49 "__rand48_mult" @27 50 "__rand48_seed" @28 51 "__std_daylight" @29 52 "__std_environ" @30 53 "__std_timezone" @31 54 "__std_tzname" @32 55 "__streamv_rmutex" @33 56 "__streamvec_head" @34 57 "__tmpidx" @35 58 "__tzi" @36 59 "__tzset_flag" @37 60 "__um_high_heap" @38 61 "__um_low_heap" @39 62 "__um_regular_heap" @40 63 "__um_tiled_heap" @41 64 "_error_message_count" @42 65 "_error_one_per_line" @43 66 "_error_print_progname" @44 67 "_optarg" @45 68 "_opterr" @46 69 "_optind" @47 70 "_optopt" @48 71 "_optreset" @49 71 72 72 73 73 ; code - and const 74 "__CRT_init" @101 75 "__CRT_term" @102 76 "__HUGE_VAL" @103 77 "__LHUGE_VAL" @104 78 ; fixme "___alloc_thread" @105 79 "___atod" @106 80 "___chdir" @107 81 "___chmod" @108 82 "___chsize" @109 83 "___close" @110 84 "___convert_codepage" @111 85 "___ctordtorInit1" @112 86 "___ctordtorTerm1" @113 87 "___do_Unicode" @114 88 "___dtoa" @115 89 "___dup" @116 90 "___dup2" @117 91 ; fixme "___endthread" @118 92 "___exit" @119 93 "___fcntl" @120 94 "___findfirst" @121 95 "___findnext" @122 96 "___fmutex_release_internal" @123 97 "___fmutex_request_internal" @124 98 "___fork" @125 99 "___fpclassify" @126 100 "___fpclassifyf" @127 101 "___fpclassifyl" @128 102 "___from_ucs" @129 103 "___fstat" @130 104 "___ftime" @131 105 "___ftruncate" @132 106 "___getcwd" @133 107 "___gnu_basename" @134 108 "___imphandle" @135 109 "___init" @136 110 "___init_app" @137 111 "___init_dll" @138 112 ; fixme "___initthread" @139 113 "___ioctl1" @140 114 "___ioctl2" @141 115 "___isfinite" @142 116 "___isfinitef" @143 117 "___isfinitel" @144 118 "___isnan" @145 119 "___isnanf" @146 120 "___isnanl" @147 121 "___isnormal" @148 122 "___isnormalf" @149 123 "___isnormall" @150 124 "___libc_FH" @151 125 "___libc_FHAllocate" @152 126 "___libc_FHClose" @153 127 "___libc_FHEnsureHandles" @154 128 "___libc_HasHighMem" @155 129 "___libc_HeapEndVoting" @156 130 "___libc_HeapGetResult" @157 131 "___libc_HeapVote" @158 132 "___libc_HimemDefaultAlloc" @159 133 "___libc_HimemDefaultRelease" @160 134 "___lseek" @161 135 "___mkdir" @162 136 ; fixme "___newthread" @163 137 "___open" @164 138 "___pipe" @165 139 "___read" @166 140 "___read_kbd" @167 141 "___remove_zeros" @168 142 "___rmdir" @169 143 "___select" @170 144 "___settime" @171 145 "___signbit" @172 146 "___signbitf" @173 147 "___signbitl" @174 148 "___small_atod" @175 149 "___small_dtoa" @176 150 "___smutex_request_internal" @177 151 "___spawnve" @178 152 "___stat" @179 153 "___swchar" @180 154 "___threadid" @181 155 "___to_ucs" @182 156 "___ttyname" @183 157 "___ulimit" @184 158 "___unwind2" @185 159 "___utimes" @186 160 "___wait" @187 161 "___waitpid" @188 162 "___write" @189 163 "__abspath" @190 164 "__assert" @191 165 "__beginthread" @192 166 "__bi_add_bb" @193 167 "__bi_cmp_bb" @194 168 "__bi_cmp_pow2" @195 169 "__bi_div_add_back" @196 170 "__bi_div_estimate" @197 171 "__bi_div_rem_bb" @198 172 "__bi_div_rem_bw" @199 173 "__bi_div_rem_pow2" @200 174 "__bi_div_subtract" @201 175 "__bi_fls" @202 176 "__bi_hdiv_rem_b" @203 177 "__bi_mul_bb" @204 178 "__bi_mul_bw" @205 179 "__bi_pow5" @206 180 "__bi_set_b" @207 181 "__bi_set_d" @208 182 "__bi_set_w" @209 183 "__bi_shl_b" @210 184 "__bi_shl_w" @211 185 "__bi_shr_b" @212 186 "__bi_sub_mul_bw" @213 187 "__bi_wdiv_rem_pow2" @214 188 "__chdir2" @215 189 "__clear87" @216 190 "__closestream" @217 191 "__compute_dst_table" @218 192 "__const_HALF" @219 193 "__const_M_ONE" @220 194 "__const_NAN" @221 195 "__const_ONE" @222 196 "__const_TWO" @223 197 "__const_ZERO" @224 198 "__control87" @225 199 "__core" @226 200 "__crlf" @227 201 "__day" @228 202 "__defext" @229 203 "__dorand48" @230 204 "__dt_free" @231 205 "__dt_read" @232 206 "__dt_sort" @233 207 "__dt_split" @234 208 "__ea_free" @235 209 "__ea_get" @236 210 "__ea_put" @237 211 "__ea_remove" @238 212 "__ea_set_errno" @239 213 "__ea_write" @240 214 "__ead_add" @241 215 "__ead_clear" @242 216 "__ead_copy" @243 217 "__ead_count" @244 218 "__ead_create" @245 219 "__ead_delete" @246 220 "__ead_destroy" @247 221 "__ead_enum" @248 222 "__ead_fea2list_size" @249 223 "__ead_fea2list_to_fealist" @250 224 "__ead_fealist_to_fea2list" @251 225 "__ead_find" @252 226 "__ead_get_fea2list" @253 227 "__ead_get_flags" @254 228 "__ead_get_name" @255 229 "__ead_get_value" @256 230 "__ead_make_index" @257 231 "__ead_name_len" @258 232 "__ead_read" @259 233 "__ead_replace" @260 234 "__ead_size_buffer" @261 235 "__ead_sort" @262 236 "__ead_use_fea2list" @263 237 "__ead_value_size" @264 238 "__ead_write" @265 239 "__emxload_connect" @266 240 "__emxload_disconnect" @267 241 "__emxload_do_connect" @268 242 "__emxload_do_disconnect" @269 243 "__emxload_do_receive" @270 244 "__emxload_do_request" @271 245 "__emxload_do_wait" @272 246 "__emxload_env" @273 247 "__emxload_list_get" @274 248 "__emxload_list_start" @275 249 "__emxload_prog" @276 250 "__emxload_request" @277 251 "__emxload_stop" @278 252 "__emxload_this" @279 253 "__emxload_unload" @280 254 "__endbuf1" @281 255 "__endthread" @282 256 "__envargs" @283 257 "__errno" @284 258 "__errno_fun" @285 259 "__execname" @286 260 "__exit" @287 261 "__exit_streams" @288 262 "__fassign" @289 263 "__fbuf" @290 264 "__fcloseall" @291 265 "__fflush_nolock" @292 266 "__filesys" @293 267 "__fill" @294 268 "__flush" @295 269 "__flushstream" @296 270 "__fmutex_checked_close" @297 271 "__fmutex_checked_create" @298 272 "__fmutex_checked_open" @299 273 "___collate_range_cmp" @300 274 "_toupper" @301 275 "__fmutex_close" @302 276 "__fmutex_create" @303 277 "__fmutex_dummy" @304 278 "__fmutex_open" @305 279 "__fnexplode" @306 280 "__fnexplodefree" @307 281 "__fngetdrive" @308 282 "__fnisabs" @309 283 "__fnisrel" @310 284 "__fnlwr" @311 285 "__fnlwr2" @312 286 "__fnslashify" @313 287 "__fpreset" @314 288 "__fseek_hdr" @315 289 "__fseek_nolock" @316 290 "__fsetmode" @317 291 "__fsopen" @318 292 "__ftell_nolock" @319 293 "__fullpath" @320 294 "__fwrite_nolock" @321 295 "__fxam" @322 296 "__fxaml" @323 297 "__getcwd1" @324 298 "__getcwd2" @325 299 "__getdrive" @326 300 "__getext" @327 301 "__getext2" @328 302 "__getname" @329 303 "__getpass1" @330 304 "__getpass2" @331 305 "__gettid" @332 306 "__getvol" @333 307 "__std_glob" @334 308 "__std_globfree" @335 309 "__gmt2loc" @336 310 "__std_gmtime_r" @337 311 "__hcalloc" @338 312 "__heap_walk" @339 313 "__heapchk" @340 314 "__heapmin" @341 315 "__heapset" @342 316 "__hinitheap" @343 317 "__hmalloc" @344 318 "__hrealloc" @345 319 "__imphandle" @346 320 "__init1_tmp" @347 321 "__init_streams" @348 322 "__input" @349 323 "__int86" @350 324 "__isterm" @351 325 "__lcalloc" @352 326 "__libc_16to32" @353 327 "__libc_32to16" @354 328 "__libc_thunk1" @355 329 "__linitheap" @356 330 "__lmalloc" @357 331 "__loc2gmt" @358 332 "__std_localtime_r" @359 333 "__lrealloc" @360 334 "__makepath" @361 335 "__memcount" @362 336 "__memdif" @363 337 "__memrchr" @364 338 "__memswap" @365 339 "__mfclose" @366 340 "__mfopen" @367 341 "__mheap" @368 342 "__mktime" @369 343 "__month_day_leap" @370 344 "__month_day_non_leap" @371 345 "__msize" @372 346 "__newstream" @373 347 "__openstream" @374 348 "__os2_bad" @375 349 "__output" @376 350 "__path" @377 351 "__read_kbd" @378 352 "__remext" @379 353 "__response" @380 354 "__rfnlwr" @381 355 "__rmtmp" @382 356 "__rmutex_checked_close" @383 357 "__rmutex_checked_create" @384 358 "__rmutex_checked_open" @385 359 "__rmutex_close" @386 360 "__rmutex_create" @387 361 "__rmutex_dummy" @388 362 "__rmutex_fork" @389 363 "__rmutex_open" @390 364 "__scrsize" @391 365 "__searchenv" @392 366 "__seek_hdr" @393 367 "__setdummymore" @394 368 "__setmore" @395 369 "__sfnlwr" @396 370 "__sleep2" @397 371 "__splitargs" @398 372 "__splitpath" @399 373 "__status87" @400 374 "__std_abort" @401 375 "__std_abs" @402 376 "__std_access" @403 377 "__std_acos" @404 378 "__std_acosl" @405 379 "__std_asctime" @406 380 "__std_asin" @407 381 "__std_asinl" @408 382 "__std_atan" @409 383 "__std_atan2" @410 384 "__std_atan2l" @411 385 "__std_atanl" @412 386 "__std_atexit" @413 387 "__std_atof" @414 388 "__std_atofl" @415 389 "__std_atoi" @416 390 "__std_atol" @417 391 "__std_atoll" @418 392 "__std_basename" @419 393 "__std_bcmp" @420 394 "__std_bcopy" @421 395 "__std_brk" @422 396 "__std_bsearch" @423 397 "__std_bzero" @424 398 "__std_calloc" @425 399 "__std_cbrt" @426 400 "__std_cbrtl" @427 401 "__std_ceil" @428 402 "__std_ceill" @429 403 "__std_cfgetispeed" @430 404 "__std_cfgetospeed" @431 405 "__std_cfsetispeed" @432 406 "__std_cfsetospeed" @433 407 "__std_cfsetspeed" @434 408 "__std_chdir" @435 409 "__std_chdrive" @436 410 "__std_chmod" @437 411 "__std_chsize" @438 412 "__std_clearerr" @439 413 "__std_clock" @440 414 "__std_close" @441 415 "__std_closedir" @442 416 "__std_copysign" @443 417 "__std_copysignf" @444 418 "__std_copysignl" @445 419 "__std_cos" @446 420 "__std_cosh" @447 421 "__std_coshl" @448 422 "__std_cosl" @449 423 "__std_creat" @450 424 "__std_ctime" @451 425 "__std_cuserid" @452 426 "__std_difftime" @453 427 "__std_dirname" @454 428 "__std_div" @455 429 "__std_drand48" @456 430 "__std_dup" @457 431 "__std_dup2" @458 432 "__std_endpwent" @459 433 "__std_eof" @460 434 "__std_erand48" @461 435 "__std_execl" @462 436 "__std_execle" @463 437 "__std_execlp" @464 438 "__std_execlpe" @465 439 "__std_execv" @466 440 "__std_execve" @467 441 "__std_execvp" @468 442 "__std_execvpe" @469 443 "__std_exit" @470 444 "__std_exp" @471 445 "__std_expand" @472 446 "__std_expl" @473 447 "__std_fabs" @474 448 "__std_fabsl" @475 449 "__std_fclose" @476 450 "__std_fcntl" @477 451 "__std_fdopen" @478 452 "__std_feof" @479 453 "__std_ferror" @480 454 "__std_fflush" @481 455 "__std_ffs" @482 456 "__std_fgetc" @483 457 "__std_fgetchar" @484 458 "__std_fgetpos" @485 459 "__std_fgets" @486 460 "__std_filelength" @487 461 "__std_fileno" @488 462 "__std_flock" @489 463 "__std_floor" @490 464 "__std_floorl" @491 465 "__std_flushall" @492 466 "__std_fmod" @493 467 "__std_fmodl" @494 468 "__std_fnmatch" @495 469 "__std_fopen" @496 470 "__std_fork" @497 471 "__std_fpathconf" @498 472 "__std_fprintf" @499 473 "__std_fputc" @500 474 "__std_fputchar" @501 475 "__std_fputs" @502 476 "__std_fread" @503 477 "__std_free" @504 478 "__std_freopen" @505 479 "__std_frexp" @506 480 "__std_frexpl" @507 481 "__std_fscanf" @508 482 "__std_fseek" @509 483 "__std_fseeko" @510 484 "__std_fsetpos" @511 485 "__std_fstat" @512 486 "__std_fsync" @513 487 "__std_ftell" @514 488 "__std_ftello" @515 489 "__std_ftime" @516 490 "__std_ftruncate" @517 491 "__std_ftw" @518 492 "__std_fwrite" @519 493 "__std_gcvt" @520 494 "__std_getchar" @521 495 "__std_getcwd" @522 496 "__std_getegid" @523 497 "__std_getenv" @524 498 "__std_geteuid" @525 499 "__std_getgid" @526 500 "__std_getgrgid" @527 501 "__std_getgrnam" @528 502 "__std_getgroups" @529 503 "__std_getlogin" @530 504 "__std_getopt" @531 505 "__std_getpagesize" @532 506 "__std_getpass" @533 507 "__std_getpgrp" @534 508 "__std_getpid" @535 509 "__std_getppid" @536 510 "__std_getpw" @537 511 "__std_getpwent" @538 512 "__std_getpwnam" @539 513 "__std_getpwuid" @540 514 "__std_gets" @541 515 "__std_gettimeofday" @542 516 "__std_getuid" @543 517 "__std_getw" @544 518 "__std_getwd" @545 519 "__std_gmtime" @546 520 "__std_hypot" @547 521 "__std_hypotl" @548 522 "__std_index" @549 523 "__std_ioctl" @550 524 "__std_isatty" @551 525 "__std_jrand48" @552 526 "__std_kill" @553 527 "__std_labs" @554 528 "__std_lcong48" @555 529 "__std_ldexp" @556 530 "__std_ldexpl" @557 531 "__std_ldiv" @558 532 "__std_lltoa" @559 533 "__std_localeconv" @560 534 "__std_localtime" @561 535 "__std_lockf" @562 536 "__std_log" @563 537 "__std_log10" @564 538 "__std_log10l" @565 539 "__std_logl" @566 540 "__std_longjmp" @567 541 "__std_lrand48" @568 542 "__std_lseek" @569 543 "__std_lstat" @570 544 "__std_ltoa" @571 545 "__std_malloc" @572 546 "__std_mblen" @573 547 "__std_mbstowcs" @574 548 "__std_mbtowc" @575 549 "__std_memccpy" @576 550 "__std_memchr" @577 551 "__std_memcmp" @578 552 "__std_memcpy" @579 553 "__std_memicmp" @580 554 "__std_memmove" @581 555 "__std_memset" @582 556 "__std_mkdir" @583 557 "__std_mkstemp" @584 558 "__std_mktemp" @585 559 "__std_mktime" @586 560 "__std_modf" @587 561 "__std_modfl" @588 562 "__std_mrand48" @589 563 "__std_nextafter" @590 564 "__std_nextafterf" @591 565 "__std_nextafterl" @592 566 "__std_nrand48" @593 567 "__std_open" @594 568 "__std_opendir" @595 569 "__std_pathconf" @596 570 "__std_pause" @597 571 "__std_pclose" @598 572 "__std_perror" @599 573 "__std_pipe" @600 574 "__std_popen" @601 575 "__std_posix_memalign" @602 576 "__std_pow" @603 577 "__std_powl" @604 578 "__std_printf" @605 579 "__std_putchar" @606 580 "__std_putenv" @607 581 "__std_puts" @608 582 "__std_putw" @609 583 "__std_qsort" @610 584 "__std_qsort_r" @611 585 "__std_raise" @612 586 "__std_rand" @613 587 "__std_read" @614 588 "__std_readdir" @615 589 "__std_readdir_r" @616 590 "__std_readv" @617 591 "__std_realloc" @618 592 "__std_remove" @619 593 "__std_rename" @620 594 "__std_rewind" @621 595 "__std_rewinddir" @622 596 "__std_rindex" @623 597 "__std_rint" @624 598 "__std_rintl" @625 599 "__std_rmdir" @626 600 "__std_sbrk" @627 601 "__std_scanf" @628 602 "__std_seed48" @629 603 "__std_seekdir" @630 604 "__std_select" @631 605 "__std_setbuf" @632 606 "__std_setbuffer" @633 607 "__std_setenv" @634 608 "__std_setgid" @635 609 "__std_setjmp" @636 610 "__std_setlocale" @637 611 "__std_setmode" @638 612 "__std_setpgid" @639 613 "__std_setpwent" @640 614 "__std_setsid" @641 615 "__std_settimeofday" @642 616 "__std_setuid" @643 617 "__std_setvbuf" @644 618 "__std_sigaction" @645 619 "__std_sigaddset" @646 620 "__std_sigdelset" @647 621 "__std_sigemptyset" @648 622 "__std_sigfillset" @649 623 "__std_sigismember" @650 624 "__std_siglongjmp" @651 625 "__std_signal" @652 626 "__std_sigpending" @653 627 "__std_sigprocmask" @654 628 "__std_sigsetjmp" @655 629 "__std_sigsuspend" @656 630 "__std_sin" @657 631 "__std_sinh" @658 632 "__std_sinhl" @659 633 "__std_sinl" @660 634 "__std_sleep" @661 635 "__std_snprintf" @662 636 "__std_sopen" @663 637 "__std_spawnl" @664 638 "__std_spawnle" @665 639 "__std_spawnlp" @666 640 "__std_spawnlpe" @667 641 "__std_spawnv" @668 642 "__std_spawnve" @669 643 "__std_spawnvp" @670 644 "__std_spawnvpe" @671 645 "__std_sprintf" @672 646 "__std_sqrt" @673 647 "__std_sqrtl" @674 648 "__std_srand" @675 649 "__std_srand48" @676 650 "__std_sscanf" @677 651 "__std_stat" @678 652 "__std_strcat" @679 653 "__std_strchr" @680 654 "__std_strcmp" @681 655 "__std_strcoll" @682 656 "__std_strcpy" @683 657 "__std_strcspn" @684 658 "__std_strdup" @685 659 "__std_strerror" @686 660 "__std_strftime" @687 661 "__std_stricmp" @688 662 "__std_strlen" @689 663 "__std_strlwr" @690 664 "__std_strncat" @691 665 "__std_strncmp" @692 666 "__std_strncpy" @693 667 "__std_strnicmp" @694 668 "__std_strnset" @695 669 "__std_strpbrk" @696 670 "__std_strptime" @697 671 "__std_strrchr" @698 672 "__std_strrev" @699 673 "__std_strset" @700 674 "__std_strspn" @701 675 "__std_strstr" @702 676 "__std_strtod" @703 677 "__std_strtof" @704 678 "__std_strtok" @705 679 "__std_strtol" @706 680 "__std_strtold" @707 681 "__std_strtoll" @708 682 "__std_strtoul" @709 683 "__std_strtoull" @710 684 "__std_strupr" @711 685 "__std_strxfrm" @712 686 "__std_swab" @713 687 "__std_sys_errlist" @714 688 "__std_sys_nerr" @715 689 "__std_sysconf" @716 690 "__std_system" @717 691 "__std_tan" @718 692 "__std_tanh" @719 693 "__std_tanhl" @720 694 "__std_tanl" @721 695 "__std_tcdrain" @722 696 "__std_tcflow" @723 697 "__std_tcflush" @724 698 "__std_tcgetattr" @725 699 "__std_tcgetpgrp" @726 700 "__std_tcsendbreak" @727 701 "__std_tcsetattr" @728 702 "__std_tcsetpgrp" @729 703 "__std_tell" @730 704 "__std_telldir" @731 705 "__std_tempnam" @732 706 "__std_time" @733 707 "__std_times" @734 708 "__std_tmpfile" @735 709 "__std_tmpnam" @736 710 "__std_trunc" @737 711 "__std_truncate" @738 712 "__std_truncl" @739 713 "__std_ttyname" @740 714 "__std_tzset" @741 715 "__std_ulimit" @742 716 "__std_ulltoa" @743 717 "__std_ultoa" @744 718 "__std_umask" @745 719 "__std_uname" @746 720 "__std_ungetc" @747 721 "__std_unlink" @748 722 "__std_unsetenv" @749 723 "__std_utime" @750 724 "__std_utimes" @751 725 "__std_vfprintf" @752 726 "__std_vfscanf" @753 727 "__std_vprintf" @754 728 "__std_vscanf" @755 729 "__std_vsnprintf" @756 730 "__std_vsprintf" @757 731 "__std_vsscanf" @758 732 "__std_wait" @759 733 "__std_waitpid" @760 734 "__std_wcstombs" @761 735 "__std_wctomb" @762 736 "__std_write" @763 737 "__std_writev" @764 738 "__stream_read" @765 739 "__stream_write" @766 740 "__strncpy" @767 741 "__swchar" @768 742 "__sys_dump_heap_objs" @769 743 "_sys_exception" @770 744 "__tcalloc" @771 745 "__tfree" @772 746 "__theapmin" @773 747 ; fixme "__thread" @774 748 "__threadstore" @775 749 "__tmalloc" @776 750 "__tmpbuf1" @777 751 "__tmpidx_lock" @778 752 "__tmpidx_unlock" @779 753 "__tmpidxnam" @780 754 "__trealloc" @781 755 "__trslash" @782 756 "__uaddmem" @783 757 "__ucalloc" @784 758 "__uclose" @785 759 "__ucreate" @786 760 "__ucreate2" @787 761 "__udefault" @788 762 "__udestroy" @789 763 "__uflags" @790 764 "__uheap_type" @791 765 "__uheap_walk" @792 766 "__uheap_walk2" @793 767 "__uheapchk" @794 768 "__uheapmin" @795 769 "__uheapset" @796 770 "__uldiv" @797 771 "__um_addmem_nolock" @798 772 "__um_alloc_no_lock" @799 773 "__um_crumb_free_maybe_lock" @800 774 "__um_default_alloc" @801 775 "__um_default_expand" @802 776 "__um_default_release" @803 777 "__um_default_shrink" @804 778 "__um_find_bucket" @805 779 "__um_free_maybe_lock" @806 780 "__um_init_default_regular_heap" @807 781 "__um_init_default_tiled_heap" @808 782 "__um_lump_alloc" @809 783 "__um_lump_coalesce_free" @810 784 "__um_lump_free_maybe_lock" @811 785 "__um_lump_link_heap" @812 786 "__um_lump_make_free" @813 787 "__um_lump_unlink_bucket" @814 788 "__um_lump_unlink_heap" @815 789 "__um_realloc" @816 790 "__um_seg_addmem" @817 791 "__um_seg_setmem" @818 792 "__um_walk_error" @819 793 "__um_walk_no_lock" @820 794 "__umalloc" @821 795 "__ungetc_nolock" @822 796 "__uopen" @823 797 "__ustats" @824 798 "__utcalloc" @825 799 "__utdefault" @826 800 "__utmalloc" @827 801 "__vsopen" @828 802 "__wildcard" @829 803 "__year_day" @830 804 "_heapsort" @831 805 "_initstate" @832 806 "_isalnum" @833 807 "_isalpha" @834 808 "_isascii" @835 809 "_iscntrl" @836 810 "_isdigit" @837 811 "_isgraph" @838 812 "_islower" @839 813 "_isprint" @840 814 "_ispunct" @841 815 "_isspace" @842 816 "_isupper" @843 817 "_isxdigit" @844 818 "_lchmod" @845 819 "_mergesort" @846 820 "_radixsort" @847 821 "_random" @848 822 "_setstate" @849 823 "_sig_info" @850 824 "_sradixsort" @851 825 "_srandom" @852 826 "_srandomdev" @853 827 "_stpcpy" @854 828 "_strcasestr" @855 829 "_strlcat" @856 830 "_strlcpy" @857 831 "_strnstr" @858 832 "_strsep" @859 833 "_toascii" @860 834 "_tolower" @861 835 "__std_asctime_r" @862 836 "__std_ctime_r" @863 837 "__std_strerror_r" @864 838 "__err" @865 839 "_errc" @866 840 "_err_set_exit" @867 841 "_err_set_file" @868 842 "_errx" @869 843 "__emx_getopt" @870 844 "_getopt_long" @871 845 "__getprogname" @872 846 "_setprogname" @873 847 "_verr" @874 848 "_verrc" @875 849 "_verrx" @876 850 "_vwarn" @877 851 "_vwarnc" @878 852 "_vwarnx" @879 853 "__warn" @880 854 "_warnc" @881 855 "_warnx" @882 856 "__std_imaxabs" @883 857 "__std_imaxdiv" @884 858 "__std_strtoimax" @885 859 "__std_strtoumax" @886 860 "__std_hcreate" @887 861 "__std_hdestroy" @888 862 "__std_hsearch" @889 863 "__std_insque" @890 864 "__std_lfind" @891 865 "__std_lsearch" @892 866 "__std_remque" @893 867 "__std_tdelete" @894 868 "__std_tfind" @895 869 "__std_tsearch" @896 870 "__std_twalk" @897 871 "___addel" @898 872 "___add_ovflpage" @899 873 "___big_delete" @900 874 "___big_insert" @901 875 "___big_keydata" @902 876 "___big_return" @903 877 "___big_split" @904 878 "___buf_free" @905 879 "___buf_init" @906 880 "___call_hash" @907 881 "_dbm_clearerr" @908 882 "_dbm_close" @909 883 "_dbm_delete" @910 884 "_dbm_dirfno" @911 885 "_dbm_error" @912 886 "_dbm_fetch" @913 887 "_dbm_firstkey" @914 888 "_dbm_nextkey" @915 889 "_dbm_open" @916 890 "_dbm_store" @917 891 "___split_page" @918 892 "___delpair" @919 893 "___expand_table" @920 894 "___find_bigpair" @921 895 "___find_last_page" @922 896 "___free_ovflpage" @923 897 "___get_buf" @924 898 "___get_page" @925 899 "___hash_open" @926 900 "___ibitmap" @927 901 "___log2" @928 902 "___put_page" @929 903 "___reclaim_buf" @930 904 "_reallocf" @931 905 "___bt_close" @932 906 "___bt_cmp" @933 907 "___bt_defcmp" @934 908 "___bt_defpfx" @935 909 "___bt_delete" @936 910 "___bt_dleaf" @937 911 "___bt_dmpage" @938 912 "___bt_dnpage" @939 913 "___bt_dpage" @940 914 "___bt_dump" @941 915 "___bt_fd" @942 916 "___bt_free" @943 917 "___bt_get" @944 918 "___bt_new" @945 919 "___bt_open" @946 920 "___bt_pgin" @947 921 "___bt_pgout" @948 922 "___bt_put" @949 923 "___bt_ret" @950 924 "___bt_search" @951 925 "___bt_seq" @952 926 "___bt_setcur" @953 927 "___bt_split" @954 928 "___bt_sync" @955 929 "___ovfl_delete" @956 930 "___ovfl_get" @957 931 "___ovfl_put" @958 932 "_mpool_close" @959 933 "_mpool_filter" @960 934 "_mpool_get" @961 935 "_mpool_new" @962 936 "_mpool_open" @963 937 "_mpool_put" @964 938 "_mpool_sync" @965 939 "___rec_close" @966 940 "___rec_delete" @967 941 "___rec_dleaf" @968 942 "___rec_fd" @969 943 "___rec_fmap" @970 944 "___rec_fpipe" @971 945 "___rec_get" @972 946 "___rec_iput" @973 947 "___rec_open" @974 948 "___rec_put" @975 949 "___rec_ret" @976 950 "___rec_search" @977 951 "___rec_seq" @978 952 "___rec_sync" @979 953 "___rec_vmap" @980 954 "___rec_vpipe" @981 955 "_dbopen" @982 956 "___dbpanic" @983 957 "_regcomp" @984 958 "_regerror" @985 959 "_regexec" @986 960 "_regfree" @987 961 "_isblank" @988 962 "_ishexnumber" @989 963 "_isnumber" @990 964 "___istype" @991 965 "___tolower" @992 966 "___toupper" @993 967 "___locale_C" @994 968 "___mempcpy" @995 969 "_posix_spawn" @996 970 "_posix_spawnattr_destroy" @997 971 "_posix_spawnattr_getflags" @998 972 "_posix_spawnattr_getpgroup" @999 973 "_posix_spawnattr_getschedparam" @1000 974 "_posix_spawnattr_getschedpolicy" @1001 975 "_posix_spawnattr_getsigdefault" @1002 976 "_posix_spawnattr_getsigmask" @1003 977 "_posix_spawnattr_init" @1004 978 "_posix_spawnattr_setflags" @1005 979 "_posix_spawnattr_setpgroup" @1006 980 "_posix_spawnattr_setschedparam" @1007 981 "_posix_spawnattr_setschedpolicy" @1008 982 "_posix_spawnattr_setsigdefault" @1009 983 "_posix_spawnattr_setsigmask" @1010 984 "_posix_spawn_file_actions_addclose" @1011 985 "_posix_spawn_file_actions_adddup2" @1012 986 "_posix_spawn_file_actions_addopen" @1013 987 "_posix_spawn_file_actions_destroy" @1014 988 "_posix_spawn_file_actions_init" @1015 989 "_posix_spawnp" @1016 990 "___posix_spawn_file_actions_realloc" @1017 991 "___spawni" @1018 992 "_strsignal" @1019 993 "___error" @1020 994 "___error_at_line" @1021 995 "_sys_nsig" @1022 996 "_sys_siglist" @1023 997 "_sys_signame" @1024 998 "__std_realpath" @1025 999 "___argz_add" @1026 1000 "___argz_add_sep" @1027 1001 "___argz_append" @1028 1002 "___argz_count" @1029 1003 "___argz_create" @1030 1004 "___argz_create_sep" @1031 1005 "_argz_delete" @1032 1006 "___argz_extract" @1033 1007 "___argz_insert" @1034 1008 "___argz_next" @1035 1009 "___argz_replace" @1036 1010 "___argz_stringify" @1037 1011 "___strndup" @1038 1012 "___strnlen" @1039 1013 "___libc_LogEnter" @1040 1014 "___libc_LogLeave" @1041 1015 "___libc_LogMsg" @1042 74 ; GCC322 code and const (starts at 100) 75 "__Unwind_DeleteException" @100 76 "__Unwind_Find_FDE" @101 77 "__Unwind_ForcedUnwind" @102 78 "__Unwind_GetDataRelBase" @103 79 "__Unwind_GetGR" @104 80 "__Unwind_GetIP" @105 81 "__Unwind_GetLanguageSpecificData" @106 82 "__Unwind_GetRegionStart" @107 83 "__Unwind_GetTextRelBase" @108 84 "__Unwind_RaiseException" @109 85 "__Unwind_Resume" @110 86 "__Unwind_SetGR" @111 87 "__Unwind_SetIP" @112 88 "___absvdi2" @113 89 "___absvsi2" @114 90 "___addvdi3" @115 91 "___addvsi3" @116 92 "___ashldi3" @117 93 "___ashrdi3" @118 94 "___clear_cache" @119 95 "___clz_tab" @120 96 "___cmpdi2" @121 97 "___deregister_frame" @122 98 "___deregister_frame_info" @123 99 "___deregister_frame_info_bases" @124 100 "___divdi3" @125 101 "___ffsdi2" @126 102 "___fixdfdi" @127 103 "___fixsfdi" @128 104 "___fixunsdfdi" @129 105 "___fixunsdfsi" @130 106 "___fixunssfdi" @131 107 "___fixunssfsi" @132 108 "___fixunsxfdi" @133 109 "___fixunsxfsi" @134 110 "___fixxfdi" @135 111 "___floatdidf" @136 112 "___floatdisf" @137 113 "___floatdixf" @138 114 "___frame_state_for" @139 115 "___lshrdi3" @140 116 "___moddi3" @141 117 "___muldi3" @142 118 "___mulvdi3" @143 119 "___mulvsi3" @144 120 "___negdi2" @145 121 "___negvdi2" @146 122 "___negvsi2" @147 123 "___register_frame" @148 124 "___register_frame_info" @149 125 "___register_frame_info_bases" @150 126 "___register_frame_info_table" @151 127 "___register_frame_info_table_bases" @152 128 "___register_frame_table" @153 129 "___subvdi3" @154 130 "___subvsi3" @155 131 "___ucmpdi2" @156 132 "___udiv_w_sdiv" @157 133 "___udivdi3" @158 134 "___udivmoddi4" @159 135 "___umoddi3" @160 136 "__alloca" @161 1016 137 1017 ; Same as gcc322.dll 1018 "__Unwind_DeleteException" @1043 1019 "__Unwind_Find_FDE" @1044 1020 "__Unwind_ForcedUnwind" @1045 1021 "__Unwind_GetDataRelBase" @1046 1022 "__Unwind_GetGR" @1047 1023 "__Unwind_GetIP" @1048 1024 "__Unwind_GetLanguageSpecificData" @1049 1025 "__Unwind_GetRegionStart" @1050 1026 "__Unwind_GetTextRelBase" @1051 1027 "__Unwind_RaiseException" @1052 1028 "__Unwind_Resume" @1053 1029 "__Unwind_SetGR" @1054 1030 "__Unwind_SetIP" @1055 1031 "___absvdi2" @1056 1032 "___absvsi2" @1057 1033 "___addvdi3" @1058 1034 "___addvsi3" @1059 1035 "___ashldi3" @1060 1036 "___ashrdi3" @1061 1037 "___clear_cache" @1062 1038 "___clz_tab" @1063 1039 "___cmpdi2" @1064 1040 "___deregister_frame" @1065 1041 "___deregister_frame_info" @1066 1042 "___deregister_frame_info_bases" @1067 1043 "___divdi3" @1068 1044 "___ffsdi2" @1069 1045 "___fixdfdi" @1070 1046 "___fixsfdi" @1071 1047 "___fixunsdfdi" @1072 1048 "___fixunsdfsi" @1073 1049 "___fixunssfdi" @1074 1050 "___fixunssfsi" @1075 1051 "___fixunsxfdi" @1076 1052 "___fixunsxfsi" @1077 1053 "___fixxfdi" @1078 1054 "___floatdidf" @1079 1055 "___floatdisf" @1080 1056 "___floatdixf" @1081 1057 "___frame_state_for" @1082 1058 "___lshrdi3" @1083 1059 "___moddi3" @1084 1060 "___muldi3" @1085 1061 "___mulvdi3" @1086 1062 "___mulvsi3" @1087 1063 "___negdi2" @1088 1064 "___negvdi2" @1089 1065 "___negvsi2" @1090 1066 "___register_frame" @1091 1067 "___register_frame_info" @1092 1068 "___register_frame_info_bases" @1093 1069 "___register_frame_info_table" @1094 1070 "___register_frame_info_table_bases" @1095 1071 "___register_frame_table" @1096 1072 "___subvdi3" @1097 1073 "___subvsi3" @1098 1074 "___ucmpdi2" @1099 1075 "___udiv_w_sdiv" @1100 1076 "___udivdi3" @1101 1077 "___udivmoddi4" @1102 1078 "___umoddi3" @1103 1079 "__alloca" @1104 1080 "__std_usleep" @1105 138 ; LIBC code - and const 139 "__CRT_init" @162 140 "__CRT_term" @163 141 "__HUGE_VAL" @164 142 "__LHUGE_VAL" @165 143 "___add_ovflpage" @166 144 "___addel" @167 145 "___argz_add" @168 146 "___argz_add_sep" @169 147 "___argz_append" @170 148 "___argz_count" @171 149 "___argz_create" @172 150 "___argz_create_sep" @173 151 "___argz_extract" @174 152 "___argz_insert" @175 153 "___argz_next" @176 154 "___argz_replace" @177 155 "___argz_stringify" @178 156 "___atod" @179 157 "___big_delete" @180 158 "___big_insert" @181 159 "___big_keydata" @182 160 "___big_return" @183 161 "___big_split" @184 162 "___bt_close" @185 163 "___bt_cmp" @186 164 "___bt_defcmp" @187 165 "___bt_defpfx" @188 166 "___bt_delete" @189 167 "___bt_dleaf" @190 168 "___bt_dmpage" @191 169 "___bt_dnpage" @192 170 "___bt_dpage" @193 171 "___bt_dump" @194 172 "___bt_fd" @195 173 "___bt_free" @196 174 "___bt_get" @197 175 "___bt_new" @198 176 "___bt_open" @199 177 "___bt_pgin" @200 178 "___bt_pgout" @201 179 "___bt_put" @202 180 "___bt_ret" @203 181 "___bt_search" @204 182 "___bt_seq" @205 183 "___bt_setcur" @206 184 "___bt_split" @207 185 "___bt_sync" @208 186 "___buf_free" @209 187 "___buf_init" @210 188 "___call_hash" @211 189 "___chdir" @212 190 "___chmod" @213 191 "___chsize" @214 192 "___close" @215 193 "___collate_range_cmp" @216 194 "___convert_codepage" @217 195 "___ctordtorInit1" @218 196 "___ctordtorTerm1" @219 197 "___dbpanic" @220 198 "___delpair" @221 199 "___do_Unicode" @222 200 "___dtoa" @223 201 "___dup" @224 202 "___dup2" @225 203 "___error" @226 204 "___error_at_line" @227 205 "___exit" @228 206 "___expand_table" @229 207 "___fcntl" @230 208 "___find_bigpair" @231 209 "___find_last_page" @232 210 "___findfirst" @233 211 "___findnext" @234 212 "___fmutex_release_internal" @235 213 "___fmutex_request_internal" @236 214 "___fork" @237 215 "___fpclassify" @238 216 "___fpclassifyf" @239 217 "___fpclassifyl" @240 218 "___free_ovflpage" @241 219 "___from_ucs" @242 220 "___fstat" @243 221 "___ftime" @244 222 "___ftruncate" @245 223 "___get_buf" @246 224 "___get_page" @247 225 "___getcwd" @248 226 "___gnu_basename" @249 227 "___hash_open" @250 228 "___ibitmap" @251 229 "___imphandle" @252 230 "___init" @253 231 "___init_app" @254 232 "___init_dll" @255 233 "___ioctl1" @256 234 "___ioctl2" @257 235 "___isfinite" @258 236 "___isfinitef" @259 237 "___isfinitel" @260 238 "___isnan" @261 239 "___isnanf" @262 240 "___isnanl" @263 241 "___isnormal" @264 242 "___isnormalf" @265 243 "___isnormall" @266 244 "___istype" @267 245 "___libc_Back_threadCleanup" @268 246 "___libc_Back_threadEnd" @269 247 "___libc_Back_threadInit" @270 248 "___libc_Back_threadStartup" @271 249 "___libc_FH" @272 250 "___libc_FHAllocate" @273 251 "___libc_FHClose" @274 252 "___libc_FHEnsureHandles" @275 253 "___libc_HasHighMem" @276 254 "___libc_HeapEndVoting" @277 255 "___libc_HeapGetResult" @278 256 "___libc_HeapVote" @279 257 "___libc_HimemDefaultAlloc" @280 258 "___libc_HimemDefaultRelease" @281 259 "___libc_LogAssert" @282 260 "___libc_LogEnter" @283 261 "___libc_LogGroupInit" @284 262 "___libc_LogInit" @285 263 "___libc_LogLeave" @286 264 "___libc_LogMsg" @287 265 "___libc_LogRaw" @288 266 "___libc_StrictMemoryR" @289 267 "___libc_StrictMemoryRW" @290 268 "___libc_StrictStringR" @291 269 "___libc_TLSAlloc" @292 270 "___libc_TLSFree" @293 271 "___libc_TLSGet" @294 272 "___libc_TLSSet" @295 273 "___locale_C" @296 274 "___log2" @297 275 "___lseek" @298 276 "___mempcpy" @299 277 "___mkdir" @300 278 "___open" @301 279 "___ovfl_delete" @302 280 "___ovfl_get" @303 281 "___ovfl_put" @304 282 "___pipe" @305 283 "___posix_spawn_file_actions_realloc" @306 284 "___put_page" @307 285 "___read" @308 286 "___read_kbd" @309 287 "___rec_close" @310 288 "___rec_delete" @311 289 "___rec_dleaf" @312 290 "___rec_fd" @313 291 "___rec_fmap" @314 292 "___rec_fpipe" @315 293 "___rec_get" @316 294 "___rec_iput" @317 295 "___rec_open" @318 296 "___rec_put" @319 297 "___rec_ret" @320 298 "___rec_search" @321 299 "___rec_seq" @322 300 "___rec_sync" @323 301 "___rec_vmap" @324 302 "___rec_vpipe" @325 303 "___reclaim_buf" @326 304 "___remove_zeros" @327 305 "___rmdir" @328 306 "___select" @329 307 "___settime" @330 308 "___signbit" @331 309 "___signbitf" @332 310 "___signbitl" @333 311 "___small_atod" @334 312 "___small_dtoa" @335 313 "___smutex_request_internal" @336 314 "___spawni" @337 315 "___spawnve" @338 316 "___split_page" @339 317 "___stat" @340 318 "___strndup" @341 319 "___strnlen" @342 320 "___swchar" @343 321 "___threadid" @344 322 "___to_ucs" @345 323 "___tolower" @346 324 "___toupper" @347 325 "___ttyname" @348 326 "___ulimit" @349 327 "___unwind2" @350 328 "___utimes" @351 329 "___wait" @352 330 "___waitpid" @353 331 "___write" @354 332 "__abspath" @355 333 "__assert" @356 334 "__beginthread" @357 335 "__bi_add_bb" @358 336 "__bi_cmp_bb" @359 337 "__bi_cmp_pow2" @360 338 "__bi_div_add_back" @361 339 "__bi_div_estimate" @362 340 "__bi_div_rem_bb" @363 341 "__bi_div_rem_bw" @364 342 "__bi_div_rem_pow2" @365 343 "__bi_div_subtract" @366 344 "__bi_fls" @367 345 "__bi_hdiv_rem_b" @368 346 "__bi_mul_bb" @369 347 "__bi_mul_bw" @370 348 "__bi_pow5" @371 349 "__bi_set_b" @372 350 "__bi_set_d" @373 351 "__bi_set_w" @374 352 "__bi_shl_b" @375 353 "__bi_shl_w" @376 354 "__bi_shr_b" @377 355 "__bi_sub_mul_bw" @378 356 "__bi_wdiv_rem_pow2" @379 357 "__chdir2" @380 358 "__clear87" @381 359 "__closestream" @382 360 "__compute_dst_table" @383 361 "__const_HALF" @384 362 "__const_M_ONE" @385 363 "__const_NAN" @386 364 "__const_ONE" @387 365 "__const_TWO" @388 366 "__const_ZERO" @389 367 "__control87" @390 368 "__core" @391 369 "__crlf" @392 370 "__day" @393 371 "__defext" @394 372 "__dorand48" @395 373 "__dt_free" @396 374 "__dt_read" @397 375 "__dt_sort" @398 376 "__dt_split" @399 377 "__ea_free" @400 378 "__ea_get" @401 379 "__ea_put" @402 380 "__ea_remove" @403 381 "__ea_set_errno" @404 382 "__ea_write" @405 383 "__ead_add" @406 384 "__ead_clear" @407 385 "__ead_copy" @408 386 "__ead_count" @409 387 "__ead_create" @410 388 "__ead_delete" @411 389 "__ead_destroy" @412 390 "__ead_enum" @413 391 "__ead_fea2list_size" @414 392 "__ead_fea2list_to_fealist" @415 393 "__ead_fealist_to_fea2list" @416 394 "__ead_find" @417 395 "__ead_get_fea2list" @418 396 "__ead_get_flags" @419 397 "__ead_get_name" @420 398 "__ead_get_value" @421 399 "__ead_make_index" @422 400 "__ead_name_len" @423 401 "__ead_read" @424 402 "__ead_replace" @425 403 "__ead_size_buffer" @426 404 "__ead_sort" @427 405 "__ead_use_fea2list" @428 406 "__ead_value_size" @429 407 "__ead_write" @430 408 "__emx_getopt" @431 409 "__emxload_connect" @432 410 "__emxload_disconnect" @433 411 "__emxload_do_connect" @434 412 "__emxload_do_disconnect" @435 413 "__emxload_do_receive" @436 414 "__emxload_do_request" @437 415 "__emxload_do_wait" @438 416 "__emxload_env" @439 417 "__emxload_list_get" @440 418 "__emxload_list_start" @441 419 "__emxload_prog" @442 420 "__emxload_request" @443 421 "__emxload_stop" @444 422 "__emxload_this" @445 423 "__emxload_unload" @446 424 "__endbuf1" @447 425 "__endthread" @448 426 "__envargs" @449 427 "__err" @450 428 "__errno" @451 429 "__errno_fun" @452 430 "__execname" @453 431 "__exit" @454 432 "__exit_streams" @455 433 "__fassign" @456 434 "__fbuf" @457 435 "__fcloseall" @458 436 "__fflush_nolock" @459 437 "__filesys" @460 438 "__fill" @461 439 "__flush" @462 440 "__flushstream" @463 441 "__fmutex_checked_close" @464 442 "__fmutex_checked_create" @465 443 "__fmutex_checked_open" @466 444 "__fmutex_close" @467 445 "__fmutex_create" @468 446 "__fmutex_dummy" @469 447 "__fmutex_open" @470 448 "__fnexplode" @471 449 "__fnexplodefree" @472 450 "__fngetdrive" @473 451 "__fnisabs" @474 452 "__fnisrel" @475 453 "__fnlwr" @476 454 "__fnlwr2" @477 455 "__fnslashify" @478 456 "__fpreset" @479 457 "__fseek_hdr" @480 458 "__fseek_nolock" @481 459 "__fsetmode" @482 460 "__fsopen" @483 461 "__ftell_nolock" @484 462 "__fullpath" @485 463 "__fwrite_nolock" @486 464 "__fxam" @487 465 "__fxaml" @488 466 "__getcwd1" @489 467 "__getcwd2" @490 468 "__getdrive" @491 469 "__getext" @492 470 "__getext2" @493 471 "__getname" @494 472 "__getpass1" @495 473 "__getpass2" @496 474 "__getprogname" @497 475 "__gettid" @498 476 "__getvol" @499 477 "__gmt2loc" @500 478 "__hcalloc" @501 479 "__heap_walk" @502 480 "__heapchk" @503 481 "__heapmin" @504 482 "__heapset" @505 483 "__hinitheap" @506 484 "__hmalloc" @507 485 "__hrealloc" @508 486 "__imphandle" @509 487 "__init1_tmp" @510 488 "__init_streams" @511 489 "__input" @512 490 "__int86" @513 491 "__isterm" @514 492 "__lcalloc" @515 493 "__libc_16to32" @516 494 "__libc_32to16" @517 495 "__libc_thunk1" @518 496 "__linitheap" @519 497 "__lmalloc" @520 498 "__loc2gmt" @521 499 "__lrealloc" @522 500 "__makepath" @523 501 "__memcount" @524 502 "__memdif" @525 503 "__memrchr" @526 504 "__memswap" @527 505 "__mfclose" @528 506 "__mfopen" @529 507 "__mheap" @530 508 "__mktime" @531 509 "__month_day_leap" @532 510 "__month_day_non_leap" @533 511 "__msize" @534 512 "__newstream" @535 513 "__openstream" @536 514 "__os2_bad" @537 515 "__output" @538 516 "__path" @539 517 "__read_kbd" @540 518 "__remext" @541 519 "__response" @542 520 "__rfnlwr" @543 521 "__rmtmp" @544 522 "__rmutex_checked_close" @545 523 "__rmutex_checked_create" @546 524 "__rmutex_checked_open" @547 525 "__rmutex_close" @548 526 "__rmutex_create" @549 527 "__rmutex_dummy" @550 528 "__rmutex_fork" @551 529 "__rmutex_open" @552 530 "__scrsize" @553 531 "__searchenv" @554 532 "__seek_hdr" @555 533 "__setdummymore" @556 534 "__setmore" @557 535 "__sfnlwr" @558 536 "__sleep2" @559 537 "__splitargs" @560 538 "__splitpath" @561 539 "__status87" @562 540 "__std_abort" @563 541 "__std_abs" @564 542 "__std_access" @565 543 "__std_acos" @566 544 "__std_acosl" @567 545 "__std_asctime" @568 546 "__std_asctime_r" @569 547 "__std_asin" @570 548 "__std_asinl" @571 549 "__std_atan" @572 550 "__std_atan2" @573 551 "__std_atan2l" @574 552 "__std_atanl" @575 553 "__std_atexit" @576 554 "__std_atof" @577 555 "__std_atofl" @578 556 "__std_atoi" @579 557 "__std_atol" @580 558 "__std_atoll" @581 559 "__std_basename" @582 560 "__std_bcmp" @583 561 "__std_bcopy" @584 562 "__std_brk" @585 563 "__std_bsearch" @586 564 "__std_bzero" @587 565 "__std_calloc" @588 566 "__std_cbrt" @589 567 "__std_cbrtl" @590 568 "__std_ceil" @591 569 "__std_ceill" @592 570 "__std_cfgetispeed" @593 571 "__std_cfgetospeed" @594 572 "__std_cfsetispeed" @595 573 "__std_cfsetospeed" @596 574 "__std_cfsetspeed" @597 575 "__std_chdir" @598 576 "__std_chdrive" @599 577 "__std_chmod" @600 578 "__std_chsize" @601 579 "__std_clearerr" @602 580 "__std_clock" @603 581 "__std_close" @604 582 "__std_closedir" @605 583 "__std_copysign" @606 584 "__std_copysignf" @607 585 "__std_copysignl" @608 586 "__std_cos" @609 587 "__std_cosh" @610 588 "__std_coshl" @611 589 "__std_cosl" @612 590 "__std_creat" @613 591 "__std_ctime" @614 592 "__std_ctime_r" @615 593 "__std_cuserid" @616 594 "__std_difftime" @617 595 "__std_dirname" @618 596 "__std_div" @619 597 "__std_drand48" @620 598 "__std_dup" @621 599 "__std_dup2" @622 600 "__std_endpwent" @623 601 "__std_eof" @624 602 "__std_erand48" @625 603 "__std_execl" @626 604 "__std_execle" @627 605 "__std_execlp" @628 606 "__std_execlpe" @629 607 "__std_execv" @630 608 "__std_execve" @631 609 "__std_execvp" @632 610 "__std_execvpe" @633 611 "__std_exit" @634 612 "__std_exp" @635 613 "__std_expand" @636 614 "__std_expl" @637 615 "__std_fabs" @638 616 "__std_fabsl" @639 617 "__std_fclose" @640 618 "__std_fcntl" @641 619 "__std_fdopen" @642 620 "__std_feof" @643 621 "__std_ferror" @644 622 "__std_fflush" @645 623 "__std_ffs" @646 624 "__std_fgetc" @647 625 "__std_fgetchar" @648 626 "__std_fgetpos" @649 627 "__std_fgets" @650 628 "__std_filelength" @651 629 "__std_fileno" @652 630 "__std_flock" @653 631 "__std_floor" @654 632 "__std_floorl" @655 633 "__std_flushall" @656 634 "__std_fmod" @657 635 "__std_fmodl" @658 636 "__std_fnmatch" @659 637 "__std_fopen" @660 638 "__std_fork" @661 639 "__std_fpathconf" @662 640 "__std_fprintf" @663 641 "__std_fputc" @664 642 "__std_fputchar" @665 643 "__std_fputs" @666 644 "__std_fread" @667 645 "__std_free" @668 646 "__std_freopen" @669 647 "__std_frexp" @670 648 "__std_frexpl" @671 649 "__std_fscanf" @672 650 "__std_fseek" @673 651 "__std_fseeko" @674 652 "__std_fsetpos" @675 653 "__std_fstat" @676 654 "__std_fsync" @677 655 "__std_ftell" @678 656 "__std_ftello" @679 657 "__std_ftime" @680 658 "__std_ftruncate" @681 659 "__std_ftw" @682 660 "__std_fwrite" @683 661 "__std_gcvt" @684 662 "__std_getchar" @685 663 "__std_getcwd" @686 664 "__std_getegid" @687 665 "__std_getenv" @688 666 "__std_geteuid" @689 667 "__std_getgid" @690 668 "__std_getgrgid" @691 669 "__std_getgrnam" @692 670 "__std_getgroups" @693 671 "__std_getlogin" @694 672 "__std_getopt" @695 673 "__std_getpagesize" @696 674 "__std_getpass" @697 675 "__std_getpgrp" @698 676 "__std_getpid" @699 677 "__std_getppid" @700 678 "__std_getpw" @701 679 "__std_getpwent" @702 680 "__std_getpwnam" @703 681 "__std_getpwuid" @704 682 "__std_gets" @705 683 "__std_gettimeofday" @706 684 "__std_getuid" @707 685 "__std_getw" @708 686 "__std_getwd" @709 687 "__std_glob" @710 688 "__std_globfree" @711 689 "__std_gmtime" @712 690 "__std_gmtime_r" @713 691 "__std_hcreate" @714 692 "__std_hdestroy" @715 693 "__std_hsearch" @716 694 "__std_hypot" @717 695 "__std_hypotl" @718 696 "__std_imaxabs" @719 697 "__std_imaxdiv" @720 698 "__std_index" @721 699 "__std_insque" @722 700 "__std_ioctl" @723 701 "__std_isatty" @724 702 "__std_jrand48" @725 703 "__std_kill" @726 704 "__std_labs" @727 705 "__std_lcong48" @728 706 "__std_ldexp" @729 707 "__std_ldexpl" @730 708 "__std_ldiv" @731 709 "__std_lfind" @732 710 "__std_lltoa" @733 711 "__std_localeconv" @734 712 "__std_localtime" @735 713 "__std_localtime_r" @736 714 "__std_lockf" @737 715 "__std_log" @738 716 "__std_log10" @739 717 "__std_log10l" @740 718 "__std_logl" @741 719 "__std_longjmp" @742 720 "__std_lrand48" @743 721 "__std_lsearch" @744 722 "__std_lseek" @745 723 "__std_lstat" @746 724 "__std_ltoa" @747 725 "__std_malloc" @748 726 "__std_mblen" @749 727 "__std_mbstowcs" @750 728 "__std_mbtowc" @751 729 "__std_memccpy" @752 730 "__std_memchr" @753 731 "__std_memcmp" @754 732 "__std_memcpy" @755 733 "__std_memicmp" @756 734 "__std_memmove" @757 735 "__std_memset" @758 736 "__std_mkdir" @759 737 "__std_mkstemp" @760 738 "__std_mktemp" @761 739 "__std_mktime" @762 740 "__std_modf" @763 741 "__std_modfl" @764 742 "__std_mrand48" @765 743 "__std_nextafter" @766 744 "__std_nextafterf" @767 745 "__std_nextafterl" @768 746 "__std_nrand48" @769 747 "__std_open" @770 748 "__std_opendir" @771 749 "__std_pathconf" @772 750 "__std_pause" @773 751 "__std_pclose" @774 752 "__std_perror" @775 753 "__std_pipe" @776 754 "__std_popen" @777 755 "__std_posix_memalign" @778 756 "__std_pow" @779 757 "__std_powl" @780 758 "__std_printf" @781 759 "__std_putchar" @782 760 "__std_putenv" @783 761 "__std_puts" @784 762 "__std_putw" @785 763 "__std_qsort" @786 764 "__std_qsort_r" @787 765 "__std_raise" @788 766 "__std_rand" @789 767 "__std_read" @790 768 "__std_readdir" @791 769 "__std_readdir_r" @792 770 "__std_readv" @793 771 "__std_realloc" @794 772 "__std_realpath" @795 773 "__std_remove" @796 774 "__std_remque" @797 775 "__std_rename" @798 776 "__std_rewind" @799 777 "__std_rewinddir" @800 778 "__std_rindex" @801 779 "__std_rint" @802 780 "__std_rintl" @803 781 "__std_rmdir" @804 782 "__std_sbrk" @805 783 "__std_scanf" @806 784 "__std_seed48" @807 785 "__std_seekdir" @808 786 "__std_select" @809 787 "__std_setbuf" @810 788 "__std_setbuffer" @811 789 "__std_setenv" @812 790 "__std_setgid" @813 791 "__std_setjmp" @814 792 "__std_setlocale" @815 793 "__std_setmode" @816 794 "__std_setpgid" @817 795 "__std_setpwent" @818 796 "__std_setsid" @819 797 "__std_settimeofday" @820 798 "__std_setuid" @821 799 "__std_setvbuf" @822 800 "__std_sigaction" @823 801 "__std_sigaddset" @824 802 "__std_sigdelset" @825 803 "__std_sigemptyset" @826 804 "__std_sigfillset" @827 805 "__std_sigismember" @828 806 "__std_siglongjmp" @829 807 "__std_signal" @830 808 "__std_sigpending" @831 809 "__std_sigprocmask" @832 810 "__std_sigsetjmp" @833 811 "__std_sigsuspend" @834 812 "__std_sin" @835 813 "__std_sinh" @836 814 "__std_sinhl" @837 815 "__std_sinl" @838 816 "__std_sleep" @839 817 "__std_snprintf" @840 818 "__std_sopen" @841 819 "__std_spawnl" @842 820 "__std_spawnle" @843 821 "__std_spawnlp" @844 822 "__std_spawnlpe" @845 823 "__std_spawnv" @846 824 "__std_spawnve" @847 825 "__std_spawnvp" @848 826 "__std_spawnvpe" @849 827 "__std_sprintf" @850 828 "__std_sqrt" @851 829 "__std_sqrtl" @852 830 "__std_srand" @853 831 "__std_srand48" @854 832 "__std_sscanf" @855 833 "__std_stat" @856 834 "__std_strcat" @857 835 "__std_strchr" @858 836 "__std_strcmp" @859 837 "__std_strcoll" @860 838 "__std_strcpy" @861 839 "__std_strcspn" @862 840 "__std_strdup" @863 841 "__std_strerror" @864 842 "__std_strerror_r" @865 843 "__std_strftime" @866 844 "__std_stricmp" @867 845 "__std_strlen" @868 846 "__std_strlwr" @869 847 "__std_strncat" @870 848 "__std_strncmp" @871 849 "__std_strncpy" @872 850 "__std_strnicmp" @873 851 "__std_strnset" @874 852 "__std_strpbrk" @875 853 "__std_strptime" @876 854 "__std_strrchr" @877 855 "__std_strrev" @878 856 "__std_strset" @879 857 "__std_strspn" @880 858 "__std_strstr" @881 859 "__std_strtod" @882 860 "__std_strtof" @883 861 "__std_strtoimax" @884 862 "__std_strtok" @885 863 "__std_strtol" @886 864 "__std_strtold" @887 865 "__std_strtoll" @888 866 "__std_strtoul" @889 867 "__std_strtoull" @890 868 "__std_strtoumax" @891 869 "__std_strupr" @892 870 "__std_strxfrm" @893 871 "__std_swab" @894 872 "__std_sys_errlist" @895 873 "__std_sys_nerr" @896 874 "__std_sysconf" @897 875 "__std_system" @898 876 "__std_tan" @899 877 "__std_tanh" @900 878 "__std_tanhl" @901 879 "__std_tanl" @902 880 "__std_tcdrain" @903 881 "__std_tcflow" @904 882 "__std_tcflush" @905 883 "__std_tcgetattr" @906 884 "__std_tcgetpgrp" @907 885 "__std_tcsendbreak" @908 886 "__std_tcsetattr" @909 887 "__std_tcsetpgrp" @910 888 "__std_tdelete" @911 889 "__std_tell" @912 890 "__std_telldir" @913 891 "__std_tempnam" @914 892 "__std_tfind" @915 893 "__std_time" @916 894 "__std_times" @917 895 "__std_tmpfile" @918 896 "__std_tmpnam" @919 897 "__std_trunc" @920 898 "__std_truncate" @921 899 "__std_truncl" @922 900 "__std_tsearch" @923 901 "__std_ttyname" @924 902 "__std_twalk" @925 903 "__std_tzset" @926 904 "__std_ulimit" @927 905 "__std_ulltoa" @928 906 "__std_ultoa" @929 907 "__std_umask" @930 908 "__std_uname" @931 909 "__std_ungetc" @932 910 "__std_unlink" @933 911 "__std_unsetenv" @934 912 "__std_usleep" @935 913 "__std_utime" @936 914 "__std_utimes" @937 915 "__std_vfprintf" @938 916 "__std_vfscanf" @939 917 "__std_vprintf" @940 918 "__std_vscanf" @941 919 "__std_vsnprintf" @942 920 "__std_vsprintf" @943 921 "__std_vsscanf" @944 922 "__std_wait" @945 923 "__std_waitpid" @946 924 "__std_wcstombs" @947 925 "__std_wctomb" @948 926 "__std_write" @949 927 "__std_writev" @950 928 "__stream_read" @951 929 "__stream_write" @952 930 "__strncpy" @953 931 "__swchar" @954 932 "__sys_dump_heap_objs" @955 933 "__tcalloc" @956 934 "__tfree" @957 935 "__theapmin" @958 936 "__threadstore" @959 937 "__tmalloc" @960 938 "__tmpbuf1" @961 939 "__tmpidx_lock" @962 940 "__tmpidx_unlock" @963 941 "__tmpidxnam" @964 942 "__trealloc" @965 943 "__trslash" @966 944 "__uaddmem" @967 945 "__ucalloc" @968 946 "__uclose" @969 947 "__ucreate" @970 948 "__ucreate2" @971 949 "__udefault" @972 950 "__udestroy" @973 951 "__uflags" @974 952 "__uheap_type" @975 953 "__uheap_walk" @976 954 "__uheap_walk2" @977 955 "__uheapchk" @978 956 "__uheapmin" @979 957 "__uheapset" @980 958 "__uldiv" @981 959 "__um_addmem_nolock" @982 960 "__um_alloc_no_lock" @983 961 "__um_crumb_free_maybe_lock" @984 962 "__um_default_alloc" @985 963 "__um_default_expand" @986 964 "__um_default_release" @987 965 "__um_default_shrink" @988 966 "__um_find_bucket" @989 967 "__um_free_maybe_lock" @990 968 "__um_init_default_regular_heap" @991 969 "__um_init_default_tiled_heap" @992 970 "__um_lump_alloc" @993 971 "__um_lump_coalesce_free" @994 972 "__um_lump_free_maybe_lock" @995 973 "__um_lump_link_heap" @996 974 "__um_lump_make_free" @997 975 "__um_lump_unlink_bucket" @998 976 "__um_lump_unlink_heap" @999 977 "__um_realloc" @1000 978 "__um_seg_addmem" @1001 979 "__um_seg_setmem" @1002 980 "__um_walk_error" @1003 981 "__um_walk_no_lock" @1004 982 "__umalloc" @1005 983 "__ungetc_nolock" @1006 984 "__uopen" @1007 985 "__ustats" @1008 986 "__utcalloc" @1009 987 "__utdefault" @1010 988 "__utmalloc" @1011 989 "__vsopen" @1012 990 "__warn" @1013 991 "__wildcard" @1014 992 "__year_day" @1015 993 "_argz_delete" @1016 994 "_dbm_clearerr" @1017 995 "_dbm_close" @1018 996 "_dbm_delete" @1019 997 "_dbm_dirfno" @1020 998 "_dbm_error" @1021 999 "_dbm_fetch" @1022 1000 "_dbm_firstkey" @1023 1001 "_dbm_nextkey" @1024 1002 "_dbm_open" @1025 1003 "_dbm_store" @1026 1004 "_dbopen" @1027 1005 "_err_set_exit" @1028 1006 "_err_set_file" @1029 1007 "_errc" @1030 1008 "_errx" @1031 1009 "_getopt_long" @1032 1010 "_heapsort" @1033 1011 "_initstate" @1034 1012 "_isalnum" @1035 1013 "_isalpha" @1036 1014 "_isascii" @1037 1015 "_isblank" @1038 1016 "_iscntrl" @1039 1017 "_isdigit" @1040 1018 "_isgraph" @1041 1019 "_ishexnumber" @1042 1020 "_islower" @1043 1021 "_isnumber" @1044 1022 "_isprint" @1045 1023 "_ispunct" @1046 1024 "_isspace" @1047 1025 "_isupper" @1048 1026 "_isxdigit" @1049 1027 "_lchmod" @1050 1028 "_mergesort" @1051 1029 "_mpool_close" @1052 1030 "_mpool_filter" @1053 1031 "_mpool_get" @1054 1032 "_mpool_new" @1055 1033 "_mpool_open" @1056 1034 "_mpool_put" @1057 1035 "_mpool_sync" @1058 1036 "_posix_spawn" @1059 1037 "_posix_spawn_file_actions_addclose" @1060 1038 "_posix_spawn_file_actions_adddup2" @1061 1039 "_posix_spawn_file_actions_addopen" @1062 1040 "_posix_spawn_file_actions_destroy" @1063 1041 "_posix_spawn_file_actions_init" @1064 1042 "_posix_spawnattr_destroy" @1065 1043 "_posix_spawnattr_getflags" @1066 1044 "_posix_spawnattr_getpgroup" @1067 1045 "_posix_spawnattr_getschedparam" @1068 1046 "_posix_spawnattr_getschedpolicy" @1069 1047 "_posix_spawnattr_getsigdefault" @1070 1048 "_posix_spawnattr_getsigmask" @1071 1049 "_posix_spawnattr_init" @1072 1050 "_posix_spawnattr_setflags" @1073 1051 "_posix_spawnattr_setpgroup" @1074 1052 "_posix_spawnattr_setschedparam" @1075 1053 "_posix_spawnattr_setschedpolicy" @1076 1054 "_posix_spawnattr_setsigdefault" @1077 1055 "_posix_spawnattr_setsigmask" @1078 1056 "_posix_spawnp" @1079 1057 "_radixsort" @1080 1058 "_random" @1081 1059 "_reallocf" @1082 1060 "_regcomp" @1083 1061 "_regerror" @1084 1062 "_regexec" @1085 1063 "_regfree" @1086 1064 "_setprogname" @1087 1065 "_setstate" @1088 1066 "_sig_info" @1089 1067 "_sradixsort" @1090 1068 "_srandom" @1091 1069 "_srandomdev" @1092 1070 "_stpcpy" @1093 1071 "_strcasestr" @1094 1072 "_strlcat" @1095 1073 "_strlcpy" @1096 1074 "_strnstr" @1097 1075 "_strsep" @1098 1076 "_strsignal" @1099 1077 "_sys_exception" @1100 1078 "_sys_nsig" @1101 1079 "_sys_siglist" @1102 1080 "_sys_signame" @1103 1081 "_toascii" @1104 1082 "_tolower" @1105 1083 "_toupper" @1106 1084 "_verr" @1107 1085 "_verrc" @1108 1086 "_verrx" @1109 1087 "_vwarn" @1110 1088 "_vwarnc" @1111 1089 "_vwarnx" @1112 1090 "_warnc" @1113 1091 "_warnx" @1114 1081 1092 1082 "___libc_Back_threadCleanup" @11061083 "___libc_Back_threadEnd" @11071084 "___libc_Back_threadInit" @11081085 "___libc_Back_threadStartup" @11091086 "___libc_TLSAlloc" @11101087 "___libc_TLSFree" @11111088 "___libc_TLSGet" @11121089 "___libc_TLSSet" @1113 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/beginthr.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.7
to1.8
r1288 r1289 13 13 #include <InnoTekLIBC/thread.h> 14 14 #include <InnoTekLIBC/backend.h> 15 15 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_THREAD 16 #include <InnoTekLIBC/logstrict.h> 16 17 17 18 /** … … 22 23 static void _System threadWrapper(__LIBC_PTHREAD pThrd) 23 24 { 25 LIBCLOG_ENTER("pThrd=%p\n", pThrd); 24 26 int tid; 25 27 EXCEPTIONREGISTRATIONRECORD reg; … … 27 29 28 30 __libc_Back_threadStartup(®); 31 LIBCLOG_MSG("calling thread function %p with arg %p\n", pThrd->u.startup.pfnStart, pThrd->u.startup.pvArg); 29 32 pThrd->u.startup.pfnStart(pThrd->u.startup.pvArg); 33 LIBCLOG_MSG("thread function returned\n"); 30 34 31 35 FS_SAVE_LOAD(); … … 33 37 __libc_threadFree(pThrd); 34 38 __libc_Back_threadEnd(®); 39 LIBCLOG_MSG("calling DosExit(%s, 0)\n", tid == 1 ? "EXIT_PROCESS" : "EXIT_THREAD"); 35 40 for (;;) 36 41 DosExit(tid == 1 ? EXIT_PROCESS : EXIT_THREAD, 0); … … 40 45 int _beginthread(void (*pfnStart)(void *), void *pvStack, unsigned cbStack, void *pvArg) 41 46 { 47 LIBCLOG_ENTER("pfnStart=%p pvStart=%p cbStack=%d pvArg=%p\n", pfnStart, pvStack, cbStack, pvArg); 42 48 APIRET rc; 43 49 TID tid; … … 52 58 { 53 59 errno = ENOMEM; 54 return -1;60 LIBCLOG_RETURN_INT(-1); 55 61 } 56 62 … … 68 74 FS_RESTORE(); 69 75 if (!rc) 70 return tid;76 LIBCLOG_RETURN_INT((int)tid); 71 77 72 78 /* 73 79 * Set errno and cleanup. 74 80 */ 81 LIBC_ASSERTM_FAILED("DosCreateThread failed with rc=%u cbStack=%u\n", rc, (unsigned)cbStack); 75 82 if (rc == ERROR_NOT_ENOUGH_MEMORY) 76 83 errno = ENOMEM; … … 80 87 errno = EINVAL; 81 88 __libc_threadFree(pThrd); 82 return -1;89 LIBCLOG_RETURN_INT(-1); 83 90 } 84 91 … … 86 93 void _endthread(void) 87 94 { 95 LIBCLOG_ENTER("\n"); 88 96 __LIBC_PTHREAD pThrd = __libc_threadCurrent(); 89 97 int tid; … … 93 101 tid = _gettid(); 94 102 __libc_threadFree(pThrd); 103 LIBCLOG_MSG("calling DosExit(%s, 0)\n", tid == 1 ? "EXIT_PROCESS" : "EXIT_THREAD"); 95 104 for (;;) 96 105 DosExit(tid == 1 ? EXIT_PROCESS : EXIT_THREAD, 0); -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/execl.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.7
to1.8
r1288 r1289 5 5 #include <stdarg.h> 6 6 #include <process.h> 7 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 8 #include <InnoTekLIBC/logstrict.h> 7 9 8 10 int _STD(execl) (const char *name, const char *arg0, ...) 9 11 { 10 int result; 12 LIBCLOG_ENTER("name=%s arg0=%s ...\n", name, arg0); 13 int result; 11 14 12 /* Note: Passing `arg0' to spawnv() is not portable. */15 /* Note: Passing `arg0' to spawnv() is not portable. */ 13 16 14 result = spawnv(P_OVERLAY, name, (char * const *) &arg0);15 return result;17 result = spawnv(P_OVERLAY, name, (char * const *) &arg0); 18 LIBCLOG_RETURN_INT(result); 16 19 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/execle.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.7
to1.8
r1288 r1289 5 5 #include <stdarg.h> 6 6 #include <process.h> 7 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 8 #include <InnoTekLIBC/logstrict.h> 7 9 8 int _STD(execle) 10 int _STD(execle)(const char *name, const char *arg0, ...) 9 11 { 10 va_list arg_ptr; 11 char * const *env_ptr; 12 int result; 12 LIBCLOG_ENTER("name=%s arg0=%s ...\n", name, arg0); 13 va_list arg_ptr; 14 char * const *env_ptr; 15 int rc; 13 16 14 va_start(arg_ptr, arg0);15 while (va_arg(arg_ptr, char *) != NULL)16 /* do nothing */;17 env_ptr = va_arg(arg_ptr, char * const *);18 va_end(arg_ptr);17 va_start(arg_ptr, arg0); 18 while (va_arg(arg_ptr, char *) != NULL) 19 /* do nothing */; 20 env_ptr = va_arg(arg_ptr, char * const *); 21 va_end(arg_ptr); 19 22 20 /* Note: Passing `&arg0' to spawnve() is not portable. */23 /* Note: Passing `&arg0' to spawnve() is not portable. */ 21 24 22 result = spawnve(P_OVERLAY, name, (char * const *)&arg0, env_ptr);23 return result;25 rc = spawnve(P_OVERLAY, name, (char * const *)&arg0, env_ptr); 26 LIBCLOG_RETURN_INT(rc); 24 27 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/execlp.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.7
to1.8
r1288 r1289 5 5 #include <stdarg.h> 6 6 #include <process.h> 7 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 8 #include <InnoTekLIBC/logstrict.h> 7 9 8 int _STD(execlp) 10 int _STD(execlp)(const char *name, const char *arg0, ...) 9 11 { 10 int result; 12 LIBCLOG_ENTER("name=%s arg0=%s ...\n", name, arg0); 13 int rc; 11 14 12 /* Note: Passing `&arg0' to spawnvp() is not portable. */15 /* Note: Passing `&arg0' to spawnvp() is not portable. */ 13 16 14 result = spawnvp(P_OVERLAY, name, (char * const *)&arg0);15 return result;17 rc = spawnvp(P_OVERLAY, name, (char * const *)&arg0); 18 LIBCLOG_RETURN_INT(rc); 16 19 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/execlpe.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.7
to1.8
r1288 r1289 5 5 #include <stdarg.h> 6 6 #include <process.h> 7 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 8 #include <InnoTekLIBC/logstrict.h> 7 9 8 int _STD(execlpe) 10 int _STD(execlpe)(const char *name, const char *arg0, ...) 9 11 { 10 va_list arg_ptr; 11 char * const *env_ptr; 12 int result; 12 LIBCLOG_ENTER("name=%s arg0=%s ...\n", name, arg0); 13 va_list arg_ptr; 14 char * const *env_ptr; 15 int rc; 13 16 14 va_start(arg_ptr, arg0);15 while (va_arg(arg_ptr, char *) != NULL)16 /* do nothing */;17 env_ptr = va_arg(arg_ptr, char * const *);18 va_end(arg_ptr);17 va_start(arg_ptr, arg0); 18 while (va_arg(arg_ptr, char *) != NULL) 19 /* do nothing */; 20 env_ptr = va_arg(arg_ptr, char * const *); 21 va_end(arg_ptr); 19 22 20 /* Note: Passing `&arg0' to spawnvpe() is not portable. */ 21 22 result = spawnvpe (P_OVERLAY, name, (char * const *)&arg0, env_ptr); 23 return result; 23 /* Note: Passing `&arg0' to spawnvpe() is not portable. */ 24 rc = spawnvpe(P_OVERLAY, name, (char * const *)&arg0, env_ptr); 25 LIBCLOG_RETURN_INT(rc); 24 26 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/execv.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 3 3 #include "libc-alias.h" 4 4 #include <process.h> 5 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 6 #include <InnoTekLIBC/logstrict.h> 5 7 6 int _STD(execv) 8 int _STD(execv)(const char *name, char * const argv[]) 7 9 { 8 return spawnv (P_OVERLAY, name, argv); 10 LIBCLOG_ENTER("name=%s argv=%p\n", name, argv); 11 int rc = spawnv(P_OVERLAY, name, argv); 12 LIBCLOG_RETURN_INT(rc); 9 13 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/execve.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 3 3 #include "libc-alias.h" 4 4 #include <process.h> 5 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 6 #include <InnoTekLIBC/logstrict.h> 5 7 6 int _STD(execve) 8 int _STD(execve)(const char *name, char * const argv[], char * const envp[]) 7 9 { 8 return spawnve (P_OVERLAY, name, argv, envp); 10 LIBCLOG_ENTER("name=%s argv=%p envp=%p\n", name, argv, envp); 11 int rc = spawnve(P_OVERLAY, name, argv, envp); 12 LIBCLOG_RETURN_INT(rc); 9 13 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/execvp.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 3 3 #include "libc-alias.h" 4 4 #include <process.h> 5 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 6 #include <InnoTekLIBC/logstrict.h> 5 7 6 int _STD(execvp) 8 int _STD(execvp)(const char *name, char * const argv[]) 7 9 { 8 return spawnvp (P_OVERLAY, name, argv); 10 LIBCLOG_ENTER("name=%s argv=%s\n", name, argv); 11 int rc = spawnvp(P_OVERLAY, name, argv); 12 LIBCLOG_RETURN_INT(rc); 9 13 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/execvpe.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 3 3 #include "libc-alias.h" 4 4 #include <process.h> 5 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 6 #include <InnoTekLIBC/logstrict.h> 5 7 6 int _STD(execvpe) 8 int _STD(execvpe)(const char *name, char * const argv[], char * const envp[]) 7 9 { 8 return spawnvpe (P_OVERLAY, name, argv, envp); 10 LIBCLOG_ENTER("name=%s argv=%s envp=%s\n", name, argv, envp); 11 int rc = spawnvpe(P_OVERLAY, name, argv, envp); 12 LIBCLOG_RETURN_INT(rc); 9 13 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/fmutex.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1288 r1289 11 11 #include <sys/fmutex.h> 12 12 #include <sys/smutex.h> 13 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_MUTEX 14 #include <InnoTekLIBC/logstrict.h> 13 15 14 16 /* These functions are available even in single-thread libraries. */ 15 17 16 18 17 unsigned _fmutex_create (_fmutex *sem, unsigned flags) 18 { 19 unsigned rc; 20 FS_VAR(); 21 sem->fs = _FMS_AVAILABLE; 22 sem->flags = flags; 23 sem->padding[0] = 'f'; 24 sem->padding[1] = 'm'; 25 FS_SAVE_LOAD(); 26 rc = DosCreateEventSem (NULL, (PHEV)&sem->hev, 27 (flags & _FMC_SHARED) ? DC_SEM_SHARED : 0, 19 unsigned _fmutex_create(_fmutex *sem, unsigned flags) 20 { 21 LIBCLOG_ENTER("sem=%p flags=%#x\n", sem, flags); 22 unsigned rc; 23 FS_VAR(); 24 sem->fs = _FMS_AVAILABLE; 25 sem->flags = flags; 26 sem->padding[0] = 'f'; 27 sem->padding[1] = 'm'; 28 FS_SAVE_LOAD(); 29 rc = DosCreateEventSem(NULL, (PHEV)&sem->hev, 30 (flags & _FMC_SHARED) ? DC_SEM_SHARED : 0, 28 31 FALSE); 29 FS_RESTORE(); 30 return rc; 31 } 32 33 34 unsigned _fmutex_open (_fmutex *sem) 35 { 36 unsigned rc; 37 FS_VAR(); 38 FS_SAVE_LOAD(); 39 rc = DosOpenEventSem (NULL, (PHEV)&sem->hev); 40 FS_RESTORE(); 41 return rc; 42 } 43 44 45 unsigned _fmutex_close (_fmutex *sem) 46 { 47 unsigned rc; 48 FS_VAR(); 49 FS_SAVE_LOAD(); 50 rc = DosCloseEventSem (sem->hev); 51 FS_RESTORE(); 52 return rc; 53 } 54 55 56 unsigned __fmutex_request_internal (_fmutex *sem, unsigned flags, 57 signed char fs) 58 { 59 ULONG rc, count; 60 PTIB pTib; 61 PPIB pPib; 62 63 if (fs == _FMS_UNINIT) 64 return ERROR_INVALID_HANDLE; 65 66 if (flags & _FMR_NOWAIT) 67 { 68 if (fs == _FMS_OWNED_HARD) 32 FS_RESTORE(); 33 LIBCLOG_RETURN_UINT(rc); 34 } 35 36 37 unsigned _fmutex_open(_fmutex *sem) 38 { 39 LIBCLOG_ENTER("sem=%p\n", sem); 40 unsigned rc; 41 FS_VAR(); 42 FS_SAVE_LOAD(); 43 rc = DosOpenEventSem(NULL, (PHEV)&sem->hev); 44 FS_RESTORE(); 45 LIBCLOG_RETURN_UINT(rc); 46 } 47 48 49 unsigned _fmutex_close(_fmutex *sem) 50 { 51 LIBCLOG_ENTER("sem=%p\n", sem); 52 unsigned rc; 53 FS_VAR(); 54 FS_SAVE_LOAD(); 55 rc = DosCloseEventSem(sem->hev); 56 FS_RESTORE(); 57 LIBCLOG_RETURN_UINT(rc); 58 } 59 60 61 unsigned __fmutex_request_internal(_fmutex *sem, unsigned flags, signed char fs) 62 { 63 LIBCLOG_ENTER("sem=%p flags=%#x fs=%#x\n", sem, flags, (int)fs); 64 ULONG rc, count; 65 PTIB pTib; 66 PPIB pPib; 67 68 if (fs == _FMS_UNINIT) 69 { 70 LIBC_ASSERTM_FAILED("Invalid handle, fs == _FMS_UNINIT\n"); 71 LIBCLOG_RETURN_UINT(ERROR_INVALID_HANDLE); 72 } 73 74 if (flags & _FMR_NOWAIT) 75 { 76 if (fs == _FMS_OWNED_HARD) 69 77 { 70 if (__cxchg(&sem->fs, _FMS_OWNED_HARD) == _FMS_AVAILABLE)71 return 0;78 if (__cxchg(&sem->fs, _FMS_OWNED_HARD) == _FMS_AVAILABLE) 79 LIBCLOG_RETURN_UINT(0); 72 80 } 73 return ERROR_MUTEX_OWNED;74 } 75 76 for (;;)77 { 78 FS_VAR();79 FS_SAVE_LOAD();80 rc = DosResetEventSem(sem->hev, &count);81 FS_RESTORE();82 if (rc != 0 && rc != ERROR_ALREADY_RESET)83 return rc;84 if (__cxchg(&sem->fs, _FMS_OWNED_HARD) == _FMS_AVAILABLE)85 return 0;86 FS_SAVE_LOAD();87 88 do81 LIBCLOG_RETURN_UINT(ERROR_MUTEX_OWNED); 82 } 83 84 for (;;) 85 { 86 FS_VAR(); 87 FS_SAVE_LOAD(); 88 rc = DosResetEventSem(sem->hev, &count); 89 FS_RESTORE(); 90 if (rc != 0 && rc != ERROR_ALREADY_RESET) 91 LIBCLOG_RETURN_UINT(rc); 92 if (__cxchg(&sem->fs, _FMS_OWNED_HARD) == _FMS_AVAILABLE) 93 LIBCLOG_RETURN_UINT(0); 94 FS_SAVE_LOAD(); 95 96 do 89 97 { 90 rc = DosWaitEventSem (sem->hev, sem->flags & _FMC_SHARED ? SEM_INDEFINITE_WAIT : 3000);91 if (rc == ERROR_INTERRUPT)98 rc = DosWaitEventSem (sem->hev, sem->flags & _FMC_SHARED ? SEM_INDEFINITE_WAIT : 3000); 99 if (rc == ERROR_INTERRUPT) 92 100 { 93 /*94 * An interrupt occured, this might be a bug in the wait, or95 * more likely someone is killing us. If we're dying/exiting or96 * something along those lines, we return to the caller no matter97 * what flags it specified.98 */99 if (!(flags & _FMR_IGNINT))100 break;101 DosGetInfoBlocks(&pTib, &pPib);102 if (pPib->pib_flstatus & (0x40/*dying*/ | 0x04/*exiting all*/ | 0x02/*Exiting Thread 1*/ | 0x01/* ExitList */))103 break;104 rc = ERROR_TIMEOUT;101 /* 102 * An interrupt occured, this might be a bug in the wait, or 103 * more likely someone is killing us. If we're dying/exiting or 104 * something along those lines, we return to the caller no matter 105 * what flags it specified. 106 */ 107 if (!(flags & _FMR_IGNINT)) 108 break; 109 DosGetInfoBlocks(&pTib, &pPib); 110 if (pPib->pib_flstatus & (0x40/*dying*/ | 0x04/*exiting all*/ | 0x02/*Exiting Thread 1*/ | 0x01/* ExitList */)) 111 break; 112 rc = ERROR_TIMEOUT; 105 113 } 106 if (rc == ERROR_TIMEOUT && !(sem->flags & _FMC_SHARED))114 if (rc == ERROR_TIMEOUT && !(sem->flags & _FMC_SHARED)) 107 115 { 108 /*109 * Deadlock detection - if this is the only thread of the110 * process we should just kill our selves.111 * ASSUME thread ids are reused and upper thread limit or 4k.112 */113 int iThread;114 DosGetInfoBlocks(&pTib, &pPib);115 for (iThread = 1; iThread < 4096; iThread++)116 /* 117 * Deadlock detection - if this is the only thread of the 118 * process we should just kill our selves. 119 * ASSUME thread ids are reused and upper thread limit or 4k. 120 */ 121 int iThread; 122 DosGetInfoBlocks(&pTib, &pPib); 123 for (iThread = 1; iThread < 4096; iThread++) 116 124 { 117 if (iThread != pTib->tib_ptib2->tib2_ultid118 && !DosVerifyPidTid(pPib->pib_ulpid, iThread))119 break;125 if (iThread != pTib->tib_ptib2->tib2_ultid 126 && !DosVerifyPidTid(pPib->pib_ulpid, iThread)) 127 break; 120 128 } 121 if (iThread >= 4096)129 if (iThread >= 4096) 122 130 { /* No other threads! */ 123 ULONG ul;124 DosWrite((HFILE)2/*stderr*/, "\r\n!!!deadlock!!!\r\r", 18, &ul);125 __asm__ __volatile__("movl $0xdead10cc, %%eax; movl $0xdead10cc, %%edx; movl %0, %%ecx; int $3" : : "m" (sem) : "%eax", "%edx", "%ecx");126 rc = ERROR_SEM_OWNER_DIED;127 break;131 ULONG ul; 132 DosWrite((HFILE)2/*stderr*/, "\r\n!!!deadlock!!!\r\r", 18, &ul); 133 __asm__ __volatile__("movl $0xdead10cc, %%eax; movl $0xdead10cc, %%edx; movl %0, %%ecx; int $3" : : "m" (sem) : "%eax", "%edx", "%ecx"); 134 rc = ERROR_SEM_OWNER_DIED; 135 break; 128 136 } 129 137 } 130 138 } while (rc == ERROR_TIMEOUT); 131 FS_RESTORE(); 132 if (rc != 0) 133 return rc; 134 } 135 } 136 137 138 unsigned __fmutex_release_internal (_fmutex *sem) 139 { 140 ULONG rc; 141 FS_VAR(); 142 143 FS_SAVE_LOAD(); 144 rc = DosPostEventSem (sem->hev); 145 if (rc != 0 && rc != ERROR_ALREADY_POSTED) 146 { 147 FS_RESTORE(); 148 return rc; 149 } 150 151 /* Give up our time slice to give other threads a chance. Without 152 doing so, a thread which continuously requests and releases a 153 _fmutex semaphore may prevent all other threads requesting the 154 _fmutex semaphore from running, forever. 155 156 Why? Without DosSleep, the thread will keep the CPU for the rest 157 of the time slice. It may request (and get) the semaphore again 158 in the same time slice, perhaps multiple times. Assume that the 159 semaphore is still owned at the end of the time slice. In one of 160 the next time slices, all the other threads blocking on the 161 semaphore will wake up for a short while only to see that the 162 semaphore is owned; they will all go sleeping again. The thread 163 which owns the semaphore will get the CPU again. And may happen 164 to own the semaphore again at the end of the time slice. And so 165 on. DosSleep reduces that problem a bit. 166 167 Even with DosSleep(0), assignment of time slices to threads 168 requesting a _fmutex semaphore can be quite unbalanced: The more 169 frequently a thread requests a _fmutex semaphore, the more CPU 170 time it will get. In consequence, a thread which only rarely 171 needs the resource protected by the _fmutex semaphore will get 172 much less CPU time than threads competing heavily for the 173 resource. 174 175 DosSleep(1) would make _fmutex semaphores behave a bit better, 176 but would also give up way too much CPU time (in the average, 177 half a time slice (or one and a half?) per call of this 178 function). 179 180 DosReleaseMutexSem does a better job; it gives the time slice to 181 the thread which has waited longest on the semaphore (if all the 182 threads have the same priority). 183 184 Unfortunately, we cannot use an HMTX instead of an HEV because 185 only the owner (the thread which got assigned ownership by 186 DosRequestMutexSem) can release the HMTX with DosReleaseMutexSem. 187 If we could, that would take advantage of the FIFO of blocked 188 threads maintained by the kernel for each HMTX. 189 190 Using an HMTX would require the first thread requesting an owned 191 _fmutex semaphore to request the HMTX on behalf of the thread 192 owning the _fmutex semaphore. */ 193 194 DosSleep (0); 195 FS_RESTORE(); 196 return 0; 197 } 198 199 200 void _fmutex_dummy (_fmutex *sem) 201 { 202 sem->fs = _FMS_AVAILABLE; 203 sem->hev = 0; 204 } 139 FS_RESTORE(); 140 if (rc != 0) 141 LIBCLOG_RETURN_UINT(rc); 142 } 143 } 144 145 146 unsigned __fmutex_release_internal(_fmutex *sem) 147 { 148 LIBCLOG_ENTER("sem=%p\n", sem); 149 ULONG rc; 150 FS_VAR(); 151 152 FS_SAVE_LOAD(); 153 rc = DosPostEventSem(sem->hev); 154 if (rc != 0 && rc != ERROR_ALREADY_POSTED) 155 { 156 FS_RESTORE(); 157 LIBCLOG_RETURN_UINT(rc); 158 } 159 160 /* Give up our time slice to give other threads a chance. Without 161 doing so, a thread which continuously requests and releases a 162 _fmutex semaphore may prevent all other threads requesting the 163 _fmutex semaphore from running, forever. 164 165 Why? Without DosSleep, the thread will keep the CPU for the rest 166 of the time slice. It may request (and get) the semaphore again 167 in the same time slice, perhaps multiple times. Assume that the 168 semaphore is still owned at the end of the time slice. In one of 169 the next time slices, all the other threads blocking on the 170 semaphore will wake up for a short while only to see that the 171 semaphore is owned; they will all go sleeping again. The thread 172 which owns the semaphore will get the CPU again. And may happen 173 to own the semaphore again at the end of the time slice. And so 174 on. DosSleep reduces that problem a bit. 175 176 Even with DosSleep(0), assignment of time slices to threads 177 requesting a _fmutex semaphore can be quite unbalanced: The more 178 frequently a thread requests a _fmutex semaphore, the more CPU 179 time it will get. In consequence, a thread which only rarely 180 needs the resource protected by the _fmutex semaphore will get 181 much less CPU time than threads competing heavily for the 182 resource. 183 184 DosSleep(1) would make _fmutex semaphores behave a bit better, 185 but would also give up way too much CPU time (in the average, 186 half a time slice (or one and a half?) per call of this 187 function). 188 189 DosReleaseMutexSem does a better job; it gives the time slice to 190 the thread which has waited longest on the semaphore (if all the 191 threads have the same priority). 192 193 Unfortunately, we cannot use an HMTX instead of an HEV because 194 only the owner (the thread which got assigned ownership by 195 DosRequestMutexSem) can release the HMTX with DosReleaseMutexSem. 196 If we could, that would take advantage of the FIFO of blocked 197 threads maintained by the kernel for each HMTX. 198 199 Using an HMTX would require the first thread requesting an owned 200 _fmutex semaphore to request the HMTX on behalf of the thread 201 owning the _fmutex semaphore. */ 202 203 DosSleep(0); 204 FS_RESTORE(); 205 LIBCLOG_RETURN_UINT(0); 206 } 207 208 209 void _fmutex_dummy(_fmutex *sem) 210 { 211 LIBCLOG_ENTER("sem=%p\n", sem); 212 sem->fs = _FMS_AVAILABLE; 213 sem->hev = 0; 214 LIBCLOG_RETURN_VOID(); 215 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/fmutex2.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 5 5 #include <sys/builtin.h> 6 6 #include <sys/fmutex.h> 7 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_MUTEX 8 #include <InnoTekLIBC/logstrict.h> 7 9 8 10 /* These functions call abort() and therefore must not be linked in 9 11 when building emx.dll. */ 10 12 11 void _fmutex_checked_close 13 void _fmutex_checked_close(_fmutex *sem) 12 14 { 13 if (_fmutex_close (sem) != 0) 14 abort (); 15 LIBCLOG_ENTER("sem=%p\n", sem); 16 if (_fmutex_close(sem) != 0) 17 { 18 LIBC_ASSERT_FAILED(); 19 abort(); 20 } 21 LIBCLOG_RETURN_VOID(); 15 22 } 16 23 17 24 18 void _fmutex_checked_create 25 void _fmutex_checked_create(_fmutex *sem, unsigned flags) 19 26 { 20 if (_fmutex_create (sem, flags) != 0) 21 abort (); 27 LIBCLOG_ENTER("sem=%p flags=%#x\n", sem, flags); 28 if (_fmutex_create(sem, flags) != 0) 29 { 30 LIBC_ASSERT_FAILED(); 31 abort(); 32 } 33 LIBCLOG_RETURN_VOID(); 22 34 } 23 35 24 36 25 void _fmutex_checked_open 37 void _fmutex_checked_open(_fmutex *sem) 26 38 { 27 if (_fmutex_open (sem) != 0) 28 abort (); 39 LIBCLOG_ENTER("sem=%p\n", sem); 40 if (_fmutex_open(sem) != 0) 41 { 42 LIBC_ASSERT_FAILED(); 43 abort(); 44 } 45 LIBCLOG_RETURN_VOID(); 29 46 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/fork.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1288 r1289 4 4 #include <process.h> 5 5 #include <emx/syscalls.h> 6 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 7 #include <InnoTekLIBC/logstrict.h> 6 8 7 extern void _rmutex_fork 9 extern void _rmutex_fork(void); 8 10 9 int _STD(fork) 11 int _STD(fork)(void) 10 12 { 11 int pid; 12 13 pid = __fork (); 14 if (pid == 0) 15 _rmutex_fork (); 16 return pid; 13 LIBCLOG_ENTER("\n"); 14 int pid = __fork(); 15 if (pid == 0) 16 _rmutex_fork(); 17 LIBCLOG_RETURN_INT(pid); 17 18 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/rmutex.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 9 9 #include <sys/fmutex.h> 10 10 #include <sys/rmutex.h> 11 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_MUTEX 12 #include <InnoTekLIBC/logstrict.h> 11 13 12 14 /* These functions are available even in single-thread libraries. */ 13 14 15 15 16 static _rmutex *_rmutex_head; /* Initialized to NULL */ 16 17 static _rmutex *_rmutex_tail; /* Initialized to NULL */ 17 18 18 static void _rmutex_add (_rmutex *sem) 19 { 20 sem->prev = NULL; 21 if (_rmutex_head == NULL) 22 _rmutex_tail = sem; 23 else 24 _rmutex_head->prev = sem; 25 sem->next = _rmutex_head; 26 _rmutex_head = sem; 27 } 28 29 30 static void _rmutex_remove (_rmutex *sem) 31 { 32 if (sem->prev == NULL) 33 _rmutex_head = sem->next; 34 else 35 sem->prev->next = sem->next; 36 if (sem->next == NULL) 37 _rmutex_tail = sem->prev; 38 else 39 sem->next->prev = sem->prev; 40 } 41 42 43 unsigned _rmutex_create (_rmutex *sem, unsigned flags) 44 { 45 unsigned rc; 46 47 rc = _fmutex_create (&sem->fm, flags); 48 if (rc == 0) 19 static void _rmutex_add(_rmutex *sem) 20 { 21 sem->prev = NULL; 22 if (_rmutex_head == NULL) 23 _rmutex_tail = sem; 24 else 25 _rmutex_head->prev = sem; 26 sem->next = _rmutex_head; 27 _rmutex_head = sem; 28 } 29 30 31 static void _rmutex_remove(_rmutex *sem) 32 { 33 if (sem->prev == NULL) 34 _rmutex_head = sem->next; 35 else 36 sem->prev->next = sem->next; 37 if (sem->next == NULL) 38 _rmutex_tail = sem->prev; 39 else 40 sem->next->prev = sem->prev; 41 } 42 43 44 unsigned _rmutex_create(_rmutex *sem, unsigned flags) 45 { 46 LIBCLOG_ENTER("sem=%p flags=%#x\n", sem, flags); 47 unsigned rc; 48 49 rc = _fmutex_create (&sem->fm, flags); 50 if (rc == 0) 49 51 { 50 52 #if !defined (NDEBUG) 51 _rmutex *p; 52 for (p = _rmutex_head; p != NULL; p = p->next) 53 if (sem == p) 54 abort (); 53 _rmutex *p; 54 for (p = _rmutex_head; p != NULL; p = p->next) 55 if (sem == p) 56 { 57 LIBC_ASSERT_FAILED(); 58 abort(); 59 } 55 60 #endif 56 sem->count = 1; 57 sem->flags = (unsigned char)flags; 58 if (flags & _FMC_SHARED) 59 { 60 /* Shared _rmutex semaphores cannot be registered -- that 61 would mess up the doubly-linked list. */ 62 63 sem->next = NULL; 64 sem->prev = NULL; 65 } 66 else 67 _rmutex_add (sem); 68 } 69 return rc; 70 } 71 72 73 unsigned _rmutex_open (_rmutex *sem) 74 { 75 unsigned rc; 76 77 rc = _fmutex_open (&sem->fm); 78 if (rc == 0) 61 sem->count = 1; 62 sem->flags = (unsigned char)flags; 63 if (flags & _FMC_SHARED) 64 { 65 /* Shared _rmutex semaphores cannot be registered -- that 66 would mess up the doubly-linked list. */ 67 68 sem->next = NULL; 69 sem->prev = NULL; 70 } 71 else 72 _rmutex_add(sem); 73 } 74 LIBCLOG_RETURN_UINT(rc); 75 } 76 77 78 unsigned _rmutex_open(_rmutex *sem) 79 { 80 LIBCLOG_ENTER("sem=%p\n", sem); 81 unsigned rc; 82 83 rc = _fmutex_open(&sem->fm); 84 if (rc == 0) 79 85 { 80 86 #if !defined (NDEBUG) 81 _rmutex *p; 82 for (p = _rmutex_head; p != NULL; p = p->next) 83 if (sem == p) 84 break; 85 if (p == NULL) 86 abort (); 87 _rmutex *p; 88 for (p = _rmutex_head; p != NULL; p = p->next) 89 if (sem == p) 90 break; 91 if (p == NULL) 92 { 93 LIBC_ASSERT_FAILED(); 94 abort(); 95 } 87 96 #endif 88 if (sem->count == USHRT_MAX) 89 abort (); 90 sem->count += 1; 91 } 92 return rc; 93 } 94 95 96 unsigned _rmutex_close (_rmutex *sem) 97 { 98 unsigned rc; 99 100 rc = _fmutex_close (&sem->fm); 101 102 /* If it can't be closed, it probably wasn't created or opened. 103 Avoid messing up the doubly-linked list. Shared semaphores 104 haven't been added to the list. */ 105 106 if (rc == 0 && !(sem->flags & _FMC_SHARED)) 107 { 108 if (sem->count == 0) 109 abort (); 110 sem->count -= 1; 111 if (sem->count == 0) 112 _rmutex_remove (sem); 113 } 114 return rc; 115 } 116 117 118 void _rmutex_dummy (_rmutex *sem) 119 { 120 sem->prev = NULL; 121 sem->next = NULL; 122 sem->flags = 0; 123 sem->count = 0; 124 _fmutex_dummy (&sem->fm); 125 } 126 127 128 void _rmutex_checked_close (_rmutex *sem) 129 { 130 if (_rmutex_close (sem) != 0) 131 abort (); 132 } 133 134 135 void _rmutex_checked_create (_rmutex *sem, unsigned flags) 136 { 137 if (_rmutex_create (sem, flags) != 0) 138 abort (); 139 } 140 141 142 void _rmutex_checked_open (_rmutex *sem) 143 { 144 if (_rmutex_open (sem) != 0) 145 abort (); 146 } 147 148 149 void _rmutex_fork (void); 150 void _rmutex_fork (void) 151 { 152 _rmutex *p; 153 unsigned i; 154 155 for (p = _rmutex_head; p != NULL; p = p->next) 156 { 157 if (p->flags & _FMC_SHARED) 158 _fmutex_checked_open (&p->fm); 159 else 160 _fmutex_checked_create (&p->fm, p->flags); 161 162 /* This is important for the _rmutex semaphores of heaps! */ 163 164 for (i = 1; i < p->count; ++i) 165 _fmutex_checked_open (&p->fm); 166 167 /* Even if the semaphore was owned by the parent process, it's 168 available now in the child process. This might cause 169 problems due to inconsistent data structures -- resolving 170 this problem (by making sure that all _rmutex semaphores are 171 available when calling fork()) is left to the application. */ 172 } 173 } 97 if (sem->count == USHRT_MAX) 98 { 99 LIBC_ASSERT_FAILED(); 100 abort(); 101 } 102 sem->count += 1; 103 } 104 LIBCLOG_RETURN_UINT(rc); 105 } 106 107 108 unsigned _rmutex_close(_rmutex *sem) 109 { 110 LIBCLOG_ENTER("sem=%p\n", sem); 111 unsigned rc; 112 113 rc = _fmutex_close(&sem->fm); 114 115 /* If it can't be closed, it probably wasn't created or opened. 116 Avoid messing up the doubly-linked list. Shared semaphores 117 haven't been added to the list. */ 118 119 if (rc == 0 && !(sem->flags & _FMC_SHARED)) 120 { 121 if (sem->count == 0) 122 { 123 LIBC_ASSERT_FAILED(); 124 abort(); 125 } 126 sem->count -= 1; 127 if (sem->count == 0) 128 _rmutex_remove(sem); 129 } 130 LIBCLOG_RETURN_UINT(rc); 131 } 132 133 134 void _rmutex_dummy(_rmutex *sem) 135 { 136 LIBCLOG_ENTER("sem=%p\n", sem); 137 sem->prev = NULL; 138 sem->next = NULL; 139 sem->flags = 0; 140 sem->count = 0; 141 _fmutex_dummy(&sem->fm); 142 LIBCLOG_RETURN_VOID(); 143 } 144 145 146 void _rmutex_checked_close(_rmutex *sem) 147 { 148 LIBCLOG_ENTER("sem=%p\n", sem); 149 if (_rmutex_close(sem) != 0) 150 { 151 LIBC_ASSERT_FAILED(); 152 abort(); 153 } 154 LIBCLOG_RETURN_VOID(); 155 } 156 157 158 void _rmutex_checked_create(_rmutex *sem, unsigned flags) 159 { 160 LIBCLOG_ENTER("sem=%p flags=%d\n", sem, flags); 161 if (_rmutex_create(sem, flags) != 0) 162 { 163 LIBC_ASSERT_FAILED(); 164 abort(); 165 } 166 LIBCLOG_RETURN_VOID(); 167 } 168 169 170 void _rmutex_checked_open(_rmutex *sem) 171 { 172 LIBCLOG_ENTER("sem=%p\n", sem); 173 if (_rmutex_open(sem) != 0) 174 { 175 LIBC_ASSERT_FAILED(); 176 abort(); 177 } 178 LIBCLOG_RETURN_VOID(); 179 } 180 181 182 void _rmutex_fork(void); 183 void _rmutex_fork(void) 184 { 185 LIBCLOG_ENTER("\n"); 186 _rmutex *p; 187 unsigned i; 188 189 for (p = _rmutex_head; p != NULL; p = p->next) 190 { 191 if (p->flags & _FMC_SHARED) 192 _fmutex_checked_open(&p->fm); 193 else 194 _fmutex_checked_create(&p->fm, p->flags); 195 196 /* This is important for the _rmutex semaphores of heaps! */ 197 198 for (i = 1; i < p->count; ++i) 199 _fmutex_checked_open(&p->fm); 200 201 /* Even if the semaphore was owned by the parent process, it's 202 available now in the child process. This might cause 203 problems due to inconsistent data structures -- resolving 204 this problem (by making sure that all _rmutex semaphores are 205 available when calling fork()) is left to the application. */ 206 } 207 LIBCLOG_RETURN_VOID(); 208 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/sigaddse.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 4 4 #include <signal.h> 5 5 #include <errno.h> 6 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SIGNAL 7 #include <InnoTekLIBC/logstrict.h> 6 8 7 9 int _STD(sigaddset) (sigset_t *set, int sig) 8 10 { 9 if (sig < 1 || sig >= NSIG) 11 LIBCLOG_ENTER("set=%p sig=%d\n", set, sig); 12 int rc; 13 if (sig < 1 || sig >= NSIG) 10 14 { 11 errno = EINVAL; 12 return -1; 15 LIBC_ASSERTM_FAILED("invalid signal number %d\n", sig); 16 errno = EINVAL; 17 LIBCLOG_RETURN_INT(-1); 13 18 } 14 return __sigaddset (set, sig); 19 rc = __sigaddset(set, sig); 20 LIBCLOG_RETURN_INT(rc); 15 21 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/sigdelse.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 4 4 #include <signal.h> 5 5 #include <errno.h> 6 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SIGNAL 7 #include <InnoTekLIBC/logstrict.h> 6 8 7 int _STD(sigdelset) 9 int _STD(sigdelset)(sigset_t *set, int sig) 8 10 { 9 if (sig < 1 || sig >= NSIG) 11 LIBCLOG_ENTER("set=%p sig=%d\n", set, sig); 12 int rc; 13 if (sig < 1 || sig >= NSIG) 10 14 { 11 errno = EINVAL; 12 return -1; 15 LIBC_ASSERTM_FAILED("invalid signal number %d\n", sig); 16 errno = EINVAL; 17 LIBCLOG_RETURN_INT(-1); 13 18 } 14 return __sigdelset (set, sig); 19 rc = __sigdelset(set, sig); 20 LIBCLOG_RETURN_INT(rc); 15 21 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/sigempty.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 3 3 #include "libc-alias.h" 4 4 #include <signal.h> 5 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SIGNAL 6 #include <InnoTekLIBC/logstrict.h> 5 7 6 int _STD(sigemptyset) 8 int _STD(sigemptyset)(sigset_t *set) 7 9 { 8 return __sigemptyset (set); 10 LIBCLOG_ENTER("set=%p\n", set); 11 int rc = __sigemptyset(set); 12 LIBCLOG_RETURN_INT(rc); 9 13 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/sigfills.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 3 3 #include "libc-alias.h" 4 4 #include <signal.h> 5 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SIGNAL 6 #include <InnoTekLIBC/logstrict.h> 5 7 6 int _STD(sigfillset) 8 int _STD(sigfillset)(sigset_t *set) 7 9 { 8 return __sigfillset (set); 10 LIBCLOG_ENTER("set=%p\n", set); 11 int rc = __sigfillset(set); 12 LIBCLOG_RETURN_INT(rc); 9 13 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/sigismem.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 4 4 #include <signal.h> 5 5 #include <errno.h> 6 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SIGNAL 7 #include <InnoTekLIBC/logstrict.h> 6 8 7 int _STD(sigismember) 9 int _STD(sigismember)(const sigset_t *set, int sig) 8 10 { 9 if (sig < 1 || sig >= NSIG) 11 LIBCLOG_ENTER("set=%p sig=%d\n", set, sig); 12 int rc; 13 if (sig < 1 || sig >= NSIG) 10 14 { 11 errno = EINVAL; 12 return -1; 15 LIBC_ASSERTM_FAILED("invalid signal number %d\n", sig); 16 errno = EINVAL; 17 LIBCLOG_RETURN_INT(-1); 13 18 } 14 return __sigismember (set, sig); 19 rc = __sigismember(set, sig); 20 LIBCLOG_RETURN_INT(rc); 15 21 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/smutex.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 7 7 #include <sys/builtin.h> 8 8 #include <sys/smutex.h> 9 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_MUTEX 10 #include <InnoTekLIBC/logstrict.h> 9 11 10 12 11 void __smutex_request_internal 13 void __smutex_request_internal(volatile _smutex *sem) 12 14 { 13 FS_VAR(); 14 FS_SAVE_LOAD(); 15 do 15 LIBCLOG_ENTER("sem=%p\n", sem); 16 FS_VAR(); 17 FS_SAVE_LOAD(); 18 do 16 19 { 17 DosSleep (1); 18 } while (__cxchg (sem, 1) != 0); 19 FS_RESTORE(); 20 DosSleep(1); 21 } while (__cxchg(sem, 1) != 0); 22 FS_RESTORE(); 23 LIBCLOG_RETURN_VOID(); 20 24 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/spawnl.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.6
to1.7
r1288 r1289 5 5 #include <stdarg.h> 6 6 #include <process.h> 7 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 8 #include <InnoTekLIBC/logstrict.h> 7 9 8 int _STD(spawnl) 10 int _STD(spawnl)(int mode, const char *name, const char *arg0, ...) 9 11 { 10 int result; 11 12 /* Note: Passing `&arg0' to spawnv() is not portable. */ 13 14 result = spawnv (mode, name, (char * const *)&arg0); 15 return result; 12 LIBCLOG_ENTER("mode=%#x name=%s arg0=%s ...\n", mode, name, arg0); 13 /* Note: Passing `&arg0' to spawnv() is not portable. */ 14 int rc = spawnv (mode, name, (char * const *)&arg0); 15 LIBCLOG_RETURN_INT(rc); 16 16 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/spawnle.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.6
to1.7
r1288 r1289 5 5 #include <stdarg.h> 6 6 #include <process.h> 7 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 8 #include <InnoTekLIBC/logstrict.h> 7 9 8 int _STD(spawnle) 10 int _STD(spawnle)(int mode, const char *name, const char *arg0, ...) 9 11 { 10 va_list arg_ptr; 11 char * const *env_ptr; 12 int result; 12 LIBCLOG_ENTER("mode=%#x name=%s arg0=%s ...\n", mode, name, arg0); 13 va_list arg_ptr; 14 char * const *env_ptr; 15 int rc; 13 16 14 va_start(arg_ptr, arg0);15 while (va_arg(arg_ptr, char *) != NULL)16 /* do nothing */;17 env_ptr = va_arg(arg_ptr, char * const *);18 va_end(arg_ptr);17 va_start(arg_ptr, arg0); 18 while (va_arg(arg_ptr, char *) != NULL) 19 /* do nothing */; 20 env_ptr = va_arg(arg_ptr, char * const *); 21 va_end(arg_ptr); 19 22 20 /* Note: Passing `&arg0' to spawnve() is not portable. */ 21 22 result = spawnve (mode, name, (char * const *)&arg0, env_ptr); 23 return result; 23 /* Note: Passing `&arg0' to spawnve() is not portable. */ 24 rc = spawnve(mode, name, (char * const *)&arg0, env_ptr); 25 LIBCLOG_RETURN_INT(rc); 24 26 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/spawnlp.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.6
to1.7
r1288 r1289 5 5 #include <stdarg.h> 6 6 #include <process.h> 7 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 8 #include <InnoTekLIBC/logstrict.h> 7 9 8 int _STD(spawnlp) 10 int _STD(spawnlp)(int mode, const char *name, const char *arg0, ...) 9 11 { 10 int result; 11 12 /* Note: Passing `&arg0' to spawnvp() is not portable. */ 13 14 result = spawnvp (mode, name, (char * const *)&arg0); 15 return result; 12 LIBCLOG_ENTER("mode=%#x name=%s arg0=%s ...\n", mode, name, arg0); 13 /* Note: Passing `&arg0' to spawnvp() is not portable. */ 14 int rc = spawnvp(mode, name, (char * const *)&arg0); 15 LIBCLOG_RETURN_INT(rc); 16 16 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/spawnlpe.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.7
to1.8
r1288 r1289 5 5 #include <stdarg.h> 6 6 #include <process.h> 7 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 8 #include <InnoTekLIBC/logstrict.h> 7 9 8 int _STD(spawnlpe) 10 int _STD(spawnlpe)(int mode, const char *name, const char *arg0, ...) 9 11 { 10 va_list arg_ptr; 11 char * const *env_ptr; 12 int result; 12 LIBCLOG_ENTER("mode=%#x name=%s arg0=%s ...\n", mode, name, arg0); 13 va_list arg_ptr; 14 char * const *env_ptr; 15 int rc; 13 16 14 va_start(arg_ptr, arg0);15 while (va_arg(arg_ptr, char *) != NULL)16 /* do nothing */;17 env_ptr = va_arg(arg_ptr, char * const *);18 va_end(arg_ptr);17 va_start(arg_ptr, arg0); 18 while (va_arg(arg_ptr, char *) != NULL) 19 /* do nothing */; 20 env_ptr = va_arg(arg_ptr, char * const *); 21 va_end(arg_ptr); 19 22 20 /* Note: Passing `&arg0' to spawnvpe() is not portable. */23 /* Note: Passing `&arg0' to spawnvpe() is not portable. */ 21 24 22 result = spawnvpe(mode, name, (char * const *)&arg0, env_ptr);23 return result;25 rc = spawnvpe(mode, name, (char * const *)&arg0, env_ptr); 26 LIBCLOG_RETURN_INT(rc); 24 27 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/spawnv.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 4 4 #include <stddef.h> 5 5 #include <process.h> 6 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 7 #include <InnoTekLIBC/logstrict.h> 6 8 7 int _STD(spawnv) 9 int _STD(spawnv)(int mode, const char *name, char * const argv[]) 8 10 { 9 return spawnve (mode, name, argv, NULL); 11 LIBCLOG_ENTER("mode=%#x name=%s arg=%p\n", mode, name, argv); 12 int rc = spawnve (mode, name, argv, NULL); 13 LIBCLOG_RETURN_INT(rc); 10 14 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/spawnve.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 7 7 #include <errno.h> 8 8 #include <alloca.h> 9 #include <sys/syslimits.h> 9 10 #include <emx/startup.h> 10 11 #include <emx/syscalls.h> 12 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 13 #include <InnoTekLIBC/logstrict.h> 11 14 12 int _STD(spawnve) (int mode, const char *name, char * const argv[], 13 char * const envp[]) 15 int _STD(spawnve)(int mode, const char *name, char * const argv[], char * const envp[]) 14 16 { 15 struct _new_proc np; 16 int i, size, n; 17 const char * const *p; 18 char *d; 19 char exe[512]; 17 LIBCLOG_ENTER("mode=%#x name=%s argv=%p envp=%p\n", mode, name, argv, envp); 18 struct _new_proc np; 19 int i, size, n, rc; 20 const char * const *p; 21 char *d; 22 char exe[PATH_MAX]; 20 23 21 /* Kludge alert: Unfortunately, the `mode' member was made only 16 22 bits wide originally. Bit 15 is used to indicate that the 23 `mode2' member is used, which holds the upper 16 bits of MODE. 24 This allows using emx 0.8 applications with emx 0.9 as emx 25 doesn't look at `mode2' unless bit 15 of `mode' is set. Of 26 course, this fails if an (old) application program sets bit 15 of 27 MODE. */ 24 /* 25 * Init the syscall struct np. 26 */ 27 /* mode */ 28 np.mode = mode; 29 /* exe name */ 30 if (strlen(name) >= sizeof(exe) - 4) 31 { 32 LIBC_ASSERTM_FAILED("name is too long, %d bytes: %s\n", strlen(name), name); 33 errno = ENAMETOOLONG; 34 LIBCLOG_RETURN_INT(-1); 35 } 36 strcpy(exe, name); 37 _defext(exe, "exe"); 38 LIBCLOG_MSG("exe=%s\n", exe); 39 np.fname_off = (unsigned long)exe; 28 40 29 np.mode = (unsigned short)(mode | 0x8000); 30 np.mode2 = (unsigned short)((unsigned)mode >> 16); 41 /* calc environment size */ 42 if (envp == NULL) 43 envp = environ; 44 size = 1; n = 0; 45 for (p = (const char * const *)envp; *p != NULL; ++p) 46 { 47 ++n; 48 size += 1 + strlen(*p); 49 } 50 d = alloca(size); 51 LIBCLOG_MSG("environment: %d bytes %d entries block=%p\n", size, n, d); 52 np.env_count = n; np.env_size = size; 53 np.env_off = (unsigned long)d; 31 54 32 if (envp == NULL) envp = environ;33 if (strlen (name) >= sizeof (exe) - 4)55 /* copy environment */ 56 for (p = (const char * const *)envp; *p != NULL; ++p) 34 57 { 35 errno = ENAMETOOLONG; 36 return -1; 58 i = strlen(*p); 59 memcpy(d, *p, i + 1); 60 d += i + 1; 37 61 } 38 strcpy (exe, name);39 _defext (exe, "exe"); 40 np.fname_off = (unsigned long)exe;41 size = 1; n = 0;42 for (p = (const char * const *)envp; *p != NULL; ++p)62 *d = 0; 63 64 /* calc argument size */ 65 size = 0; n = 0; 66 for (p = (const char * const *)argv; *p != NULL; ++p) 43 67 { 44 ++n; size += 1 + strlen (*p); 68 ++n; 69 size += 2 + strlen(*p); 45 70 } 46 d = alloca (size); 47 np.env_count = n; np.env_size = size; 48 np.env_off = (unsigned long)d; 49 for (p = (const char * const *)envp; *p != NULL; ++p) 71 d = alloca(size); 72 LIBCLOG_MSG("arguments: %d bytes %d entries block=%p\n", size, n, d); 73 np.arg_count = n; np.arg_size = size; 74 np.arg_off = (unsigned long)d; 75 76 /* copy arguments */ 77 for (p = (const char * const *)argv; *p != NULL; ++p) 50 78 { 51 i = strlen (*p); 52 memcpy (d, *p, i+1); 53 d += i+1; 79 i = strlen(*p); 80 *(unsigned char *)d++ = _ARG_NONZERO; 81 memcpy(d, *p, i + 1); 82 d += i + 1; 54 83 } 55 *d = 0; 56 size = 0; n = 0; 57 for (p = (const char * const *)argv; *p != NULL; ++p) 58 { 59 ++n; size += 2 + strlen (*p); 60 } 61 d = alloca (size); 62 np.arg_count = n; np.arg_size = size; 63 np.arg_off = (unsigned long)d; 64 for (p = (const char * const *)argv; *p != NULL; ++p) 65 { 66 i = strlen (*p); 67 *d++ = _ARG_NONZERO; 68 memcpy (d, *p, i+1); 69 d += i+1; 70 } 71 i = __spawnve (&np); 72 return i; 84 85 /* 86 * Call syscall. 87 */ 88 rc = __spawnve(&np); 89 LIBCLOG_RETURN_INT(rc); 73 90 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/spawnvp.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 4 4 #include <stddef.h> 5 5 #include <process.h> 6 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 7 #include <InnoTekLIBC/logstrict.h> 6 8 7 9 int _STD(spawnvp) (int mode, const char *name, char * const argv[]) 8 10 { 9 return spawnvpe (mode, name, argv, NULL); 11 LIBCLOG_ENTER("mode=%#x name=%s argv=%p\n", mode, name, argv); 12 int rc = spawnvpe (mode, name, argv, NULL); 13 LIBCLOG_RETURN_INT(rc); 10 14 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/spawnvpe.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 6 6 #include <string.h> 7 7 #include <errno.h> 8 #include <sys/syslimits.h> 9 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 10 #include <InnoTekLIBC/logstrict.h> 8 11 9 int _STD(spawnvpe) (int mode, const char *name, char * const argv[], 10 char * const envp[]) 12 int _STD(spawnvpe)(int mode, const char *name, char * const argv[], char * const envp[]) 11 13 { 12 char exe[512]; 13 char path[512]; 14 LIBCLOG_ENTER("mode=%#x name=%s argv=%p envp=%p\n", mode, name, argv, envp); 15 char exe[PATH_MAX]; 16 char path[PATH_MAX]; 17 int rc; 14 18 15 if (strlen (name) >= sizeof(exe) - 4)19 if (strlen(name) >= sizeof(exe) - 4) 16 20 { 17 errno = ENAMETOOLONG; 18 return -1; 21 LIBC_ASSERTM_FAILED("name is too long, %d bytes: %s\n", strlen(name), name); 22 errno = ENAMETOOLONG; 23 LIBCLOG_RETURN_INT(-1); 19 24 } 20 strcpy (exe, name); 21 _defext (exe, "exe"); 22 if (_path (path, exe) != 0) 23 return -1; 24 return spawnve (mode, path, argv, envp); 25 strcpy(exe, name); 26 _defext(exe, "exe"); 27 if (!_path(path, exe)) 28 LIBCLOG_RETURN_INT(-1); 29 rc = spawnve(mode, path, argv, envp); 30 LIBCLOG_RETURN_INT(rc); 25 31 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/system.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 7 7 #include <io.h> 8 8 #include <errno.h> 9 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 10 #include <InnoTekLIBC/logstrict.h> 9 11 10 int _STD(system) 12 int _STD(system)(const char *name) 11 13 { 12 int rc; 13 const char *sh, *base, *opt; 14 LIBCLOG_ENTER("name=%s\n", name); 15 int rc; 16 const char *sh, *base, *opt; 14 17 15 sh = getenv("EMXSHELL");16 if (sh == NULL)17 sh = getenv("COMSPEC");18 if (sh == NULL)18 sh = getenv("EMXSHELL"); 19 if (sh == NULL) 20 sh = getenv("COMSPEC"); 21 if (sh == NULL) 19 22 { 20 errno = ENOENT;21 return -1;23 errno = ENOENT; 24 LIBCLOG_RETURN_INT(-1); 22 25 } 23 if (name == NULL) /* Check for command interpreter */ 24 return access (sh, 0) == 0; 25 if (*name == 0) 26 rc = spawnlp (P_WAIT, sh, sh, (char *)0); 27 else 26 LIBCLOG_MSG("using shell: %s\n", sh); 27 if (name == NULL) /* Check for command interpreter */ 28 28 { 29 base = _getname (sh); 30 if (stricmp (base, "cmd.exe") == 0 31 || stricmp (base, "4os2.exe") == 0 32 || stricmp (base, "command.com") == 0 33 || stricmp (base, "4dos.com") == 0) 34 opt = "/c"; 35 else 36 opt = "-c"; 37 rc = spawnlp (P_WAIT, sh, sh, opt, name, (char *)0); 29 LIBCLOG_MSG("check shell access\n"); 30 rc = access(sh, 0) == 0; 31 LIBCLOG_RETURN_INT(rc); 38 32 } 39 return rc; 33 if (*name == 0) 34 rc = spawnlp(P_WAIT, sh, sh, (char *)0); 35 else 36 { 37 base = _getname(sh); 38 if (stricmp(base, "cmd.exe") == 0 39 || stricmp(base, "4os2.exe") == 0 40 || stricmp(base, "command.com") == 0 41 || stricmp(base, "4dos.com") == 0) 42 opt = "/c"; 43 else 44 opt = "-c"; 45 rc = spawnlp(P_WAIT, sh, sh, opt, name, (char *)0); 46 } 47 LIBCLOG_RETURN_INT(rc); 40 48 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/thread_internals.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.2
r1288 r1289 36 36 #include <InnoTekLIBC/thread.h> 37 37 #include <InnoTekLIBC/backend.h> 38 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_THREAD 39 #include <InnoTekLIBC/logstrict.h> 38 40 39 41 … … 62 64 __LIBC_PTHREAD __libc_threadCurrentSlow(void) 63 65 { 66 LIBCLOG_ENTER("\n"); 64 67 if (!*__libc_gpTLS) 65 68 { … … 83 86 84 87 *__libc_gpTLS = pThrd; 88 LIBCLOG_MSG("Created thread block %p\n", pThrd); 85 89 } 86 90 87 return *__libc_gpTLS;91 LIBCLOG_RETURN_P(*__libc_gpTLS); 88 92 } 89 93 … … 91 95 __LIBC_PTHREAD __libc_threadAlloc(void) 92 96 { 97 LIBCLOG_ENTER("\n"); 93 98 /* 94 99 * No need to use the pre allocated here since the current thread will … … 98 103 if (pThrd) 99 104 threadInit(pThrd); 100 return pThrd;105 LIBCLOG_RETURN_P(pThrd); 101 106 } 102 107 … … 104 109 void __libc_threadFree(__LIBC_PTHREAD pThrd) 105 110 { 111 LIBCLOG_ENTER("pThrd=%p\n", pThrd); 106 112 /* 107 113 * Clean up members. … … 116 122 else 117 123 __lxchg(&gfPreAllocThrd, 0); 124 LIBCLOG_RETURN_VOID(); 118 125 } 119 126 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/threadst.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 4 4 #include <stdlib.h> 5 5 #include <InnoTekLIBC/thread.h> 6 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_THREAD 7 #include <InnoTekLIBC/logstrict.h> 6 8 7 9 /** 8 10 * @obsolete 9 11 */ 10 void **_threadstore 12 void **_threadstore(void) 11 13 { 12 return &__libc_threadCurrent()->pvThreadStoreVar; 14 LIBCLOG_ENTER("\n"); 15 void **ppv = &__libc_threadCurrent()->pvThreadStoreVar; 16 LIBCLOG_RETURN_P(ppv); 13 17 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/wait.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 6 6 #include <errno.h> 7 7 #include <emx/syscalls.h> 8 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 9 #include <InnoTekLIBC/logstrict.h> 8 10 9 int _STD(wait) 11 int _STD(wait)(int *status) 10 12 { 11 int dummy; 13 LIBCLOG_ENTER("status=%p\n", status); 14 int dummy; 15 int rc; 12 16 13 if (status == NULL) 14 status = &dummy; 15 return __wait (status); 17 if (status == NULL) 18 status = &dummy; 19 rc = __wait(status); 20 LIBCLOG_RETURN_MSG(rc,"ret %d (%#x). *status=%#x\n", rc, rc, *status); 16 21 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/process/waitpid.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 1 1 /* waitpid.c (emx+gcc) -- Copyright (c) 1993-1996 by Eberhard Mattes */ 2 2 3 3 4 #include "libc-alias.h" … … 6 7 #include <errno.h> 7 8 #include <emx/syscalls.h> 9 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 10 #include <InnoTekLIBC/logstrict.h> 8 11 9 int _STD(waitpid) 12 int _STD(waitpid)(int pid, int *status, int options) 10 13 { 11 int dummy; 14 LIBCLOG_ENTER("pid=%d status=%p options=%#x\n", pid, status, options); 15 int dummy; 16 int rc; 12 17 13 if (status == NULL) 14 status = &dummy; 15 return __waitpid (pid, status, options); 18 if (status == NULL) 19 status = &dummy; 20 rc = __waitpid(pid, status, options); 21 LIBCLOG_RETURN_MSG(rc,"ret %d (%#x). *status=%#x\n", rc, rc, *status); 16 22 } -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/startup/exit.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1288 r1289 1 1 /* exit.c (emx+gcc) -- Copyright (c) 1990-1998 by Eberhard Mattes */ 2 2 3 3 4 #include "libc-alias.h" 4 5 #include <stdlib.h> 5 6 #include <emx/startup.h> 6 #include <emx/libclog.h> 7 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_INITTERM 8 #include <InnotekLIBC/logstrict.h> 7 9 8 10 void (*_atexit_v[64])(void); -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/startup/startup.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.10
to1.11
r1288 r1289 9 9 #include <emx/syscalls.h> 10 10 #include <emx/startup.h> 11 #include <emx/libclog.h> 11 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_INITTERM 12 #include <InnoTekLIBC/logstrict.h> 12 13 13 14 extern int __crtinit1__; -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/sys/__spawnve.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1288 r1289 46 46 47 47 mode = np->mode; 48 if (np->mode & 0x8000)49 mode |= np->mode2 << 16;50 51 48 switch (mode & 0xff) 52 49 { -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/lib/sys/usleep.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.2
r1288 r1289 26 26 */ 27 27 28 29 28 /******************************************************************************* 30 29 * Header Files * … … 33 32 #include <unistd.h> 34 33 #include <errno.h> 34 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_PROCESS 35 #include <InnoTekLIBC/logstrict.h> 36 35 37 #define INCL_BASE 36 38 #define INCL_FSMACROS 37 39 #include <os2.h> 38 #include <emx/libclog.h>39 40 40 41 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/_getsockhandle.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/socket.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/_impsockhandle.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 34 34 #include <sys/fcntl.h> 35 35 #include <emx/io.h> 36 #include <emx/libclog.h> 36 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 37 #include <InnoTekLIBC/logstrict.h> 37 38 #include "socket.h" 38 39 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/accept.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/bind.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/bsdselect.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 34 34 #include <sys/time.h> 35 35 #include <emx/io.h> 36 #include <emx/libclog.h> 36 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 37 #include <InnoTekLIBC/logstrict.h> 37 38 #include "socket.h" 38 39 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/connect.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/getpeername.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/getsockname.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/getsockopt.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/herror.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 9 9 #include <sys/types.h> 10 10 #include <netdb.h> 11 #include <emx/libclog.h> 11 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 12 #include <InnoTekLIBC/logstrict.h> 12 13 13 14 extern int h_errno; -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/listen.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/os2_ioctl.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 34 34 #include <sys/fcntl.h> 35 35 #include <emx/io.h> 36 #include <emx/libclog.h> 36 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 37 #include <InnoTekLIBC/logstrict.h> 37 38 #include "socket.h" 38 39 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/os2_select.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/recv.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/recvfrom.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/recvmsg.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/send.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/sendmsg.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/sendto.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/setsockopt.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/shutdown.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/so_cancel.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/so_ioctl.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 35 35 #include <sys/ioccom.h> 36 36 #include <emx/io.h> 37 #include <emx/libclog.h> 37 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 38 #include <InnoTekLIBC/logstrict.h> 38 39 #include "socket.h" 39 40 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/so_readv.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/so_writev.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/soabort.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/sock_errno.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 18 18 #include <sys/fcntl.h> 19 19 #include <emx/io.h> 20 #include <emx/libclog.h> 20 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 21 #include <InnoTekLIBC/logstrict.h> 21 22 #include "socket.h" 22 23 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/socket.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/socketops.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 50 50 #include <sys/filio.h> 51 51 #include <emx/io.h> 52 #include <emx/libclog.h> 52 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 53 #include <InnoTekLIBC/logstrict.h> 53 54 #include "socket.h" 54 55 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/socketpair.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1288 r1289 28 28 #include <sys/fcntl.h> 29 29 #include <emx/io.h> 30 #include <emx/libclog.h> 30 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 31 #include <InnoTekLIBC/logstrict.h> 31 32 #include "socket.h" 32 33 -
Property cvs2svn:cvs-rev
changed from
-
TabularUnified trunk/src/emx/src/libsocket/soclose.c ¶
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r1288 r1289 33 33 #include <sys/fcntl.h> 34 34 #include <emx/io.h> 35 #include <emx/libclog.h> 35 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_SOCKET 36 #include <InnoTekLIBC/logstrict.h> 36 37 #include "socket.h" 37 38 -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.