Changeset 1661
- Timestamp:
- Nov 22, 2004, 2:46:26 AM (21 years ago)
- Location:
- trunk/src/emx
- Files:
-
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/emx/include/emx/io.h
-
Property cvs2svn:cvs-rev
changed from
1.11
to1.12
r1660 r1661 207 207 208 208 #define STREAM_LOCK(f) \ 209 (_fmutex_request(&(f)->__u.__fsem, _FMR_IGNINT) != 0 \ 210 ? abort () : (void)0) 209 ((f)->__uVersion != _FILE_STDIO_VERSION ? __stream_abort (f, "version error") \ 210 : _fmutex_request(&(f)->__u.__fsem, _FMR_IGNINT) != 0 \ 211 ? __stream_abort (f, "fmutex request") : 0) 211 212 212 213 #define STREAM_UNLOCK(f) \ 213 (_fmutex_release(&(f)->__u.__fsem) != 0 ? abort() : (void)0)214 (_fmutex_release(&(f)->__u.__fsem) != 0 ? __stream_abort (f, "fmutex release") : (void)0) 214 215 215 216 #define STREAM_LOCK_NOWAIT(f) \ 216 (_fmutex_request(&(f)->__u.__fsem, _FMR_NOWAIT) == 0) 217 218 #define STREAM_UNLOCKED(f) _fmutex_available(&(f)->__u.__fsem) 217 (((f)->__uVersion == _FILE_STDIO_VERSION || __stream_abort (f, "version error")) && _fmutex_request(&(f)->__u.__fsem, _FMR_NOWAIT) == 0) 218 219 #define STREAM_UNLOCKED(f) ((f)->__uVersion == _FILE_STDIO_VERSION && _fmutex_available(&(f)->__u.__fsem)) 220 221 int __stream_abort(struct _FILE *f, const char *pszMsg); 219 222 220 223 #endif /* defined (_SYS_FMUTEX_H) */ -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/include/os2emx.h
-
Property cvs2svn:cvs-rev
changed from
1.24
to1.25
r1660 r1661 13308 13308 #define FS_SAVE() __asm__ __volatile__ ("movl %%fs, %%eax; movl %%eax,%0;" : : "m" (__fs__) : "%eax" ) 13309 13309 #define FS_SAVE_LOAD() __asm__ __volatile__ ("movl %%fs, %%eax; movl %%eax,%0; movl $DosTIB, %%eax; movl %%eax, %%fs" : : "m" (__fs__) : "%eax" ) 13310 #define FS_VAR_SAVE_LOAD() FS_VAR(); FS_SAVE_LOAD() 13310 13311 #define FS_RESTORE() __asm__ __volatile__ ("movl %0, %%eax; movl %%eax,%%fs;" : : "m" (__fs__) : "%eax" ) 13311 13312 #else -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/include/stdio.h
-
Property cvs2svn:cvs-rev
changed from
1.13
to1.14
r1660 r1661 178 178 #define _FILE_T 179 179 #define _FILE_MEMBERS_HAVE_UNDERSCORE 180 struct _file2; 180 #define _FILE_STDIO_VERSION (0x06000000 | sizeof(struct _FILE)) 181 181 typedef struct _FILE 182 182 { 183 unsigned __uVersion; 183 184 char * _ptr; 184 185 char * _buffer; … … 201 202 _fmutex __fsem; 202 203 #endif 203 char __rsem_ersatz[ 8];204 char __rsem_ersatz[12]; 204 205 } __u; 205 /** Pointer to the stream vector which thi eFILE belongs to.206 /** Pointer to the stream vector which this FILE belongs to. 206 207 * This member is the first which should not be zeroed by _newstream()! */ 207 208 void *__pSV; -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/include/sys/fmutex.h
-
Property cvs2svn:cvs-rev
changed from
1.3
to1.4
r1660 r1661 6 6 7 7 #ifndef _SYS_FMUTEX_H 8 #define _SYS_FMUTEX_H8 #define _SYS_FMUTEX_H 9 9 10 #include <stdlib.h> /* need abort */ 10 #include <sys/cdefs.h> 11 #include <stdlib.h> /* need abort */ 12 #include <InnoTekLIBC/FastInfoBlocks.h> 11 13 12 #if defined (__cplusplus) 13 extern "C" { 14 #endif 14 __BEGIN_DECLS 15 15 16 16 /* Constants for _fmutex.fs. See _fmutex_available() for ordering. */ 17 17 18 #define _FMS_UNINIT 019 #define _FMS_AVAILABLE 120 #define _FMS_OWNED_SIMPLE 221 #define _FMS_OWNED_HARD 318 #define _FMS_UNINIT 0 19 #define _FMS_AVAILABLE 1 20 #define _FMS_OWNED_SIMPLE 2 21 #define _FMS_OWNED_HARD 3 22 22 23 23 /* Constants for _fmutex_create() */ 24 24 25 #define _FMC_SHARED 0x01 25 #define _FMC_SHARED 0x01 26 #define _FMC_MUST_COMPLETE 0x02 27 #define _FMC_DUMMY 0x04 /* internal */ 26 28 27 29 /* Constants for _fmutex_request() */ 28 30 29 #define _FMR_IGNINT 0x0130 #define _FMR_NOWAIT 0x0231 #define _FMR_IGNINT 0x01 32 #define _FMR_NOWAIT 0x02 31 33 32 34 /* We cannot use __attribute__ ((__packed__)) because G++ does not 33 35 support this. */ 34 36 35 #pragma pack(1)37 #pragma pack(1) 36 38 typedef struct 37 39 { 38 40 /** Handle to event semaphore. */ 39 unsigned long hev;41 unsigned long hev; 40 42 /** Semaphore status. */ 41 __volatile__ signed charfs;43 volatile signed char fs; 42 44 /** Semaphore create flags. (_FMC_SHARED) */ 43 unsigned char flags; 44 /** padding the struct to 8 bytes. */ 45 unsigned char padding[2]; 45 unsigned char flags; 46 /** padding the struct to 16 bytes. */ 47 unsigned char padding[2]; 48 /** The (pid << 16) | tid of the owner. */ 49 volatile unsigned Owner; 50 /** Descriptive name of the mutex. */ 51 const char *pszDesc; 46 52 } _fmutex; 47 #pragma pack() 53 #pragma pack() 54 48 55 49 56 50 57 unsigned __fmutex_request_internal (_fmutex *, unsigned, signed char); 51 unsigned __fmutex_ create_internal(_fmutex *, unsigned);58 unsigned __fmutex_request_internal_must_complete (_fmutex *, unsigned); 52 59 unsigned __fmutex_release_internal (_fmutex *); 60 unsigned __fmutex_release_internal_must_complete (_fmutex *); 53 61 54 62 55 63 static __inline__ unsigned _fmutex_request (_fmutex *sem, unsigned flags) 56 64 { 57 signed char fs; 58 59 fs = __cxchg (&sem->fs, _FMS_OWNED_SIMPLE); 60 if (fs == _FMS_AVAILABLE) 61 return 0; 62 else 63 return __fmutex_request_internal (sem, flags, fs); 65 if (!(sem->flags & _FMC_MUST_COMPLETE)) 66 { 67 signed char fs = __cxchg (&sem->fs, _FMS_OWNED_SIMPLE); 68 if (fs == _FMS_AVAILABLE) 69 { 70 __atomic_xchg(&sem->Owner, fibGetTidPid()); 71 return 0; 72 } 73 else 74 return __fmutex_request_internal (sem, flags, fs); 75 } 76 else 77 return __fmutex_request_internal_must_complete (sem, flags); 64 78 } 65 79 … … 67 81 static __inline__ unsigned _fmutex_release (_fmutex *sem) 68 82 { 69 signed char fs; 70 71 fs = __cxchg (&sem->fs, _FMS_AVAILABLE); 72 if (fs == _FMS_OWNED_HARD) 73 return __fmutex_release_internal (sem); 74 else 75 return 0; 83 if (!(sem->flags & _FMC_MUST_COMPLETE)) 84 { 85 signed char fs; 86 __atomic_xchg(&sem->Owner, 0); 87 fs = __cxchg(&sem->fs, _FMS_AVAILABLE); 88 if (fs != _FMS_OWNED_HARD) 89 return 0; 90 else 91 return __fmutex_release_internal (sem); 92 } 93 else 94 return __fmutex_release_internal_must_complete (sem); 76 95 } 77 78 96 79 97 static __inline__ int _fmutex_available (_fmutex *sem) 80 98 { 81 return sem->fs <= _FMS_AVAILABLE;99 return sem->fs <= _FMS_AVAILABLE; 82 100 } 83 101 84 102 85 103 unsigned _fmutex_create (_fmutex *, unsigned); 104 unsigned _fmutex_create2 (_fmutex *sem, unsigned, const char *); 86 105 unsigned _fmutex_open (_fmutex *); 87 106 unsigned _fmutex_close (_fmutex *); 88 107 void _fmutex_dummy (_fmutex *); 89 108 90 void _fmutex_checked_close (_fmutex *); 91 void _fmutex_checked_create (_fmutex *, unsigned); 92 void _fmutex_checked_open (_fmutex *); 109 void _fmutex_checked_close(_fmutex *); 110 void _fmutex_checked_create(_fmutex *, unsigned); 111 void _fmutex_checked_create2(_fmutex *, unsigned, const char *); 112 void _fmutex_checked_open(_fmutex *); 113 void _fmutex_abort(_fmutex *, const char *); 93 114 94 115 static __inline__ void _fmutex_checked_release (_fmutex * sem) 95 116 { 96 if (_fmutex_release (sem) != 0) 97 abort (); 117 if (sem->Owner != fibGetTidPid()) 118 _fmutex_abort(sem, "release not owner"); 119 if (_fmutex_release (sem) != 0) 120 _fmutex_abort(sem, "release"); 98 121 } 99 122 100 123 static __inline__ void _fmutex_checked_request (_fmutex * sem, unsigned flags) 101 124 { 102 if (_fmutex_request (sem, flags) != 0)103 abort ();125 if (_fmutex_request (sem, flags) != 0) 126 _fmutex_abort(sem, "request"); 104 127 } 105 128 106 #if defined (__cplusplus) 107 } 108 #endif 129 __END_DECLS 109 130 110 131 #endif /* not _SYS_FMUTEX_H */ 132 -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/app/stdio.c
-
Property cvs2svn:cvs-rev
changed from
1.10
to1.11
r1660 r1661 6 6 #include <sys/fmutex.h> 7 7 #include <stdio.h> 8 #include <string.h> 8 9 #include <stdlib.h> 9 10 #include <emx/io.h> 10 11 #include <emx/startup.h> 12 #include <emx/syscalls.h> 11 13 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_STREAM 12 14 #include <InnoTekLIBC/logstrict.h> … … 96 98 */ 97 99 gPreStreamVec.cFree--; 100 gaPreFiles[i].__uVersion = _FILE_STDIO_VERSION; 98 101 gaPreFiles[i]._flags |= _IOOPEN | _IONOCLOSEALL; 99 102 gaPreFiles[i]._handle = i; 100 103 gaPreFiles[i]._flush = _flushstream; 101 if (_fmutex_create (&gaPreFiles[i].__u.__fsem, 0) != 0)104 if (_fmutex_create2(&gaPreFiles[i].__u.__fsem, 0, "LIBC stream") != 0) 102 105 { 103 106 LIBC_ASSERTM_FAILED("_setmore failed for i=%d\n", i); … … 155 158 _CRT_INIT1(_init_streams) 156 159 _CRT_EXIT1(_exit_streams) 160 161 162 163 /** 164 * Fatal stream error. 165 * 166 * @returns 0. 167 * @param f Stream connected to the fatal error. 168 * @param pszMsg Message to print. 169 */ 170 int __stream_abort(FILE *f, const char *pszMsg) 171 { 172 static const char szMsg[] = "\r\nLIBC fatal error - streams: "; 173 __write(2, szMsg, sizeof(szMsg) - 1); 174 __write(2, pszMsg, strlen(pszMsg)); 175 if (f->__uVersion != _FILE_STDIO_VERSION) 176 { 177 static const char szMsg2[] = " (stream version mismatch (too))"; 178 __write(2, szMsg2, sizeof(szMsg2) - 1); 179 } 180 __write(2, "\r\n", 2); 181 abort(); 182 return 0; 183 } 184 -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/io/_fopen.c
-
Property cvs2svn:cvs-rev
changed from
1.7
to1.8
r1660 r1661 81 81 dst->_flags |= _IOOPEN | _IOBUFNONE; 82 82 dst->_flush = _flushstream; 83 if (_fmutex_create (&dst->__u.__fsem, 0) != 0)83 if (_fmutex_create2 (&dst->__u.__fsem, 0, "LIBC stream fopen") != 0) 84 84 { 85 85 STREAMV_LOCK; -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/io/_mfopen.c
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1660 r1661 90 90 stream->_tmpidx = inc; 91 91 stream->_ungetc_count = 0; 92 if (_fmutex_create (&stream->__u.__fsem, 0) != 0)92 if (_fmutex_create2 (&stream->__u.__fsem, 0, "LIBC stream mfopen") != 0) 93 93 { 94 94 if (abuf != NULL) free (abuf); -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/io/_newstre.c
-
Property cvs2svn:cvs-rev
changed from
1.9
to1.10
r1660 r1661 41 41 */ 42 42 bzero(&pSV->aFiles[i], offsetof(FILE, __pSV)); 43 pSV->aFiles[i].__uVersion = _FILE_STDIO_VERSION; 43 44 return &pSV->aFiles[i]; 44 45 } … … 76 77 pFile = &pSV->aFiles[0]; 77 78 pFile->_flags = _IONEW; 79 pFile->__uVersion = _FILE_STDIO_VERSION; 78 80 79 81 /* … … 103 105 void _closestream(FILE *stream) 104 106 { 105 stream->_flags = 0; 106 /* Assumption hare made about how the dummy stuff is made. */ 107 if (stream->__u.__fsem.hev) 108 _fmutex_close(&stream->__u.__fsem); 107 if (stream->__uVersion == _FILE_STDIO_VERSION) 108 { 109 stream->_flags = 0; 110 /* Assumption hare made about how the dummy stuff is made. */ 111 if (stream->__u.__fsem.hev) 112 _fmutex_close(&stream->__u.__fsem); 109 113 110 if (stream->__pSV) 111 ((struct streamvec *)stream->__pSV)->cFree++; 114 if (stream->__pSV) 115 ((struct streamvec *)stream->__pSV)->cFree++; 116 } 112 117 } -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/io/fdopen.c
-
Property cvs2svn:cvs-rev
changed from
1.8
to1.9
r1660 r1661 30 30 if (!dst) 31 31 return NULL; 32 if (_fmutex_create (&dst->__u.__fsem, 0) != 0)32 if (_fmutex_create2 (&dst->__u.__fsem, 0, "LIBC stream fdopen") != 0) 33 33 { 34 34 STREAMV_LOCK; -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/io/snprintf.c
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1660 r1661 19 19 return EOF; 20 20 va_start (arg_ptr, format); 21 trick.__uVersion = _FILE_STDIO_VERSION; 21 22 trick._buffer = buffer; 22 23 trick._ptr = buffer; -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/io/sprintf.c
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1660 r1661 17 17 18 18 va_start (arg_ptr, format); 19 trick.__uVersion = _FILE_STDIO_VERSION; 19 20 trick._buffer = buffer; 20 21 trick._ptr = buffer; -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/io/sscanf.c
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1660 r1661 18 18 19 19 va_start (arg_ptr, format); 20 trick.__uVersion = _FILE_STDIO_VERSION; 20 21 trick._buffer = (char *)buffer; /* const -> non-const */ 21 22 trick._ptr = (char *)buffer; /* const -> non-const */ -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/io/vsnprint.c
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1660 r1661 16 16 if (n > INT_MAX) 17 17 return EOF; 18 trick.__uVersion = _FILE_STDIO_VERSION; 18 19 trick._buffer = buffer; 19 20 trick._ptr = buffer; -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/io/vsprintf.c
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1660 r1661 14 14 int result; 15 15 16 trick.__uVersion = _FILE_STDIO_VERSION; 16 17 trick._buffer = buffer; 17 18 trick._ptr = buffer; -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/io/vsscanf.c
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1660 r1661 16 16 int result; 17 17 18 trick.__uVersion = _FILE_STDIO_VERSION; 18 19 trick._buffer = (char *)buffer; /* const -> non-const */ 19 20 trick._ptr = (char *)buffer; /* const -> non-const */ -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/libc.def
-
Property cvs2svn:cvs-rev
changed from
1.81
to1.82
r1660 r1661 21 21 EXPORTS 22 22 ; data 23 "___default_hash" @123 "___default_hash" @1 24 24 "___digits" @2 25 25 "___libc_GLocaleCtype" @3 26 "___libc_GLocaleCtypeDefault" @4 27 "___progname" @5 28 "___stderrp" @6 29 "___stdinp" @7 30 "___stdoutp" @8 31 "__atexit_n" @9 32 "__atexit_v" @10 33 "__emx_optarg" @11 34 "__emx_opterr" @12 35 "__emx_optind" @13 36 "__emx_optmode" @14 37 "__emx_optopt" @15 38 "__emx_optswchar" @16 39 "__fmode_bin" @17 40 "__mb_cur_max" @18 41 "__org_environ" @19 42 "__osmajor" @20 43 "__osminor" @21 44 "__pipe_size" @22 45 "__rand48_add" @23 46 "__rand48_mult" @24 47 "__rand48_seed" @25 48 "__std_daylight" @26 49 "__std_environ" @27 50 "__std_timezone" @28 51 "__std_tzname" @29 52 "__streamv_fmutex" @30 53 "__streamvec_head" @31 54 "__streamvec_tail" @32 55 "__tmpidx" @33 56 "__tzi" @34 57 "__tzset_flag" @35 58 "__um_high_heap" @36 59 "__um_low_heap" @37 60 "__um_regular_heap" @38 61 "__um_tiled_heap" @39 62 "_error_message_count" @40 63 "_error_one_per_line" @41 64 "_error_print_progname" @42 65 "_optarg" @43 66 "_opterr" @44 67 "_optind" @45 68 "_optopt" @46 69 "_optreset" @47 26 "___libc_GpFIBGIS" @4 27 "___libc_GpFIBLIS" @5 28 "___libc_GpFIBPIB" @6 29 "___progname" @7 30 "___stderrp" @8 31 "___stdinp" @9 32 "___stdoutp" @10 33 "__atexit_n" @11 34 "__atexit_v" @12 35 "__emx_optarg" @13 36 "__emx_opterr" @14 37 "__emx_optind" @15 38 "__emx_optmode" @16 39 "__emx_optopt" @17 40 "__emx_optswchar" @18 41 "__fmode_bin" @19 42 "__mb_cur_max" @20 43 "__org_environ" @21 44 "__osmajor" @22 45 "__osminor" @23 46 "__pipe_size" @24 47 "__rand48_add" @25 48 "__rand48_mult" @26 49 "__rand48_seed" @27 50 "__std_daylight" @28 51 "__std_environ" @29 52 "__std_timezone" @30 53 "__std_tzname" @31 54 "__streamv_fmutex" @32 55 "__streamvec_head" @33 56 "__streamvec_tail" @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 72 "_pwdb_versions" @50 70 73 71 74 … … 158 161 "DosOpenEventSemEx" @180 159 162 "DosOpenMutexSemEx" @181 163 ; (sorted) 160 164 "___add_ovflpage" @182 161 165 "___addel" @183 … … 204 208 "___buf_init" @226 205 209 "___call_hash" @227 206 "___ libc_Back_fsDirCurrentSet" @228207 "___c hmod" @229208 "___ libc_Back_ioFileSizeSet" @230209 "___c lose" @231210 "___c ollate_range_cmp" @232211 "___ ctordtorInit1" @233212 "___ ctordtorTerm1" @234213 "___d bpanic" @235214 "___d elpair" @236215 "___d toa" @237216 "___ dup" @238217 "___ dup2" @239218 "___e rror" @240219 "___e rror_at_line" @241220 "___ exit" @242221 "___ expand_table" @243222 "___f cntl" @244223 "___find _bigpair" @245224 "___find _last_page" @246225 "___f indfirst" @247226 "___f indnext" @248227 "___fmutex_re lease_internal" @249228 "___fmutex_request_internal " @250210 "___chmod" @228 211 "___close" @229 212 "___collate_range_cmp" @230 213 "___ctordtorInit1" @231 214 "___ctordtorTerm1" @232 215 "___dbpanic" @233 216 "___delpair" @234 217 "___dtoa" @235 218 "___dup" @236 219 "___dup2" @237 220 "___error" @238 221 "___error_at_line" @239 222 "___exit" @240 223 "___expand_table" @241 224 "___fcntl" @242 225 "___find_bigpair" @243 226 "___find_last_page" @244 227 "___findfirst" @245 228 "___findnext" @246 229 "___fmutex_release_internal" @247 230 "___fmutex_release_internal_must_complete" @248 231 "___fmutex_request_internal" @249 232 "___fmutex_request_internal_must_complete" @250 229 233 "___fork" @251 230 234 "___fpclassify" @252 … … 232 236 "___fpclassifyl" @254 233 237 "___free_ovflpage" @255 234 "___libc_FHEx" @256 235 "___ftime" @257 236 "___libc_Back_fsSymlinkStat" @258 237 "___get_buf" @259 238 "___get_page" @260 239 "___libc_Back_fsDirCurrentGet" @261 240 "__std_chroot" @262 241 "___hash_open" @263 242 "___ibitmap" @264 243 "___imphandle" @265 244 "___init" @266 245 "___init_app" @267 246 "___init_dll" @268 247 "___ioctl1" @269 248 "___ioctl2" @270 249 "___isctype" @271 250 "___isfinite" @272 251 "___isfinitef" @273 252 "___isfinitel" @274 253 "___isnan" @275 254 "___isnanf" @276 255 "___isnanl" @277 256 "___isnormal" @278 257 "___isnormalf" @279 258 "___isnormall" @280 259 "___istype" @281 260 "___libc_Back_threadCleanup" @282 261 "___libc_Back_threadEnd" @283 262 "___libc_Back_threadInit" @284 263 "___libc_Back_threadStartup" @285 264 "___libc_FH" @286 265 "___libc_FHAllocate" @287 266 "___libc_FHClose" @288 267 "___libc_FHEnsureHandles" @289 268 "___libc_FHMoreHandles" @290 269 "___libc_ForkDefaultModuleCallback" @291 270 "___libc_ForkRegisterModule" @292 271 "___libc_HasHighMem" @293 272 "___libc_HeapEndVoting" @294 273 "___libc_HeapGetResult" @295 274 "___libc_HeapVote" @296 275 "___libc_HimemDefaultAlloc" @297 276 "___libc_HimemDefaultRelease" @298 277 "___libc_LogAssert" @299 278 "___libc_LogDumpHex" @300 279 "___libc_LogEnter" @301 280 "___libc_LogGroupInit" @302 281 "___libc_LogInit" @303 282 "___libc_LogLeave" @304 283 "___libc_LogMsg" @305 284 "___libc_LogRaw" @306 285 "___libc_PathRewrite" @307 286 "___libc_PathRewriteAdd" @308 287 "___libc_PathRewriteRemove" @309 288 "___libc_StrictMemoryR" @310 289 "___libc_StrictMemoryRW" @311 290 "___libc_StrictStringR" @312 291 "___libc_TLSAlloc" @313 292 "___libc_TLSDestructor" @314 293 "___libc_TLSFree" @315 294 "___libc_TLSGet" @316 295 "___libc_TLSGetDestructor" @317 296 "___libc_TLSSet" @318 297 "___libc_TcpipAllocFH43" @319 298 "___libc_TcpipAllocFH44" @320 299 "___libc_TcpipAllocFHEx43" @321 300 "___libc_TcpipAllocFHEx44" @322 301 "___libc_Tcpipbsdselect43" @323 302 "___libc_Tcpipbsdselect44" @324 303 "___libc_ThreadRegisterTermCallback" @325 304 "___libc_TranslateCodepage" @326 305 "___log2" @327 306 "___libc_Back_ioSeek" @328 307 "___mempcpy" @329 308 "___libc_Back_fsDirCreate" @330 309 "___libc_Back_ioFileOpen" @331 310 "___ovfl_delete" @332 311 "___ovfl_get" @333 312 "___ovfl_put" @334 313 "___pipe" @335 314 "___posix_spawn_file_actions_realloc" @336 315 "___put_page" @337 316 "___read" @338 317 "___read_kbd" @339 318 "___rec_close" @340 319 "___rec_delete" @341 320 "___rec_dleaf" @342 321 "___rec_fd" @343 322 "___rec_fmap" @344 323 "___rec_fpipe" @345 324 "___rec_get" @346 325 "___rec_iput" @347 326 "___rec_open" @348 327 "___rec_put" @349 328 "___rec_ret" @350 329 "___rec_search" @351 330 "___rec_seq" @352 331 "___rec_sync" @353 332 "___rec_vmap" @354 333 "___rec_vpipe" @355 334 "___reclaim_buf" @356 335 "___remove_zeros" @357 336 "___libc_Back_fsDirRemove" @358 337 "___select" @359 338 "___settime" @360 339 "___signbit" @361 340 "___signbitf" @362 341 "___signbitl" @363 342 "___small_atod" @364 343 "___small_dtoa" @365 344 "___smutex_request_internal" @366 345 "___spawni" @367 346 "___spawnve" @368 347 "___split_page" @369 348 "___libc_Back_fsFileStat" @370 349 "___strndup" @371 350 "___strnlen" @372 351 "___swchar" @373 352 "___threadid" @374 353 "___tolower" @375 354 "___toupper" @376 355 "___ttyname" @377 356 "___ulimit" @378 357 "___unwind2" @379 358 "___utimes" @380 359 "___wait" @381 360 "___waitpid" @382 361 "___write" @383 362 "__abspath" @384 363 "__assert" @385 364 "__atfork_callback" @386 365 "__beginthread" @387 366 "__bi_add_bb" @388 367 "__bi_cmp_bb" @389 368 "__bi_cmp_pow2" @390 369 "__bi_div_add_back" @391 370 "__bi_div_estimate" @392 371 "__bi_div_rem_bb" @393 372 "__bi_div_rem_bw" @394 373 "__bi_div_rem_pow2" @395 374 "__bi_div_subtract" @396 375 "__bi_fls" @397 376 "__bi_hdiv_rem_b" @398 377 "__bi_mul_bb" @399 378 "__bi_mul_bw" @400 379 "__bi_pow5" @401 380 "__bi_set_b" @402 381 "__bi_set_d" @403 382 "__bi_set_w" @404 383 "__bi_shl_b" @405 384 "__bi_shl_w" @406 385 "__bi_shr_b" @407 386 "__bi_sub_mul_bw" @408 387 "__bi_wdiv_rem_pow2" @409 388 "__chdir2" @410 389 "__clear87" @411 390 "__closestream" @412 391 "__compute_dst_table" @413 392 "__const_HALF" @414 393 "__const_M_ONE" @415 394 "__const_NAN" @416 395 "__const_ONE" @417 396 "__const_TWO" @418 397 "__const_ZERO" @419 398 "__control87" @420 399 "__core" @421 400 "__crlf" @422 401 "__day" @423 402 "__defext" @424 403 "__dorand48" @425 404 "__dt_free" @426 405 "__dt_read" @427 406 "__dt_sort" @428 407 "__dt_split" @429 408 "__ea_free" @430 409 "__ea_get" @431 410 "__ea_put" @432 411 "__ea_remove" @433 412 "__ea_set_errno" @434 413 "__ea_write" @435 414 "__ead_add" @436 415 "__ead_clear" @437 416 "__ead_copy" @438 417 "__ead_count" @439 418 "__ead_create" @440 419 "__ead_delete" @441 420 "__ead_destroy" @442 421 "__ead_enum" @443 422 "__ead_fea2list_size" @444 423 "__ead_fea2list_to_fealist" @445 424 "__ead_fealist_to_fea2list" @446 425 "__ead_find" @447 426 "__ead_get_fea2list" @448 427 "__ead_get_flags" @449 428 "__ead_get_name" @450 429 "__ead_get_value" @451 430 "__ead_make_index" @452 431 "__ead_name_len" @453 432 "__ead_read" @454 433 "__ead_replace" @455 434 "__ead_size_buffer" @456 435 "__ead_sort" @457 436 "__ead_use_fea2list" @458 437 "__ead_value_size" @459 438 "__ead_write" @460 439 "__emx_getopt" @461 440 "__emxload_connect" @462 441 "__emxload_disconnect" @463 442 "__emxload_do_connect" @464 443 "__emxload_do_disconnect" @465 444 "__emxload_do_receive" @466 445 "__emxload_do_request" @467 446 "__emxload_do_wait" @468 447 "__emxload_env" @469 448 "__emxload_list_get" @470 449 "__emxload_list_start" @471 450 "__emxload_prog" @472 451 "__emxload_request" @473 452 "__emxload_stop" @474 453 "__emxload_this" @475 454 "__emxload_unload" @476 455 "__endbuf1" @477 456 "__endthread" @478 457 "__envargs" @479 458 "__err" @480 459 "__errno" @481 460 "__errno_fun" @482 461 "__execname" @483 462 "__exit" @484 463 "__exit_streams" @485 464 "__fbuf" @486 465 "__fcloseall" @487 466 "__fflush_nolock" @488 467 "__filesys" @489 468 "__fill" @490 469 "__flush" @491 470 "__flushstream" @492 471 "__fmutex_checked_close" @493 472 "__fmutex_checked_create" @494 473 "__fmutex_checked_open" @495 474 "__fmutex_close" @496 475 "__fmutex_create" @497 476 "__fmutex_dummy" @498 477 "__fmutex_open" @499 478 "__fnexplode" @500 479 "__fnexplodefree" @501 480 "__fngetdrive" @502 481 "__fnisabs" @503 482 "__fnisrel" @504 483 "__fnlwr" @505 484 "__fnlwr2" @506 485 "__fnslashify" @507 486 "__fpreset" @508 487 "__fseek_hdr" @509 488 "__fseek_nolock" @510 489 "__fsetmode" @511 490 "__fsopen" @512 491 "__ftell_nolock" @513 492 "__fullpath" @514 493 "__fwrite_nolock" @515 494 "__fxam" @516 495 "__fxaml" @517 496 "__getcwd1" @518 497 "__getcwd2" @519 498 "__getdrive" @520 499 "__getext" @521 500 "__getext2" @522 501 "__getname" @523 502 "__getpass1" @524 503 "__getpass2" @525 504 "__getprogname" @526 505 "__gettid" @527 506 "__getvol" @528 507 "__gmt2loc" @529 508 "__hcalloc" @530 509 "__heap_walk" @531 510 "__heapchk" @532 511 "__heapmin" @533 512 "__heapset" @534 513 "__hinitheap" @535 514 "__hmalloc" @536 515 "__hrealloc" @537 516 "__imphandle" @538 517 "__init_streams" @539 518 "__input" @540 519 "__int86" @541 520 "__isterm" @542 521 "__lcalloc" @543 522 "__libc_16to32" @544 523 "__libc_32to16" @545 524 "__libc_thunk1" @546 525 "__linitheap" @547 526 "__lmalloc" @548 527 "__loc2gmt" @549 528 "__lrealloc" @550 529 "__makepath" @551 530 "__memcount" @552 531 "__memdif" @553 532 "__memrchr" @554 533 "__memswap" @555 534 "__mfclose" @556 535 "__mfopen" @557 536 "__mheap" @558 537 "__mktime" @559 538 "__month_day_leap" @560 539 "__month_day_non_leap" @561 540 "__msize" @562 541 "__newstream" @563 542 "__openstream" @564 543 "__os2_bad" @565 544 "__output" @566 545 "__path" @567 546 "__read_kbd" @568 547 "__remext" @569 548 "__response" @570 549 "__rfnlwr" @571 550 "__rmtmp" @572 551 "__scrsize" @573 552 "__searchenv" @574 553 "__seek_hdr" @575 554 "__sfnlwr" @576 555 "__sleep2" @577 556 "__splitargs" @578 557 "__splitpath" @579 558 "__status87" @580 559 "__std_abort" @581 560 "__std_abs" @582 561 "__std_access" @583 562 "__std_acos" @584 563 "__std_acosl" @585 564 "__std_asctime" @586 565 "__std_asctime_r" @587 566 "__std_asin" @588 567 "__std_asinl" @589 568 "__std_atan" @590 569 "__std_atan2" @591 570 "__std_atan2l" @592 571 "__std_atanl" @593 572 "__std_atexit" @594 573 "__std_atof" @595 574 "__std_atofl" @596 575 "__std_atoi" @597 576 "__std_atol" @598 577 "__std_atoll" @599 578 "__std_basename" @600 579 "__std_bcmp" @601 580 "__std_bcopy" @602 581 "__std_brk" @603 582 "__std_bsearch" @604 583 "__std_bzero" @605 584 "__std_calloc" @606 585 "__std_cbrt" @607 586 "__std_cbrtl" @608 587 "__std_ceil" @609 588 "__std_ceill" @610 589 "__std_cfgetispeed" @611 590 "__std_cfgetospeed" @612 591 "__std_cfsetispeed" @613 592 "__std_cfsetospeed" @614 593 "__std_cfsetspeed" @615 594 "__std_chdir" @616 595 "__chdrive" @617 596 "__std_chmod" @618 597 "__std_chsize" @619 598 "__std_clearerr" @620 599 "__std_clock" @621 600 "__std_close" @622 601 "__std_closedir" @623 602 "__std_copysign" @624 603 "__std_copysignf" @625 604 "__std_copysignl" @626 605 "__std_cos" @627 606 "__std_cosh" @628 607 "__std_coshl" @629 608 "__std_cosl" @630 609 "__std_creat" @631 610 "__std_ctime" @632 611 "__std_ctime_r" @633 612 "__std_cuserid" @634 613 "__std_difftime" @635 614 "__std_dirname" @636 615 "__std_div" @637 616 "__std_drand48" @638 617 "__std_dup" @639 618 "__std_dup2" @640 619 "__std_eaccess" @641 620 "__std_endpwent" @642 621 "__std_eof" @643 622 "__std_erand48" @644 623 "__std_execl" @645 624 "__std_execle" @646 625 "__std_execlp" @647 626 "__std_execlpe" @648 627 "__std_execv" @649 628 "__std_execve" @650 629 "__std_execvp" @651 630 "__std_execvpe" @652 631 "__std_exit" @653 632 "__std_exp" @654 633 "__std_expand" @655 634 "__std_expl" @656 635 "__std_fabs" @657 636 "__std_fabsl" @658 637 "__std_fclose" @659 638 "__std_fcntl" @660 639 "__std_fdopen" @661 640 "__std_feof" @662 641 "__std_ferror" @663 642 "__std_fflush" @664 643 "__std_ffs" @665 644 "__std_fgetc" @666 645 "__std_fgetchar" @667 646 "__std_fgetpos" @668 647 "__std_fgets" @669 648 "__std_filelength" @670 649 "__std_fileno" @671 650 "__std_flock" @672 651 "__std_floor" @673 652 "__std_floorl" @674 653 "__std_flushall" @675 654 "__std_fmod" @676 655 "__std_fmodl" @677 656 "__std_fnmatch" @678 657 "__std_fopen" @679 658 "__std_fork" @680 659 "__std_fpathconf" @681 660 "__std_fprintf" @682 661 "__std_fputc" @683 662 "__std_fputchar" @684 663 "__std_fputs" @685 664 "__std_fread" @686 665 "__std_free" @687 666 "__std_freopen" @688 667 "__std_frexp" @689 668 "__std_frexpl" @690 669 "__std_fscanf" @691 670 "__std_fseek" @692 671 "__std_fseeko" @693 672 "__std_fsetpos" @694 673 "__std_fstat" @695 674 "__std_fsync" @696 675 "__std_ftell" @697 676 "__std_ftello" @698 677 "__std_ftime" @699 678 "__std_ftruncate" @700 679 "__std_ftw" @701 680 "__std_fwrite" @702 681 "__std_gcvt" @703 682 "__std_getchar" @704 683 "__std_getcwd" @705 684 "__std_getegid" @706 685 "__std_getenv" @707 686 "__std_geteuid" @708 687 "__std_getgid" @709 688 "___libc_Back_signalTimer" @710 689 "__std_getgrnam" @711 690 "__std_getgroups" @712 691 "__std_getlogin" @713 692 "__std_getopt" @714 693 "__std_getpagesize" @715 694 "__std_getpass" @716 695 "__std_getpgrp" @717 696 "__std_getpid" @718 697 "__std_getppid" @719 698 "__std_ualarm" @720 699 "__std_getpwent" @721 700 "__std_setitimer" @722 701 "__std_getitimer" @723 702 "__std_getrlimit" @724 703 "__std_gets" @725 704 "__std_gettimeofday" @726 705 "__std_getuid" @727 706 "__std_getw" @728 707 "__std_getwd" @729 708 "__std_glob" @730 709 "__std_globfree" @731 710 "__std_gmtime" @732 711 "__std_gmtime_r" @733 712 "__std_hcreate" @734 713 "__std_hdestroy" @735 714 "__std_hsearch" @736 715 "__std_hypot" @737 716 "__std_hypotl" @738 717 "__std_imaxabs" @739 718 "__std_imaxdiv" @740 719 "__std_index" @741 720 "__std_insque" @742 721 "__std_ioctl" @743 722 "__std_isatty" @744 723 "__std_jrand48" @745 724 "__std_kill" @746 725 "__std_labs" @747 726 "__std_lcong48" @748 727 "__std_ldexp" @749 728 "__std_ldexpl" @750 729 "__std_ldiv" @751 730 "__std_lfind" @752 731 "__std_lltoa" @753 732 "__std_localeconv" @754 733 "__std_localtime" @755 734 "__std_localtime_r" @756 735 "__std_lockf" @757 736 "__std_log" @758 737 "__std_log10" @759 738 "__std_log10l" @760 739 "__std_logl" @761 740 "__std_longjmp" @762 741 "__std_lrand48" @763 742 "__std_lsearch" @764 743 "__std_lseek" @765 744 "__std_lstat" @766 745 "__std_ltoa" @767 746 "__std_malloc" @768 747 "__std_mblen" @769 748 "__std_mbstowcs" @770 749 "__std_mbtowc" @771 750 "__std_memccpy" @772 751 "__std_memchr" @773 752 "__std_memcmp" @774 753 "__std_memcpy" @775 754 "__std_memicmp" @776 755 "__std_memmove" @777 756 "__std_memset" @778 757 "__std_mkdir" @779 758 "__std_mkstemp" @780 759 "__std_mktemp" @781 760 "__std_mktime" @782 761 "__std_modf" @783 762 "__std_modfl" @784 763 "__std_mrand48" @785 764 "__std_nextafter" @786 765 "__std_nextafterf" @787 766 "__std_nextafterl" @788 767 "__std_nrand48" @789 768 "__std_open" @790 769 "__std_opendir" @791 770 "__std_pathconf" @792 771 "__std_pause" @793 772 "__std_pclose" @794 773 "__std_perror" @795 774 "__std_pipe" @796 775 "__std_popen" @797 776 "__std_posix_memalign" @798 777 "__std_pow" @799 778 "__std_powl" @800 779 "__std_printf" @801 780 "__std_putchar" @802 781 "__std_putenv" @803 782 "__std_puts" @804 783 "__std_putw" @805 784 "__std_qsort" @806 785 "__std_qsort_r" @807 786 "__std_raise" @808 787 "__std_rand" @809 788 "__std_read" @810 789 "__std_readdir" @811 790 "__std_readdir_r" @812 791 "__std_readv" @813 792 "__std_realloc" @814 793 "__std_realpath" @815 794 "__std_remove" @816 795 "__std_remque" @817 796 "__std_rename" @818 797 "__std_rewind" @819 798 "__std_rewinddir" @820 799 "__std_rindex" @821 800 "__std_rint" @822 801 "__std_rintl" @823 802 "__std_rmdir" @824 803 "__std_sbrk" @825 804 "__std_scanf" @826 805 "__std_seed48" @827 806 "__std_seekdir" @828 807 "__std_select" @829 808 "__std_setbuf" @830 809 "__std_setbuffer" @831 810 "__std_setenv" @832 811 "__std_setgid" @833 812 "__std_setjmp" @834 813 "__std_setlocale" @835 814 "__std_setmode" @836 815 "__std_setpgid" @837 816 "__std_setpwent" @838 817 "__std_setrlimit" @839 818 "__std_setsid" @840 819 "__std_settimeofday" @841 820 "__std_setuid" @842 821 "__std_setvbuf" @843 822 "__std_sigaction" @844 823 "__std_sigaddset" @845 824 "__std_sigdelset" @846 825 "__std_sigemptyset" @847 826 "__std_sigfillset" @848 827 "__std_sigismember" @849 828 "__std_siglongjmp" @850 829 "__std_signal" @851 830 "__std_sigpending" @852 831 "__std_sigprocmask" @853 832 "__std_sigsetjmp" @854 833 "__std_sigsuspend" @855 834 "__std_sin" @856 835 "__std_sinh" @857 836 "__std_sinhl" @858 837 "__std_sinl" @859 838 "__std_sleep" @860 839 "__std_snprintf" @861 840 "__std_sopen" @862 841 "__std_spawnl" @863 842 "__std_spawnle" @864 843 "__std_spawnlp" @865 844 "__std_spawnlpe" @866 845 "__std_spawnv" @867 846 "__std_spawnve" @868 847 "__std_spawnvp" @869 848 "__std_spawnvpe" @870 849 "__std_sprintf" @871 850 "__std_sqrt" @872 851 "__std_sqrtl" @873 852 "__std_srand" @874 853 "__std_srand48" @875 854 "__std_sscanf" @876 855 "__std_stat" @877 856 "__std_strcat" @878 857 "__std_strchr" @879 858 "__std_strcmp" @880 859 "__std_strcoll" @881 860 "__std_strcpy" @882 861 "__std_strcspn" @883 862 "__std_strdup" @884 863 "__std_strerror" @885 864 "__std_strerror_r" @886 865 "__std_strftime" @887 866 "__std_stricmp" @888 867 "__std_strlen" @889 868 "__std_strlwr" @890 869 "__std_strncat" @891 870 "__std_strncmp" @892 871 "__std_strncpy" @893 872 "__std_strnicmp" @894 873 "__std_strnset" @895 874 "__std_strpbrk" @896 875 "__std_strptime" @897 876 "__std_strrchr" @898 877 "__std_strrev" @899 878 "__std_strset" @900 879 "__std_strspn" @901 880 "__std_strstr" @902 881 "__std_strtod" @903 882 "__std_strtof" @904 883 "__std_strtoimax" @905 884 "__std_strtok" @906 885 "__std_strtok_r" @907 886 "__std_strtol" @908 887 "__std_strtold" @909 888 "__std_strtoll" @910 889 "__std_strtoul" @911 890 "__std_strtoull" @912 891 "__std_strtoumax" @913 892 "__std_strupr" @914 893 "__std_strxfrm" @915 894 "__std_swab" @916 895 "__std_sys_errlist" @917 896 "__std_sys_nerr" @918 897 "__std_sysconf" @919 898 "__std_system" @920 899 "__std_tan" @921 900 "__std_tanh" @922 901 "__std_tanhl" @923 902 "__std_tanl" @924 903 "__std_tcdrain" @925 904 "__std_tcflow" @926 905 "__std_tcflush" @927 906 "__std_tcgetattr" @928 907 "__std_tcgetpgrp" @929 908 "__std_tcsendbreak" @930 909 "__std_tcsetattr" @931 910 "__std_tcsetpgrp" @932 911 "__std_tdelete" @933 912 "__std_tell" @934 913 "__std_telldir" @935 914 "__std_tempnam" @936 915 "__std_tfind" @937 916 "__std_time" @938 917 "__std_times" @939 918 "__std_tmpfile" @940 919 "__std_tmpnam" @941 920 "__std_trunc" @942 921 "__std_truncate" @943 922 "__std_truncl" @944 923 "__std_tsearch" @945 924 "__std_ttyname" @946 925 "__std_twalk" @947 926 "__std_tzset" @948 927 "__std_ulimit" @949 928 "__std_ulltoa" @950 929 "__std_ultoa" @951 930 "__std_umask" @952 931 "__std_uname" @953 932 "__std_ungetc" @954 933 "__std_unlink" @955 934 "__std_unsetenv" @956 935 "__std_usleep" @957 936 "__std_utime" @958 937 "__std_utimes" @959 938 "__std_vfprintf" @960 939 "__std_vfscanf" @961 940 "__std_vprintf" @962 941 "__std_vscanf" @963 942 "__std_vsnprintf" @964 943 "__std_vsprintf" @965 944 "__std_vsscanf" @966 945 "__std_wait" @967 946 "__std_waitpid" @968 947 "__std_wcstombs" @969 948 "__std_wctomb" @970 949 "__std_write" @971 950 "__std_writev" @972 951 "__stream_read" @973 952 "__stream_write" @974 953 "__strncpy" @975 954 "__swchar" @976 955 "__sys_dump_heap_objs" @977 956 "__tcalloc" @978 957 "__tfree" @979 958 "__theapmin" @980 959 "__threadstore" @981 960 "__tmalloc" @982 961 "__tmpbuf1" @983 962 "__tmpidx_lock" @984 963 "__tmpidx_unlock" @985 964 "__tmpidxnam" @986 965 "__trealloc" @987 966 "__trslash" @988 967 "__uaddmem" @989 968 "__ucalloc" @990 969 "__uclose" @991 970 "__ucreate" @992 971 "__ucreate2" @993 972 "__udefault" @994 973 "__udestroy" @995 974 "__uflags" @996 975 "__uheap_type" @997 976 "__uheap_walk" @998 977 "__uheap_walk2" @999 978 "__uheapchk" @1000 979 "__uheapmin" @1001 980 "__uheapset" @1002 981 "__uldiv" @1003 982 "__um_addmem_nolock" @1004 983 "__um_alloc_no_lock" @1005 984 "__um_crumb_free_maybe_lock" @1006 985 "__um_default_alloc" @1007 986 "__um_default_expand" @1008 987 "__um_default_release" @1009 988 "__um_default_shrink" @1010 989 "__um_find_bucket" @1011 990 "__um_free_maybe_lock" @1012 991 "__um_init_default_regular_heap" @1013 992 "__um_init_default_tiled_heap" @1014 993 "__um_lump_alloc" @1015 994 "__um_lump_coalesce_free" @1016 995 "__um_lump_free_maybe_lock" @1017 996 "__um_lump_link_heap" @1018 997 "__um_lump_make_free" @1019 998 "__um_lump_unlink_bucket" @1020 999 "__um_lump_unlink_heap" @1021 1000 "__um_realloc" @1022 1001 "__um_seg_addmem" @1023 1002 "__um_seg_setmem" @1024 1003 "__um_walk_error" @1025 1004 "__um_walk_no_lock" @1026 1005 "__umalloc" @1027 1006 "__ungetc_nolock" @1028 1007 "__uopen" @1029 1008 "__ustats" @1030 1009 "__utcalloc" @1031 1010 "__utdefault" @1032 1011 "__utmalloc" @1033 1012 "__vsopen" @1034 1013 "__warn" @1035 1014 "__wildcard" @1036 1015 "__year_day" @1037 1016 "_argz_delete" @1038 1017 "_catclose" @1039 1018 "_catgets" @1040 1019 "_catopen" @1041 1020 "_dbm_clearerr" @1042 1021 "_dbm_close" @1043 1022 "_dbm_delete" @1044 1023 "_dbm_dirfno" @1045 1024 "_dbm_error" @1046 1025 "_dbm_fetch" @1047 1026 "_dbm_firstkey" @1048 1027 "_dbm_nextkey" @1049 1028 "_dbm_open" @1050 1029 "_dbm_store" @1051 1030 "_dbopen" @1052 1031 "_err_set_exit" @1053 1032 "_err_set_file" @1054 1033 "_errc" @1055 1034 "_errx" @1056 1035 "__std_getopt_long" @1057 1036 "_heapsort" @1058 1037 "_initstate" @1059 1038 "_isalnum" @1060 1039 "_isalpha" @1061 1040 "_isascii" @1062 1041 "_isblank" @1063 1042 "_iscntrl" @1064 1043 "_isdigit" @1065 1044 "_isgraph" @1066 1045 "_ishexnumber" @1067 1046 "_islower" @1068 1047 "_isnumber" @1069 1048 "_isprint" @1070 1049 "_ispunct" @1071 1050 "_isspace" @1072 1051 "_isupper" @1073 1052 "_isxdigit" @1074 1053 "_lchmod" @1075 1054 "_mergesort" @1076 1055 "_mpool_close" @1077 1056 "_mpool_filter" @1078 1057 "_mpool_get" @1079 1058 "_mpool_new" @1080 1059 "_mpool_open" @1081 1060 "_mpool_put" @1082 1061 "_mpool_sync" @1083 1062 "_posix_spawn" @1084 1063 "_posix_spawn_file_actions_addclose" @1085 1064 "_posix_spawn_file_actions_adddup2" @1086 1065 "_posix_spawn_file_actions_addopen" @1087 1066 "_posix_spawn_file_actions_destroy" @1088 1067 "_posix_spawn_file_actions_init" @1089 1068 "_posix_spawnattr_destroy" @1090 1069 "_posix_spawnattr_getflags" @1091 1070 "_posix_spawnattr_getpgroup" @1092 1071 "_posix_spawnattr_getschedparam" @1093 1072 "_posix_spawnattr_getschedpolicy" @1094 1073 "_posix_spawnattr_getsigdefault" @1095 1074 "_posix_spawnattr_getsigmask" @1096 1075 "_posix_spawnattr_init" @1097 1076 "_posix_spawnattr_setflags" @1098 1077 "_posix_spawnattr_setpgroup" @1099 1078 "_posix_spawnattr_setschedparam" @1100 1079 "_posix_spawnattr_setschedpolicy" @1101 1080 "_posix_spawnattr_setsigdefault" @1102 1081 "_posix_spawnattr_setsigmask" @1103 1082 "_posix_spawnp" @1104 1083 "_radixsort" @1105 1084 "_random" @1106 1085 "_reallocf" @1107 1086 "_regcomp" @1108 1087 "_regerror" @1109 1088 "_regexec" @1110 1089 "_regfree" @1111 1090 "_setprogname" @1112 1091 "_setstate" @1113 1092 ; "_sig_info" @1114 1093 "_sradixsort" @1115 1094 "_srandom" @1116 1095 "_srandomdev" @1117 1096 "_stpcpy" @1118 1097 "_strcasestr" @1119 1098 "_strlcat" @1120 1099 "_strlcpy" @1121 1100 "_strnstr" @1122 1101 "_strsep" @1123 1102 "_strsignal" @1124 1103 ; "_sys_exception" @1125 1104 "_sys_nsig" @1126 1105 "_sys_siglist" @1127 1106 "_sys_signame" @1128 1107 "_toascii" @1129 1108 "_tolower" @1130 1109 "_toupper" @1131 1110 "_verr" @1132 1111 "_verrc" @1133 1112 "_verrx" @1134 1113 "_vwarn" @1135 1114 "_vwarnc" @1136 1115 "_vwarnx" @1137 1116 "_warnc" @1138 1117 "_warnx" @1139 1118 ; new stuff. 1119 1120 "___libc_SpmCheck" @1140 1121 "___libc_Back_miscLoadAvg" @1141 1122 "___libc_Back_fsFileStatFH" @1142 1123 "___libc_Back_fsStat" @1143 1124 "___libc_Back_fsStatFH" @1144 1125 "___libc_Back_fsStats" @1145 1126 "_getmntinfo" @1146 1127 "__std_fstatfs" @1147 1128 "__std_fstatvfs" @1148 1129 "__std_getfsstat" @1149 1130 "__std_getloadavg" @1150 1131 "__std_statfs" @1151 1132 "__std_statvfs" @1152 1133 "__std_chown" @1153 1134 "__std_fchown" @1154 1135 "__std_lchown" @1155 1136 "__std_link" @1156 1137 "__std_mknod" @1157 1138 "__std_readlink" @1158 1139 "__std_symlink" @1159 1140 "___libc_Back_fsSync" @1160 1141 "__std_sync" @1161 1142 "_endgrent" @1162 1143 "_getgrent" @1163 1144 "_getgrent_r" @1164 1145 "_getgrgid_r" @1165 1146 "_getgrnam_r" @1166 1147 "___gr_match_entry" @1167 1148 "___gr_parse_entry" @1168 1149 "__nsdbtaddsrc" @1169 1150 "__nsdbtput" @1170 1151 "___nsdefaultsrc" @1171 1152 "__nsdispatch" @1172 1153 "_setgrent" @1173 1154 "_setgroupent" @1174 1155 "_endnetgrent" @1175 1156 "_endusershell" @1176 1157 "_getnetgrent" @1177 1158 "_getpwent_r" @1178 1159 "_getpwnam_r" @1179 1160 "_getpwuid_r" @1180 1161 "_getusershell" @1181 1162 "_innetgr" @1182 1163 "_pwdb_versions" @1183 1164 "___pw_match_entry" @1184 1165 "___pw_parse_entry" @1185 1166 "___pw_scan" @1186 1167 "_setnetgrent" @1187 1168 "_setusershell" @1188 1169 "_sl_add" @1189 1170 "_sl_find" @1190 1171 "_sl_free" @1191 1172 "_sl_init" @1192 1173 "__std_setpassent" @1193 1174 "__std_setgroups" @1194 1175 "___libc_OS2ErrorPop" @1195 1176 "___libc_OS2ErrorPush" @1196 1177 "___libc_OS2ErrorSet" @1197 1178 "__getdcwd" @1198 1179 "___libc_Back_fsDirChangeRoot" @1199 1180 "___libc_Back_fsSymlinkCreate" @1200 1181 "___libc_Back_fsSymlinkRead" @1201 1182 "___libc_Back_ioFHToPath" @1202 1183 "__std_getdtablesize" @1203 1184 "_strmode" @1204 1185 "___strverscmp" @1205 1186 "__getcwdux" @1206 1187 "___libc_Back_fsPathResolve" @1207 1188 "__std_canonicalize_file_name" @1208 1189 "__std_alarm" @1209 1190 "___libc_Back_fsDriveDefaultGet" @1210 1191 "___libc_Back_fsDriveDefaultSet" @1211 1192 "__realrealpath" @1212 1193 1194 ; 0.6 alpha 3 - start 1195 "___libc_Timebomb" @1217 1196 "___libc_Back_ldrClose" @1218 1197 "___libc_Back_ldrOpen" @1219 1198 "___libc_Back_ldrSymbol" @1220 1199 "__std_dlclose" @1221 1200 "__std_dlerror" @1222 1201 "__std_dlopen" @1223 1202 "__std_dlsym" @1224 1203 "_getgrouplist" @1225 1204 "_initgroups" @1226 1205 "__std_memalign" @1227 1206 "__std_valloc" @1228 1207 "___lazyimp_resolver" @1229 1208 "___lazyimp_resolver2" @1230 1209 "___lazyldr_uconv_resolver" @1231 1210 "___lazyldr_libuni_resolver" @1232 1211 "___libc_Back_mmanProtect" @1233 1212 "__std_mprotect" @1234 1213 "__libc_Back_exceptionHandler" @1235 1214 "__signal_os2" @1236 1215 "__signal_sysv" @1237 1216 "___sigpause_bsd" @1238 1217 "__std_bsd_signal" @1239 1218 "__std_killpg" @1240 1219 "__std_psignal" @1241 1220 "__std_sigaltstack" @1242 1221 "__std_sigblock" @1243 1222 "__std_sighold" @1244 1223 "__std_sigignore" @1245 1224 "__std_siginterrupt" @1246 1225 "__std_sigpause" @1247 1226 "__std_sigrelse" @1248 1227 "__std_sigsetmask" @1249 1228 "__std_sigtimedwait" @1250 1229 "__std_sigvec" @1251 1230 "__std_sigwait" @1252 1231 "__std_sigwaitinfo" @1253 1232 "__std_sigqueue" @1254 1233 "__std_sigset" @1255 1234 "_getgrgid" @1256 1235 "_getpwnam" @1257 1236 "_getpwuid" @1258 1237 "___libc_Back_processGetEffGid" @1259 1238 "___libc_Back_processGetEffUid" @1260 1239 "___libc_Back_processGetGid" @1261 1240 "___libc_Back_processGetUid" @1262 1241 "___libc_Back_processSetGid" @1263 1242 "___libc_Back_processSetGidAll" @1264 1243 "___libc_Back_processSetUid" @1265 1244 "___libc_Back_processSetUidAll" @1266 1245 "___libc_Back_processWait" @1267 1246 "___libc_Back_signalAction" @1268 1247 "___libc_Back_signalInterrupt" @1269 1248 "___libc_Back_signalMask" @1270 1249 "___libc_Back_signalPending" @1271 1250 "___libc_Back_signalQueue" @1272 1251 "___libc_Back_signalRaise" @1273 1252 "___libc_Back_signalSendPGrp" @1274 1253 "___libc_Back_signalSendPid" @1275 1254 "___libc_Back_signalStack" @1276 1255 "___libc_Back_signalSuspend" @1277 1256 "___libc_Back_signalWait" @1278 1257 "__std_setegid" @1279 1258 "__std_seteuid" @1280 1259 "__std_setregid" @1281 1260 "__std_setresgid" @1282 1261 "__std_setresuid" @1283 1262 "__std_setreuid" @1284 1263 "__std_setrgid" @1285 1264 "__std_setruid" @1286 1265 "__std_waitid" @1287 1266 "__std_wait3" @1288 1267 "__std_wait4" @1289 1268 "__std_getopt_long_only" @1290 1269 238 "___ftime" @256 239 "___get_buf" @257 240 "___get_page" @258 241 "___gr_match_entry" @259 242 "___gr_parse_entry" @260 243 "___hash_open" @261 244 "___ibitmap" @262 245 "___imphandle" @263 246 "___init" @264 247 "___init_app" @265 248 "___init_dll" @266 249 "___ioctl1" @267 250 "___ioctl2" @268 251 "___isctype" @269 252 "___isfinite" @270 253 "___isfinitef" @271 254 "___isfinitel" @272 255 "___isnan" @273 256 "___isnanf" @274 257 "___isnanl" @275 258 "___isnormal" @276 259 "___isnormalf" @277 260 "___isnormall" @278 261 "___istype" @279 262 "___lazyimp_resolver" @280 263 "___lazyimp_resolver2" @281 264 "___lazyldr_libuni_resolver" @282 265 "___lazyldr_uconv_resolver" @283 266 "___libc_Back_fibDumpAll" @284 267 "___libc_Back_fsDirChangeRoot" @285 268 "___libc_Back_fsDirCreate" @286 269 "___libc_Back_fsDirCurrentGet" @287 270 "___libc_Back_fsDirCurrentSet" @288 271 "___libc_Back_fsDirRemove" @289 272 "___libc_Back_fsDriveDefaultGet" @290 273 "___libc_Back_fsDriveDefaultSet" @291 274 "___libc_Back_fsFileStat" @292 275 "___libc_Back_fsFileStatFH" @293 276 "___libc_Back_fsPathResolve" @294 277 "___libc_Back_fsStat" @295 278 "___libc_Back_fsStatFH" @296 279 "___libc_Back_fsStats" @297 280 "___libc_Back_fsSymlinkCreate" @298 281 "___libc_Back_fsSymlinkRead" @299 282 "___libc_Back_fsSymlinkStat" @300 283 "___libc_Back_fsSync" @301 284 "___libc_Back_ioFHToPath" @302 285 "___libc_Back_ioFileOpen" @303 286 "___libc_Back_ioFileSizeSet" @304 287 "___libc_Back_ioSeek" @305 288 "___libc_Back_ldrClose" @306 289 "___libc_Back_ldrOpen" @307 290 "___libc_Back_ldrSymbol" @308 291 "___libc_Back_miscLoadAvg" @309 292 "___libc_Back_mmanProtect" @310 293 "___libc_Back_processGetEffGid" @311 294 "___libc_Back_processGetEffUid" @312 295 "___libc_Back_processGetGid" @313 296 "___libc_Back_processGetUid" @314 297 "___libc_Back_processSetGid" @315 298 "___libc_Back_processSetGidAll" @316 299 "___libc_Back_processSetUid" @317 300 "___libc_Back_processSetUidAll" @318 301 "___libc_Back_processWait" @319 302 "___libc_Back_signalAction" @320 303 "___libc_Back_signalInterrupt" @321 304 "___libc_Back_signalMask" @322 305 "___libc_Back_signalPending" @323 306 "___libc_Back_signalQueue" @324 307 "___libc_Back_signalRaise" @325 308 "___libc_Back_signalSendPGrp" @326 309 "___libc_Back_signalSendPid" @327 310 "___libc_Back_signalStack" @328 311 "___libc_Back_signalSuspend" @329 312 "___libc_Back_signalTimer" @330 313 "___libc_Back_signalWait" @331 314 "___libc_Back_threadCleanup" @332 315 "___libc_Back_threadEnd" @333 316 "___libc_Back_threadInit" @334 317 "___libc_Back_threadStartup" @335 318 "___libc_FH" @336 319 "___libc_FHAllocate" @337 320 "___libc_FHClose" @338 321 "___libc_FHEnsureHandles" @339 322 "___libc_FHEx" @340 323 "___libc_FHMoreHandles" @341 324 "___libc_ForkDefaultModuleCallback" @342 325 "___libc_ForkRegisterModule" @343 326 "___libc_GLocaleCtypeDefault" @344 327 "___libc_HasHighMem" @345 328 "___libc_HeapEndVoting" @346 329 "___libc_HeapGetResult" @347 330 "___libc_HeapVote" @348 331 "___libc_HimemDefaultAlloc" @349 332 "___libc_HimemDefaultRelease" @350 333 "___libc_LogAssert" @351 334 "___libc_LogDumpHex" @352 335 "___libc_LogEnter" @353 336 "___libc_LogGroupInit" @354 337 "___libc_LogInit" @355 338 "___libc_LogLeave" @356 339 "___libc_LogMsg" @357 340 "___libc_LogRaw" @358 341 "___libc_OS2ErrorPop" @359 342 "___libc_OS2ErrorPush" @360 343 "___libc_OS2ErrorSet" @361 344 "___libc_PathRewrite" @362 345 "___libc_PathRewriteAdd" @363 346 "___libc_PathRewriteRemove" @364 347 "___libc_SpmCheck" @365 348 "___libc_StrictMemoryR" @366 349 "___libc_StrictMemoryRW" @367 350 "___libc_StrictStringR" @368 351 "___libc_TLSAlloc" @369 352 "___libc_TLSDestructor" @370 353 "___libc_TLSFree" @371 354 "___libc_TLSGet" @372 355 "___libc_TLSGetDestructor" @373 356 "___libc_TLSSet" @374 357 "___libc_TcpipAllocFH43" @375 358 "___libc_TcpipAllocFH44" @376 359 "___libc_TcpipAllocFHEx43" @377 360 "___libc_TcpipAllocFHEx44" @378 361 "___libc_Tcpipbsdselect43" @379 362 "___libc_Tcpipbsdselect44" @380 363 "___libc_ThreadRegisterTermCallback" @381 364 "___libc_Timebomb" @382 365 "___libc_TranslateCodepage" @383 366 "___log2" @384 367 "___mempcpy" @385 368 "___nsdefaultsrc" @386 369 "___ovfl_delete" @387 370 "___ovfl_get" @388 371 "___ovfl_put" @389 372 "___pipe" @390 373 "___posix_spawn_file_actions_realloc" @391 374 "___put_page" @392 375 "___pw_match_entry" @393 376 "___pw_parse_entry" @394 377 "___pw_scan" @395 378 "___read" @396 379 "___read_kbd" @397 380 "___rec_close" @398 381 "___rec_delete" @399 382 "___rec_dleaf" @400 383 "___rec_fd" @401 384 "___rec_fmap" @402 385 "___rec_fpipe" @403 386 "___rec_get" @404 387 "___rec_iput" @405 388 "___rec_open" @406 389 "___rec_put" @407 390 "___rec_ret" @408 391 "___rec_search" @409 392 "___rec_seq" @410 393 "___rec_sync" @411 394 "___rec_vmap" @412 395 "___rec_vpipe" @413 396 "___reclaim_buf" @414 397 "___remove_zeros" @415 398 "___select" @416 399 "___settime" @417 400 "___signbit" @418 401 "___signbitf" @419 402 "___signbitl" @420 403 "___sigpause_bsd" @421 404 "___small_atod" @422 405 "___small_dtoa" @423 406 "___smutex_request_internal" @424 407 "___spawni" @425 408 "___spawnve" @426 409 "___split_page" @427 410 "___stream_abort" @428 411 "___strndup" @429 412 "___strnlen" @430 413 "___strverscmp" @431 414 "___swchar" @432 415 "___threadid" @433 416 "___tolower" @434 417 "___toupper" @435 418 "___ttyname" @436 419 "___ulimit" @437 420 "___unwind2" @438 421 "___utimes" @439 422 "___wait" @440 423 "___waitpid" @441 424 "___write" @442 425 "__abspath" @443 426 "__assert" @444 427 "__atfork_callback" @445 428 "__beginthread" @446 429 "__bi_add_bb" @447 430 "__bi_cmp_bb" @448 431 "__bi_cmp_pow2" @449 432 "__bi_div_add_back" @450 433 "__bi_div_estimate" @451 434 "__bi_div_rem_bb" @452 435 "__bi_div_rem_bw" @453 436 "__bi_div_rem_pow2" @454 437 "__bi_div_subtract" @455 438 "__bi_fls" @456 439 "__bi_hdiv_rem_b" @457 440 "__bi_mul_bb" @458 441 "__bi_mul_bw" @459 442 "__bi_pow5" @460 443 "__bi_set_b" @461 444 "__bi_set_d" @462 445 "__bi_set_w" @463 446 "__bi_shl_b" @464 447 "__bi_shl_w" @465 448 "__bi_shr_b" @466 449 "__bi_sub_mul_bw" @467 450 "__bi_wdiv_rem_pow2" @468 451 "__chdir2" @469 452 "__chdrive" @470 453 "__clear87" @471 454 "__closestream" @472 455 "__compute_dst_table" @473 456 "__const_HALF" @474 457 "__const_M_ONE" @475 458 "__const_NAN" @476 459 "__const_ONE" @477 460 "__const_TWO" @478 461 "__const_ZERO" @479 462 "__control87" @480 463 "__core" @481 464 "__crlf" @482 465 "__day" @483 466 "__defext" @484 467 "__dorand48" @485 468 "__dt_free" @486 469 "__dt_read" @487 470 "__dt_sort" @488 471 "__dt_split" @489 472 "__ea_free" @490 473 "__ea_get" @491 474 "__ea_put" @492 475 "__ea_remove" @493 476 "__ea_set_errno" @494 477 "__ea_write" @495 478 "__ead_add" @496 479 "__ead_clear" @497 480 "__ead_copy" @498 481 "__ead_count" @499 482 "__ead_create" @500 483 "__ead_delete" @501 484 "__ead_destroy" @502 485 "__ead_enum" @503 486 "__ead_fea2list_size" @504 487 "__ead_fea2list_to_fealist" @505 488 "__ead_fealist_to_fea2list" @506 489 "__ead_find" @507 490 "__ead_get_fea2list" @508 491 "__ead_get_flags" @509 492 "__ead_get_name" @510 493 "__ead_get_value" @511 494 "__ead_make_index" @512 495 "__ead_name_len" @513 496 "__ead_read" @514 497 "__ead_replace" @515 498 "__ead_size_buffer" @516 499 "__ead_sort" @517 500 "__ead_use_fea2list" @518 501 "__ead_value_size" @519 502 "__ead_write" @520 503 "__emx_getopt" @521 504 "__emxload_connect" @522 505 "__emxload_disconnect" @523 506 "__emxload_do_connect" @524 507 "__emxload_do_disconnect" @525 508 "__emxload_do_receive" @526 509 "__emxload_do_request" @527 510 "__emxload_do_wait" @528 511 "__emxload_env" @529 512 "__emxload_list_get" @530 513 "__emxload_list_start" @531 514 "__emxload_prog" @532 515 "__emxload_request" @533 516 "__emxload_stop" @534 517 "__emxload_this" @535 518 "__emxload_unload" @536 519 "__endbuf1" @537 520 "__endthread" @538 521 "__envargs" @539 522 "__err" @540 523 "__errno" @541 524 "__errno_fun" @542 525 "__execname" @543 526 "__exit" @544 527 "__exit_streams" @545 528 "__fbuf" @546 529 "__fcloseall" @547 530 "__fflush_nolock" @548 531 "__filesys" @549 532 "__fill" @550 533 "__flush" @551 534 "__flushstream" @552 535 "__fmutex_abort" @553 536 "__fmutex_checked_close" @554 537 "__fmutex_checked_create" @555 538 "__fmutex_checked_create2" @556 539 "__fmutex_checked_open" @557 540 "__fmutex_close" @558 541 "__fmutex_create" @559 542 "__fmutex_create2" @560 543 "__fmutex_dummy" @561 544 "__fmutex_open" @562 545 "__fnexplode" @563 546 "__fnexplodefree" @564 547 "__fngetdrive" @565 548 "__fnisabs" @566 549 "__fnisrel" @567 550 "__fnlwr" @568 551 "__fnlwr2" @569 552 "__fnslashify" @570 553 "__fpreset" @571 554 "__fseek_hdr" @572 555 "__fseek_nolock" @573 556 "__fsetmode" @574 557 "__fsopen" @575 558 "__ftell_nolock" @576 559 "__fullpath" @577 560 "__fwrite_nolock" @578 561 "__fxam" @579 562 "__fxaml" @580 563 "__getcwd1" @581 564 "__getcwd2" @582 565 "__getcwdux" @583 566 "__getdcwd" @584 567 "__getdrive" @585 568 "__getext" @586 569 "__getext2" @587 570 "__getname" @588 571 "__getpass1" @589 572 "__getpass2" @590 573 "__getprogname" @591 574 "__gettid" @592 575 "__getvol" @593 576 "__gmt2loc" @594 577 "__hcalloc" @595 578 "__heap_walk" @596 579 "__heapchk" @597 580 "__heapmin" @598 581 "__heapset" @599 582 "__hinitheap" @600 583 "__hmalloc" @601 584 "__hrealloc" @602 585 "__imphandle" @603 586 "__init_streams" @604 587 "__input" @605 588 "__int86" @606 589 "__isterm" @607 590 "__lcalloc" @608 591 "__libc_16to32" @609 592 "__libc_32to16" @610 593 "__libc_Back_exceptionHandler" @611 594 "__libc_thunk1" @612 595 "__linitheap" @613 596 "__lmalloc" @614 597 "__loc2gmt" @615 598 "__lrealloc" @616 599 "__makepath" @617 600 "__memcount" @618 601 "__memdif" @619 602 "__memrchr" @620 603 "__memswap" @621 604 "__mfclose" @622 605 "__mfopen" @623 606 "__mheap" @624 607 "__mktime" @625 608 "__month_day_leap" @626 609 "__month_day_non_leap" @627 610 "__msize" @628 611 "__newstream" @629 612 "__nsdbtaddsrc" @630 613 "__nsdbtput" @631 614 "__nsdispatch" @632 615 "__openstream" @633 616 "__os2_bad" @634 617 "__output" @635 618 "__path" @636 619 "__read_kbd" @637 620 "__realrealpath" @638 621 "__remext" @639 622 "__response" @640 623 "__rfnlwr" @641 624 "__rmtmp" @642 625 "__scrsize" @643 626 "__searchenv" @644 627 "__seek_hdr" @645 628 "__sfnlwr" @646 629 "__signal_os2" @647 630 "__signal_sysv" @648 631 "__sleep2" @649 632 "__splitargs" @650 633 "__splitpath" @651 634 "__status87" @652 635 "__std_abort" @653 636 "__std_abs" @654 637 "__std_access" @655 638 "__std_acos" @656 639 "__std_acosl" @657 640 "__std_alarm" @658 641 "__std_asctime" @659 642 "__std_asctime_r" @660 643 "__std_asin" @661 644 "__std_asinl" @662 645 "__std_atan" @663 646 "__std_atan2" @664 647 "__std_atan2l" @665 648 "__std_atanl" @666 649 "__std_atexit" @667 650 "__std_atof" @668 651 "__std_atofl" @669 652 "__std_atoi" @670 653 "__std_atol" @671 654 "__std_atoll" @672 655 "__std_basename" @673 656 "__std_bcmp" @674 657 "__std_bcopy" @675 658 "__std_brk" @676 659 "__std_bsd_signal" @677 660 "__std_bsearch" @678 661 "__std_bzero" @679 662 "__std_calloc" @680 663 "__std_canonicalize_file_name" @681 664 "__std_cbrt" @682 665 "__std_cbrtl" @683 666 "__std_ceil" @684 667 "__std_ceill" @685 668 "__std_cfgetispeed" @686 669 "__std_cfgetospeed" @687 670 "__std_cfsetispeed" @688 671 "__std_cfsetospeed" @689 672 "__std_cfsetspeed" @690 673 "__std_chdir" @691 674 "__std_chmod" @692 675 "__std_chown" @693 676 "__std_chroot" @694 677 "__std_chsize" @695 678 "__std_clearerr" @696 679 "__std_clock" @697 680 "__std_close" @698 681 "__std_closedir" @699 682 "__std_copysign" @700 683 "__std_copysignf" @701 684 "__std_copysignl" @702 685 "__std_cos" @703 686 "__std_cosh" @704 687 "__std_coshl" @705 688 "__std_cosl" @706 689 "__std_creat" @707 690 "__std_ctime" @708 691 "__std_ctime_r" @709 692 "__std_cuserid" @710 693 "__std_difftime" @711 694 "__std_dirname" @712 695 "__std_div" @713 696 "__std_dlclose" @714 697 "__std_dlerror" @715 698 "__std_dlopen" @716 699 "__std_dlsym" @717 700 "__std_drand48" @718 701 "__std_dup" @719 702 "__std_dup2" @720 703 "__std_eaccess" @721 704 "__std_endpwent" @722 705 "__std_eof" @723 706 "__std_erand48" @724 707 "__std_execl" @725 708 "__std_execle" @726 709 "__std_execlp" @727 710 "__std_execlpe" @728 711 "__std_execv" @729 712 "__std_execve" @730 713 "__std_execvp" @731 714 "__std_execvpe" @732 715 "__std_exit" @733 716 "__std_exp" @734 717 "__std_expand" @735 718 "__std_expl" @736 719 "__std_fabs" @737 720 "__std_fabsl" @738 721 "__std_fchown" @739 722 "__std_fclose" @740 723 "__std_fcntl" @741 724 "__std_fdopen" @742 725 "__std_feof" @743 726 "__std_ferror" @744 727 "__std_fflush" @745 728 "__std_ffs" @746 729 "__std_fgetc" @747 730 "__std_fgetchar" @748 731 "__std_fgetpos" @749 732 "__std_fgets" @750 733 "__std_filelength" @751 734 "__std_fileno" @752 735 "__std_flock" @753 736 "__std_floor" @754 737 "__std_floorl" @755 738 "__std_flushall" @756 739 "__std_fmod" @757 740 "__std_fmodl" @758 741 "__std_fnmatch" @759 742 "__std_fopen" @760 743 "__std_fork" @761 744 "__std_fpathconf" @762 745 "__std_fprintf" @763 746 "__std_fputc" @764 747 "__std_fputchar" @765 748 "__std_fputs" @766 749 "__std_fread" @767 750 "__std_free" @768 751 "__std_freopen" @769 752 "__std_frexp" @770 753 "__std_frexpl" @771 754 "__std_fscanf" @772 755 "__std_fseek" @773 756 "__std_fseeko" @774 757 "__std_fsetpos" @775 758 "__std_fstat" @776 759 "__std_fstatfs" @777 760 "__std_fstatvfs" @778 761 "__std_fsync" @779 762 "__std_ftell" @780 763 "__std_ftello" @781 764 "__std_ftime" @782 765 "__std_ftruncate" @783 766 "__std_ftw" @784 767 "__std_fwrite" @785 768 "__std_gcvt" @786 769 "__std_getchar" @787 770 "__std_getcwd" @788 771 "__std_getdtablesize" @789 772 "__std_getegid" @790 773 "__std_getenv" @791 774 "__std_geteuid" @792 775 "__std_getfsstat" @793 776 "__std_getgid" @794 777 "__std_getgrnam" @795 778 "__std_getgroups" @796 779 "__std_getitimer" @797 780 "__std_getloadavg" @798 781 "__std_getlogin" @799 782 "__std_getopt" @800 783 "__std_getopt_long" @801 784 "__std_getopt_long_only" @802 785 "__std_getpagesize" @803 786 "__std_getpass" @804 787 "__std_getpgrp" @805 788 "__std_getpid" @806 789 "__std_getppid" @807 790 "__std_getpwent" @808 791 "__std_getrlimit" @809 792 "__std_gets" @810 793 "__std_gettimeofday" @811 794 "__std_getuid" @812 795 "__std_getw" @813 796 "__std_getwd" @814 797 "__std_glob" @815 798 "__std_globfree" @816 799 "__std_gmtime" @817 800 "__std_gmtime_r" @818 801 "__std_hcreate" @819 802 "__std_hdestroy" @820 803 "__std_hsearch" @821 804 "__std_hypot" @822 805 "__std_hypotl" @823 806 "__std_imaxabs" @824 807 "__std_imaxdiv" @825 808 "__std_index" @826 809 "__std_insque" @827 810 "__std_ioctl" @828 811 "__std_isatty" @829 812 "__std_jrand48" @830 813 "__std_kill" @831 814 "__std_killpg" @832 815 "__std_labs" @833 816 "__std_lchown" @834 817 "__std_lcong48" @835 818 "__std_ldexp" @836 819 "__std_ldexpl" @837 820 "__std_ldiv" @838 821 "__std_lfind" @839 822 "__std_link" @840 823 "__std_lltoa" @841 824 "__std_localeconv" @842 825 "__std_localtime" @843 826 "__std_localtime_r" @844 827 "__std_lockf" @845 828 "__std_log" @846 829 "__std_log10" @847 830 "__std_log10l" @848 831 "__std_logl" @849 832 "__std_longjmp" @850 833 "__std_lrand48" @851 834 "__std_lsearch" @852 835 "__std_lseek" @853 836 "__std_lstat" @854 837 "__std_ltoa" @855 838 "__std_malloc" @856 839 "__std_mblen" @857 840 "__std_mbstowcs" @858 841 "__std_mbtowc" @859 842 "__std_memalign" @860 843 "__std_memccpy" @861 844 "__std_memchr" @862 845 "__std_memcmp" @863 846 "__std_memcpy" @864 847 "__std_memicmp" @865 848 "__std_memmove" @866 849 "__std_memset" @867 850 "__std_mkdir" @868 851 "__std_mknod" @869 852 "__std_mkstemp" @870 853 "__std_mktemp" @871 854 "__std_mktime" @872 855 "__std_modf" @873 856 "__std_modfl" @874 857 "__std_mprotect" @875 858 "__std_mrand48" @876 859 "__std_nextafter" @877 860 "__std_nextafterf" @878 861 "__std_nextafterl" @879 862 "__std_nrand48" @880 863 "__std_open" @881 864 "__std_opendir" @882 865 "__std_pathconf" @883 866 "__std_pause" @884 867 "__std_pclose" @885 868 "__std_perror" @886 869 "__std_pipe" @887 870 "__std_popen" @888 871 "__std_posix_memalign" @889 872 "__std_pow" @890 873 "__std_powl" @891 874 "__std_printf" @892 875 "__std_psignal" @893 876 "__std_putchar" @894 877 "__std_putenv" @895 878 "__std_puts" @896 879 "__std_putw" @897 880 "__std_qsort" @898 881 "__std_qsort_r" @899 882 "__std_raise" @900 883 "__std_rand" @901 884 "__std_read" @902 885 "__std_readdir" @903 886 "__std_readdir_r" @904 887 "__std_readlink" @905 888 "__std_readv" @906 889 "__std_realloc" @907 890 "__std_realpath" @908 891 "__std_remove" @909 892 "__std_remque" @910 893 "__std_rename" @911 894 "__std_rewind" @912 895 "__std_rewinddir" @913 896 "__std_rindex" @914 897 "__std_rint" @915 898 "__std_rintl" @916 899 "__std_rmdir" @917 900 "__std_sbrk" @918 901 "__std_scanf" @919 902 "__std_seed48" @920 903 "__std_seekdir" @921 904 "__std_select" @922 905 "__std_setbuf" @923 906 "__std_setbuffer" @924 907 "__std_setegid" @925 908 "__std_setenv" @926 909 "__std_seteuid" @927 910 "__std_setgid" @928 911 "__std_setgroups" @929 912 "__std_setitimer" @930 913 "__std_setjmp" @931 914 "__std_setlocale" @932 915 "__std_setmode" @933 916 "__std_setpassent" @934 917 "__std_setpgid" @935 918 "__std_setpwent" @936 919 "__std_setregid" @937 920 "__std_setresgid" @938 921 "__std_setresuid" @939 922 "__std_setreuid" @940 923 "__std_setrgid" @941 924 "__std_setrlimit" @942 925 "__std_setruid" @943 926 "__std_setsid" @944 927 "__std_settimeofday" @945 928 "__std_setuid" @946 929 "__std_setvbuf" @947 930 "__std_sigaction" @948 931 "__std_sigaddset" @949 932 "__std_sigaltstack" @950 933 "__std_sigblock" @951 934 "__std_sigdelset" @952 935 "__std_sigemptyset" @953 936 "__std_sigfillset" @954 937 "__std_sighold" @955 938 "__std_sigignore" @956 939 "__std_siginterrupt" @957 940 "__std_sigismember" @958 941 "__std_siglongjmp" @959 942 "__std_signal" @960 943 "__std_sigpause" @961 944 "__std_sigpending" @962 945 "__std_sigprocmask" @963 946 "__std_sigqueue" @964 947 "__std_sigrelse" @965 948 "__std_sigset" @966 949 "__std_sigsetjmp" @967 950 "__std_sigsetmask" @968 951 "__std_sigsuspend" @969 952 "__std_sigtimedwait" @970 953 "__std_sigvec" @971 954 "__std_sigwait" @972 955 "__std_sigwaitinfo" @973 956 "__std_sin" @974 957 "__std_sinh" @975 958 "__std_sinhl" @976 959 "__std_sinl" @977 960 "__std_sleep" @978 961 "__std_snprintf" @979 962 "__std_sopen" @980 963 "__std_spawnl" @981 964 "__std_spawnle" @982 965 "__std_spawnlp" @983 966 "__std_spawnlpe" @984 967 "__std_spawnv" @985 968 "__std_spawnve" @986 969 "__std_spawnvp" @987 970 "__std_spawnvpe" @988 971 "__std_sprintf" @989 972 "__std_sqrt" @990 973 "__std_sqrtl" @991 974 "__std_srand" @992 975 "__std_srand48" @993 976 "__std_sscanf" @994 977 "__std_stat" @995 978 "__std_statfs" @996 979 "__std_statvfs" @997 980 "__std_strcat" @998 981 "__std_strchr" @999 982 "__std_strcmp" @1000 983 "__std_strcoll" @1001 984 "__std_strcpy" @1002 985 "__std_strcspn" @1003 986 "__std_strdup" @1004 987 "__std_strerror" @1005 988 "__std_strerror_r" @1006 989 "__std_strftime" @1007 990 "__std_stricmp" @1008 991 "__std_strlen" @1009 992 "__std_strlwr" @1010 993 "__std_strncat" @1011 994 "__std_strncmp" @1012 995 "__std_strncpy" @1013 996 "__std_strnicmp" @1014 997 "__std_strnset" @1015 998 "__std_strpbrk" @1016 999 "__std_strptime" @1017 1000 "__std_strrchr" @1018 1001 "__std_strrev" @1019 1002 "__std_strset" @1020 1003 "__std_strspn" @1021 1004 "__std_strstr" @1022 1005 "__std_strtod" @1023 1006 "__std_strtof" @1024 1007 "__std_strtoimax" @1025 1008 "__std_strtok" @1026 1009 "__std_strtok_r" @1027 1010 "__std_strtol" @1028 1011 "__std_strtold" @1029 1012 "__std_strtoll" @1030 1013 "__std_strtoul" @1031 1014 "__std_strtoull" @1032 1015 "__std_strtoumax" @1033 1016 "__std_strupr" @1034 1017 "__std_strxfrm" @1035 1018 "__std_swab" @1036 1019 "__std_symlink" @1037 1020 "__std_sync" @1038 1021 "__std_sys_errlist" @1039 1022 "__std_sys_nerr" @1040 1023 "__std_sysconf" @1041 1024 "__std_system" @1042 1025 "__std_tan" @1043 1026 "__std_tanh" @1044 1027 "__std_tanhl" @1045 1028 "__std_tanl" @1046 1029 "__std_tcdrain" @1047 1030 "__std_tcflow" @1048 1031 "__std_tcflush" @1049 1032 "__std_tcgetattr" @1050 1033 "__std_tcgetpgrp" @1051 1034 "__std_tcsendbreak" @1052 1035 "__std_tcsetattr" @1053 1036 "__std_tcsetpgrp" @1054 1037 "__std_tdelete" @1055 1038 "__std_tell" @1056 1039 "__std_telldir" @1057 1040 "__std_tempnam" @1058 1041 "__std_tfind" @1059 1042 "__std_time" @1060 1043 "__std_times" @1061 1044 "__std_tmpfile" @1062 1045 "__std_tmpnam" @1063 1046 "__std_trunc" @1064 1047 "__std_truncate" @1065 1048 "__std_truncl" @1066 1049 "__std_tsearch" @1067 1050 "__std_ttyname" @1068 1051 "__std_twalk" @1069 1052 "__std_tzset" @1070 1053 "__std_ualarm" @1071 1054 "__std_ulimit" @1072 1055 "__std_ulltoa" @1073 1056 "__std_ultoa" @1074 1057 "__std_umask" @1075 1058 "__std_uname" @1076 1059 "__std_ungetc" @1077 1060 "__std_unlink" @1078 1061 "__std_unsetenv" @1079 1062 "__std_usleep" @1080 1063 "__std_utime" @1081 1064 "__std_utimes" @1082 1065 "__std_valloc" @1083 1066 "__std_vfprintf" @1084 1067 "__std_vfscanf" @1085 1068 "__std_vprintf" @1086 1069 "__std_vscanf" @1087 1070 "__std_vsnprintf" @1088 1071 "__std_vsprintf" @1089 1072 "__std_vsscanf" @1090 1073 "__std_wait" @1091 1074 "__std_wait3" @1092 1075 "__std_wait4" @1093 1076 "__std_waitid" @1094 1077 "__std_waitpid" @1095 1078 "__std_wcstombs" @1096 1079 "__std_wctomb" @1097 1080 "__std_write" @1098 1081 "__std_writev" @1099 1082 "__stream_read" @1100 1083 "__stream_write" @1101 1084 "__strncpy" @1102 1085 "__swchar" @1103 1086 "__sys_dump_heap_objs" @1104 1087 "__tcalloc" @1105 1088 "__tfree" @1106 1089 "__theapmin" @1107 1090 "__threadstore" @1108 1091 "__tmalloc" @1109 1092 "__tmpbuf1" @1110 1093 "__tmpidx_lock" @1111 1094 "__tmpidx_unlock" @1112 1095 "__tmpidxnam" @1113 1096 "__trealloc" @1114 1097 "__trslash" @1115 1098 "__uaddmem" @1116 1099 "__ucalloc" @1117 1100 "__uclose" @1118 1101 "__ucreate" @1119 1102 "__ucreate2" @1120 1103 "__udefault" @1121 1104 "__udestroy" @1122 1105 "__uflags" @1123 1106 "__uheap_type" @1124 1107 "__uheap_walk" @1125 1108 "__uheap_walk2" @1126 1109 "__uheapchk" @1127 1110 "__uheapmin" @1128 1111 "__uheapset" @1129 1112 "__uldiv" @1130 1113 "__um_addmem_nolock" @1131 1114 "__um_alloc_no_lock" @1132 1115 "__um_crumb_free_maybe_lock" @1133 1116 "__um_default_alloc" @1134 1117 "__um_default_expand" @1135 1118 "__um_default_release" @1136 1119 "__um_default_shrink" @1137 1120 "__um_find_bucket" @1138 1121 "__um_free_maybe_lock" @1139 1122 "__um_init_default_regular_heap" @1140 1123 "__um_init_default_tiled_heap" @1141 1124 "__um_lump_alloc" @1142 1125 "__um_lump_coalesce_free" @1143 1126 "__um_lump_free_maybe_lock" @1144 1127 "__um_lump_link_heap" @1145 1128 "__um_lump_make_free" @1146 1129 "__um_lump_unlink_bucket" @1147 1130 "__um_lump_unlink_heap" @1148 1131 "__um_realloc" @1149 1132 "__um_seg_addmem" @1150 1133 "__um_seg_setmem" @1151 1134 "__um_walk_error" @1152 1135 "__um_walk_no_lock" @1153 1136 "__umalloc" @1154 1137 "__ungetc_nolock" @1155 1138 "__uopen" @1156 1139 "__ustats" @1157 1140 "__utcalloc" @1158 1141 "__utdefault" @1159 1142 "__utmalloc" @1160 1143 "__vsopen" @1161 1144 "__warn" @1162 1145 "__wildcard" @1163 1146 "__year_day" @1164 1147 "_argz_delete" @1165 1148 "_catclose" @1166 1149 "_catgets" @1167 1150 "_catopen" @1168 1151 "_dbm_clearerr" @1169 1152 "_dbm_close" @1170 1153 "_dbm_delete" @1171 1154 "_dbm_dirfno" @1172 1155 "_dbm_error" @1173 1156 "_dbm_fetch" @1174 1157 "_dbm_firstkey" @1175 1158 "_dbm_nextkey" @1176 1159 "_dbm_open" @1177 1160 "_dbm_store" @1178 1161 "_dbopen" @1179 1162 "_endgrent" @1180 1163 "_endnetgrent" @1181 1164 "_endusershell" @1182 1165 "_err_set_exit" @1183 1166 "_err_set_file" @1184 1167 "_errc" @1185 1168 "_errx" @1186 1169 "_getgrent" @1187 1170 "_getgrent_r" @1188 1171 "_getgrgid" @1189 1172 "_getgrgid_r" @1190 1173 "_getgrnam_r" @1191 1174 "_getgrouplist" @1192 1175 "_getmntinfo" @1193 1176 "_getnetgrent" @1194 1177 "_getpwent_r" @1195 1178 "_getpwnam" @1196 1179 "_getpwnam_r" @1197 1180 "_getpwuid" @1198 1181 "_getpwuid_r" @1199 1182 "_getusershell" @1200 1183 "_heapsort" @1201 1184 "_initgroups" @1202 1185 "_initstate" @1203 1186 "_innetgr" @1204 1187 "_isalnum" @1205 1188 "_isalpha" @1206 1189 "_isascii" @1207 1190 "_isblank" @1208 1191 "_iscntrl" @1209 1192 "_isdigit" @1210 1193 "_isgraph" @1211 1194 "_ishexnumber" @1212 1195 "_islower" @1213 1196 "_isnumber" @1214 1197 "_isprint" @1215 1198 "_ispunct" @1216 1199 "_isspace" @1217 1200 "_isupper" @1218 1201 "_isxdigit" @1219 1202 "_lchmod" @1220 1203 "_mergesort" @1221 1204 "_mpool_close" @1222 1205 "_mpool_filter" @1223 1206 "_mpool_get" @1224 1207 "_mpool_new" @1225 1208 "_mpool_open" @1226 1209 "_mpool_put" @1227 1210 "_mpool_sync" @1228 1211 "_posix_spawn" @1229 1212 "_posix_spawn_file_actions_addclose" @1230 1213 "_posix_spawn_file_actions_adddup2" @1231 1214 "_posix_spawn_file_actions_addopen" @1232 1215 "_posix_spawn_file_actions_destroy" @1233 1216 "_posix_spawn_file_actions_init" @1234 1217 "_posix_spawnattr_destroy" @1235 1218 "_posix_spawnattr_getflags" @1236 1219 "_posix_spawnattr_getpgroup" @1237 1220 "_posix_spawnattr_getschedparam" @1238 1221 "_posix_spawnattr_getschedpolicy" @1239 1222 "_posix_spawnattr_getsigdefault" @1240 1223 "_posix_spawnattr_getsigmask" @1241 1224 "_posix_spawnattr_init" @1242 1225 "_posix_spawnattr_setflags" @1243 1226 "_posix_spawnattr_setpgroup" @1244 1227 "_posix_spawnattr_setschedparam" @1245 1228 "_posix_spawnattr_setschedpolicy" @1246 1229 "_posix_spawnattr_setsigdefault" @1247 1230 "_posix_spawnattr_setsigmask" @1248 1231 "_posix_spawnp" @1249 1232 "_warnx" @1250 1233 "_radixsort" @1251 1234 "_random" @1252 1235 "_reallocf" @1253 1236 "_regcomp" @1254 1237 "_regerror" @1255 1238 "_regexec" @1256 1239 "_regfree" @1257 1240 "_setgrent" @1258 1241 "_setgroupent" @1259 1242 "_setnetgrent" @1260 1243 "_setprogname" @1261 1244 "_setstate" @1262 1245 "_setusershell" @1263 1246 "_sl_add" @1264 1247 "_sl_find" @1265 1248 "_sl_free" @1266 1249 "_sl_init" @1267 1250 "_sradixsort" @1268 1251 "_srandom" @1269 1252 "_srandomdev" @1270 1253 "_stpcpy" @1271 1254 "_strcasestr" @1272 1255 "_strlcat" @1273 1256 "_strlcpy" @1274 1257 "_strmode" @1275 1258 "_strnstr" @1276 1259 "_strsep" @1277 1260 "_strsignal" @1278 1261 "_sys_nsig" @1279 1262 "_sys_siglist" @1280 1263 "_sys_signame" @1281 1264 "_toascii" @1282 1265 "_tolower" @1283 1266 "_toupper" @1284 1267 "_verr" @1285 1268 "_verrc" @1286 1269 "_verrx" @1287 1270 "_vwarn" @1288 1271 "_vwarnc" @1289 1272 "_vwarnx" @1290 1273 "_warnc" @1291 1274 ; new stuff -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/libc.smak
-
Property cvs2svn:cvs-rev
changed from
1.53
to1.54
r1660 r1661 74 74 $.omf/src/lib/sys/__initdll.obj \ 75 75 $.omf/src/lib/malloc/_heapvoting.obj \ 76 $.omf/src/lib/sys/FastInfoBlocks.obj \ 76 77 $.omf/src/lib/process/fmutex.obj \ 77 78 $.omf/src/lib/sys/DosCreateEventSemEx.obj \ -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/malloc/ucreate2.c
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1660 r1661 80 80 81 81 /* Initialize the mutex semaphore. */ 82 if (_fmutex_create (&h->fsem, (type & _HEAP_SHARED) ? _FMC_SHARED : 0) != 0)82 if (_fmutex_create2 (&h->fsem, (type & _HEAP_SHARED) ? _FMC_SHARED : 0, "LIBC Heap") != 0) 83 83 return NULL; 84 84 -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/process/fmutex.c
-
Property cvs2svn:cvs-rev
changed from
1.7
to1.8
r1660 r1661 5 5 #define INCL_DOSPROCESS 6 6 #define INCL_DOSERRORS 7 #define INCL_DOSEXCEPTIONS 7 8 #define INCL_FSMACROS 8 9 #define INCL_EXAPIS 9 10 #include <os2.h> 10 11 #include <stdlib.h> 12 #include <string.h> 11 13 #include <sys/builtin.h> 12 14 #include <sys/fmutex.h> 13 15 #include <sys/smutex.h> 16 #include <InnoTekLIBC/FastInfoBlocks.h> 14 17 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_MUTEX 15 18 #include <InnoTekLIBC/logstrict.h> 16 19 20 /******************************************************************************* 21 * Internal Functions * 22 *******************************************************************************/ 23 static void __fmutex_deadlock(_fmutex *pSem, const char *pszMsg); 24 17 25 18 26 /* These functions are available even in single-thread libraries. */ … … 22 30 { 23 31 LIBCLOG_ENTER("sem=%p flags=%#x\n", (void *)sem, flags); 32 unsigned rc = _fmutex_create2(sem, flags, NULL); 33 LIBCLOG_RETURN_UINT(rc); 34 } 35 36 37 unsigned _fmutex_create2(_fmutex *sem, unsigned flags, const char *pszDesc) 38 { 39 LIBCLOG_ENTER("sem=%p flags=%#x pszDesc=%s\n", (void *)sem, flags, pszDesc); 24 40 unsigned rc; 25 41 42 sem->hev = 0; 43 sem->Owner = 0; 26 44 sem->fs = _FMS_AVAILABLE; 27 45 sem->flags = flags; 28 46 sem->padding[0] = 'f'; 29 sem->padding[1] = 'm'; 47 sem->padding[0] = 'm'; 48 sem->pszDesc = pszDesc; 30 49 rc = DosCreateEventSemEx(NULL, (PHEV)&sem->hev, 31 50 (flags & _FMC_SHARED) ? DC_SEM_SHARED : 0, 32 51 FALSE); 33 34 52 LIBCLOG_RETURN_UINT(rc); 35 53 } … … 38 56 unsigned _fmutex_open(_fmutex *sem) 39 57 { 40 LIBCLOG_ENTER("sem=%p \n", (void *)sem);58 LIBCLOG_ENTER("sem=%p{.pszDesc=%s}\n", (void *)sem, sem->pszDesc); 41 59 unsigned rc = DosOpenEventSemEx(NULL, (PHEV)&sem->hev); 42 60 LIBCLOG_RETURN_UINT(rc); … … 46 64 unsigned _fmutex_close(_fmutex *sem) 47 65 { 48 LIBCLOG_ENTER("sem=%p \n", (void *)sem);66 LIBCLOG_ENTER("sem=%p{.pszDesc=%s}\n", (void *)sem, sem->pszDesc); 49 67 unsigned rc = DosCloseEventSemEx(sem->hev); 50 68 LIBCLOG_RETURN_UINT(rc); … … 54 72 unsigned __fmutex_request_internal(_fmutex *sem, unsigned flags, signed char fs) 55 73 { 56 LIBCLOG_ENTER("sem=%p flags=%#x fs=%#x\n", (void *)sem, flags, (int)fs);74 LIBCLOG_ENTER("sem=%p{.pszDesc=%s} flags=%#x fs=%#x\n", (void *)sem, sem->pszDesc, flags, (int)fs); 57 75 int rc; 58 PTIB pTib;59 PPIB pPib;60 76 61 77 if (fs == _FMS_UNINIT) … … 70 86 { 71 87 if (__cxchg(&sem->fs, _FMS_OWNED_HARD) == _FMS_AVAILABLE) 88 { 89 __atomic_xchg(&sem->Owner, fibGetTidPid()); 72 90 LIBCLOG_RETURN_UINT(0); 91 } 73 92 } 74 93 LIBCLOG_RETURN_UINT(ERROR_MUTEX_OWNED); … … 85 104 LIBCLOG_RETURN_UINT(rc); 86 105 if (__cxchg(&sem->fs, _FMS_OWNED_HARD) == _FMS_AVAILABLE) 106 { 107 __atomic_xchg(&sem->Owner, fibGetTidPid()); 87 108 LIBCLOG_RETURN_UINT(0); 109 } 110 if (sem->Owner == fibGetTidPid()) 111 { 112 __fmutex_deadlock(sem, "Recursive mutex!"); 113 LIBCLOG_RETURN_UINT(-1); 114 } 115 88 116 FS_SAVE_LOAD(); 89 117 90 do118 for (;;) 91 119 { 92 120 rc = DosWaitEventSem(sem->hev, sem->flags & _FMC_SHARED ? SEM_INDEFINITE_WAIT : 3000); … … 101 129 if (!(flags & _FMR_IGNINT)) 102 130 break; 103 DosGetInfoBlocks(&pTib, &pPib); 104 if (pPib->pib_flstatus & (0x40/*dying*/ | 0x04/*exiting all*/ | 0x02/*Exiting Thread 1*/ | 0x01/* ExitList */)) 131 if (fibIsInExit()) 105 132 break; 106 133 rc = ERROR_TIMEOUT; 107 134 } 108 if (rc == ERROR_TIMEOUT && !(sem->flags & _FMC_SHARED)) 109 { 110 /* 111 * Deadlock detection - if this is the only thread of the 112 * process we should just kill our selves. 113 * ASSUME thread ids are reused and upper thread limit or 4k. 114 */ 115 int iThread; 116 DosGetInfoBlocks(&pTib, &pPib); 117 for (iThread = 1; iThread < 4096; iThread++) 118 { 119 if (iThread != pTib->tib_ptib2->tib2_ultid 120 && !DosVerifyPidTid(pPib->pib_ulpid, iThread)) 121 break; 122 } 123 if (iThread >= 4096) 124 { /* No other threads! */ 125 ULONG ul; 126 DosWrite((HFILE)2/*stderr*/, "\r\n!!!deadlock!!!\r\r", 18, &ul); 127 __asm__ __volatile__("movl $0xdead10cc, %%eax; movl $0xdead10cc, %%edx; movl %0, %%ecx; int $3" : : "m" (sem) : "%eax", "%edx", "%ecx"); 128 rc = ERROR_SEM_OWNER_DIED; 129 break; 130 } 131 } 132 } while (rc == ERROR_TIMEOUT); 135 if (rc != ERROR_TIMEOUT) 136 break; 137 /* 138 * Deadlock detection - check if owner is around. 139 */ 140 unsigned Owner = sem->Owner; 141 if (!Owner) 142 break; 143 rc = DosVerifyPidTid(Owner & 0xffff, Owner >> 16); 144 if (rc) 145 { 146 __fmutex_deadlock(sem, "Owner died!"); 147 rc = ERROR_SEM_OWNER_DIED; 148 break; 149 } 150 } 133 151 FS_RESTORE(); 134 152 if (rc != 0) … … 137 155 } 138 156 157 unsigned __fmutex_request_internal_must_complete(_fmutex *sem, unsigned flags) 158 { 159 LIBCLOG_ENTER("sem=%p{.pszDesc=%s} flags=%#x\n", (void *)sem, sem->pszDesc, flags); 160 int rc; 161 ULONG ulNesting = 0; 162 FS_VAR(); 163 164 if (sem->fs == _FMS_UNINIT) 165 { 166 LIBC_ASSERTM_FAILED("Invalid handle, fs == _FMS_UNINIT\n"); 167 LIBCLOG_RETURN_UINT(ERROR_INVALID_HANDLE); 168 } 169 170 FS_SAVE_LOAD(); 171 DosEnterMustComplete(&ulNesting); 172 if (flags & _FMR_NOWAIT) 173 { 174 if (__cxchg(&sem->fs, _FMS_OWNED_HARD) == _FMS_AVAILABLE) 175 { 176 __atomic_xchg(&sem->Owner, fibGetTidPid()); 177 FS_RESTORE(); 178 LIBCLOG_RETURN_UINT(0); 179 } 180 DosExitMustComplete(&ulNesting); 181 FS_RESTORE(); 182 LIBCLOG_RETURN_UINT(ERROR_MUTEX_OWNED); 183 } 184 185 for (;;) 186 { 187 ULONG ulCount; 188 rc = DosResetEventSem(sem->hev, &ulCount); 189 if (rc != 0 && rc != ERROR_ALREADY_RESET) 190 { 191 DosExitMustComplete(&ulNesting); 192 FS_RESTORE(); 193 LIBCLOG_RETURN_UINT(rc); 194 } 195 if (__cxchg(&sem->fs, _FMS_OWNED_HARD) == _FMS_AVAILABLE) 196 { 197 __atomic_xchg(&sem->Owner, fibGetTidPid()); 198 FS_RESTORE(); 199 LIBCLOG_RETURN_UINT(0); 200 } 201 if (sem->Owner == fibGetTidPid()) 202 { 203 DosExitMustComplete(&ulNesting); 204 __fmutex_deadlock(sem, "Recursive mutex!"); 205 FS_RESTORE(); 206 LIBCLOG_RETURN_UINT(-1); 207 } 208 209 for (;;) 210 { 211 DosExitMustComplete(&ulNesting); 212 rc = DosWaitEventSem(sem->hev, sem->flags & _FMC_SHARED ? SEM_INDEFINITE_WAIT : 3000); 213 DosEnterMustComplete(&ulNesting); 214 if (rc == ERROR_INTERRUPT) 215 { 216 /* 217 * An interrupt occured, this might be a bug in the wait, or 218 * more likely someone is killing us. If we're dying/exiting or 219 * something along those lines, we return to the caller no matter 220 * what flags it specified. 221 */ 222 if (!(flags & _FMR_IGNINT)) 223 break; 224 if (fibIsInExit()) 225 break; 226 rc = ERROR_TIMEOUT; 227 } 228 if (rc != ERROR_TIMEOUT) 229 break; 230 /* 231 * Deadlock detection - check if owner is around. 232 */ 233 unsigned Owner = sem->Owner; 234 if (!Owner) 235 break; 236 rc = DosVerifyPidTid(Owner & 0xffff, Owner >> 16); 237 if (rc) 238 { 239 DosExitMustComplete(&ulNesting); 240 __fmutex_deadlock(sem, "Owner died!"); 241 rc = ERROR_SEM_OWNER_DIED; 242 DosEnterMustComplete(&ulNesting); 243 break; 244 } 245 } 246 FS_RESTORE(); 247 if (rc != 0) 248 { 249 DosExitMustComplete(&ulNesting); 250 FS_RESTORE(); 251 LIBCLOG_RETURN_UINT(rc); 252 } 253 } 254 } 255 256 257 static void __fmutex_deadlock(_fmutex *pSem, const char *pszMsg) 258 { 259 ULONG ul; 260 static const char szMsg[] = "\r\n!!!deadlock!!! "; 261 DosWrite(2, szMsg, sizeof(szMsg), &ul); 262 if (pSem->pszDesc) 263 { 264 DosWrite(2, pSem->pszDesc, strlen(pSem->pszDesc), &ul); 265 DosWrite(2, " ", 1, &ul); 266 } 267 if (pszMsg) 268 DosWrite(2, pszMsg, strlen(pszMsg), &ul); 269 static const char szNewLine[] = "\r\n"; 270 DosWrite(2, szNewLine, sizeof(szNewLine), &ul); 271 __asm__ __volatile__("movl $0xdead10cc, %%eax; movl $0xdead10cc, %%edx; movl %0, %%ecx; int $3" : : "m" (pSem) : "%eax", "%edx", "%ecx"); 272 } 273 274 unsigned __fmutex_release_internal_must_complete(_fmutex *sem) 275 { 276 ULONG ulNesting; 277 __atomic_xchg(&sem->Owner, 0); 278 signed char fs = __cxchg(&sem->fs, _FMS_AVAILABLE); 279 if (fs != _FMS_OWNED_HARD) 280 { 281 FS_VAR_SAVE_LOAD(); 282 DosExitMustComplete(&ulNesting); 283 FS_RESTORE(); 284 return 0; 285 } 286 else 287 { 288 int rc = __fmutex_release_internal (sem); 289 FS_VAR_SAVE_LOAD(); 290 DosExitMustComplete(&ulNesting); 291 FS_RESTORE(); 292 return rc; 293 } 294 } 139 295 140 296 unsigned __fmutex_release_internal(_fmutex *sem) 141 297 { 142 LIBCLOG_ENTER("sem=%p \n", (void *)sem);298 LIBCLOG_ENTER("sem=%p{.pszDesc=%s}\n", (void *)sem, sem->pszDesc); 143 299 unsigned rc; 144 300 FS_VAR(); … … 204 360 { 205 361 LIBCLOG_ENTER("sem=%p\n", (void *)sem); 206 sem->fs = _FMS_AVAILABLE;207 362 sem->hev = 0; 363 sem->fs = _FMS_AVAILABLE; 364 sem->flags = _FMC_DUMMY; 365 sem->Owner = 0; 366 sem->pszDesc = "dummy"; 208 367 LIBCLOG_RETURN_VOID(); 209 368 } 369 -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/process/fmutex2.c
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1660 r1661 2 2 3 3 #include "libc-alias.h" 4 #include <os2emx.h> 4 5 #include <stdlib.h> 6 #include <string.h> 5 7 #include <sys/builtin.h> 6 8 #include <sys/fmutex.h> … … 17 19 { 18 20 LIBC_ASSERT_FAILED(); 19 abort();21 _fmutex_abort(NULL, "checked close"); 20 22 } 21 23 LIBCLOG_RETURN_VOID(); … … 29 31 { 30 32 LIBC_ASSERT_FAILED(); 31 abort(); 33 _fmutex_abort(NULL, "checked create"); 34 } 35 LIBCLOG_RETURN_VOID(); 36 } 37 38 void _fmutex_checked_create2(_fmutex *sem, unsigned flags, const char *pszDesc) 39 { 40 LIBCLOG_ENTER("sem=%p flags=%#x pszDesc=%s\n", sem, flags, pszDesc); 41 if (_fmutex_create2(sem, flags, pszDesc) != 0) 42 { 43 LIBC_ASSERT_FAILED(); 44 _fmutex_abort(NULL, "checked create2"); 32 45 } 33 46 LIBCLOG_RETURN_VOID(); … … 41 54 { 42 55 LIBC_ASSERT_FAILED(); 43 abort();56 _fmutex_abort(sem, "open"); 44 57 } 45 58 LIBCLOG_RETURN_VOID(); 46 59 } 60 61 void _fmutex_abort(_fmutex *pSem, const char *pszMsg) 62 { 63 ULONG ul; 64 static const char szMsg1[] = "\r\n_fmutex operation failed: "; 65 DosWrite(2, szMsg1, sizeof(szMsg1), &ul); 66 if (pSem && pSem->pszDesc) 67 { 68 DosWrite(2, pSem->pszDesc, strlen(pSem->pszDesc), &ul); 69 DosWrite(2, " ", 1, &ul); 70 } 71 if (pszMsg) 72 DosWrite(2, pszMsg, strlen(pszMsg), &ul); 73 74 static const char szMsg2[] = "\r\n"; 75 DosWrite(2, szMsg2, sizeof(szMsg2), &ul); 76 77 abort(); 78 } 79 -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/DosEx.c
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1660 r1661 725 725 726 726 /* 727 * Figure out the curren tid.727 * Figure out the current tid. 728 728 */ 729 729 FS_SAVE_LOAD(); -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/__init.c
-
Property cvs2svn:cvs-rev
changed from
1.19
to1.20
r1660 r1661 29 29 #include <InnoTekLIBC/sharedpm.h> 30 30 #include <InnoTekLIBC/backend.h> 31 #include <InnoTekLIBC/FastInfoBlocks.h> 31 32 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_INITTERM 32 33 #include <InnoTekLIBC/logstrict.h> … … 177 178 } * pStackFrame; 178 179 int rc; 179 PTIB ptib;180 PPIB ppib;181 180 int cb; 182 181 … … 189 188 190 189 __libc_HeapEndVoting(); 191 192 193 /*194 * Get ptib and ppib again, in case __init() has already been called for a DLL.195 */196 /** @todo replace by fast info block code. */197 rc = DosGetInfoBlocks(&ptib, &ppib);198 if (rc != 0)199 goto failure;200 190 201 191 /* … … 205 195 * Redo the parsing, but setup argv now. 206 196 */ 207 cb = parse_args( ppib->pib_pchcmd, NULL, NULL);197 cb = parse_args(fibGetCmdLine(), NULL, NULL); 208 198 cb += (argc + 1) * sizeof (char *) + sizeof (struct stackframe); 209 199 cb = (cb + 15) & ~15; … … 215 205 pStackFrame->argc = argc; 216 206 pStackFrame->argv = &pStackFrame->apszArg[0]; 217 parse_args( ppib->pib_pchcmd, pStackFrame->argv, (char*)&pStackFrame->argv[argc + 1]);207 parse_args(fibGetCmdLine(), pStackFrame->argv, (char*)&pStackFrame->argv[argc + 1]); 218 208 pStackFrame->argv[argc] = NULL; 219 209 -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/__initdll.c
-
Property cvs2svn:cvs-rev
changed from
1.19
to1.20
r1660 r1661 39 39 #include <InnoTekLIBC/libc.h> 40 40 #include <InnoTekLIBC/backend.h> 41 #include <InnoTekLIBC/FastInfoBlocks.h> 41 42 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_INITTERM 42 43 #include <InnoTekLIBC/logstrict.h> … … 93 94 ULONG aul[2]; 94 95 int rc; 95 PTIB ptib;96 PPIB ppib;97 96 __LIBC_PSPMPROCESS pSelf; 98 97 … … 113 112 return 0; 114 113 fInitialized = 1; 114 115 /* 116 * Init fast infoblocks. 117 */ 118 rc = __libc_back_fibInit(0); 119 if (rc) 120 return -1; 115 121 116 122 /* … … 136 142 * and ppib. 137 143 */ 138 /** @todo This must be replaced by the fast info block code from Odin/kLib. */ 139 rc = DosGetInfoBlocks(&ptib, &ppib); 140 if (rc != 0) 141 return -1; 142 _sys_pid = ppib->pib_ulpid; 143 _sys_ppid = ppib->pib_ulppid; 144 _sys_pid = fibGetPid(); 145 _sys_ppid = fibGetPPid(); 144 146 145 147 /* 146 148 * Initialize the heap semaphores. 147 149 */ 148 if (_fmutex_create (&_sys_heap_fmutex, 0) != 0)149 return -1; 150 if (_fmutex_create (&_sys_gmtxHimem, 0) != 0)151 return -1; 152 if (_fmutex_create (&__libc_gmtxExec, 0) != 0)150 if (_fmutex_create2(&_sys_heap_fmutex, 0, "LIBC SYS Heap Mutex") != 0) 151 return -1; 152 if (_fmutex_create2(&_sys_gmtxHimem, 0, "LIBC SYS Highmem Mutex") != 0) 153 return -1; 154 if (_fmutex_create2(&__libc_gmtxExec, 0, "LIBC SYS Exec Mutex") != 0) 153 155 return -1; 154 156 … … 166 168 * Setup environment (org_environ and _STD(environ)) 167 169 */ 168 rc = _sys_init_environ( ppib->pib_pchenv);170 rc = _sys_init_environ(fibGetEnv()); 169 171 if (rc) 170 172 { … … 215 217 * Get current time for clock() for use as process startup time. 216 218 */ 217 _sys_ get_clock(&_sys_clock0_ms);219 _sys_clock0_ms = fibGetMsCount(); 218 220 return 0; 219 221 } … … 226 228 void _sys_get_clock(unsigned long *pms) 227 229 { 228 ULONG val_ms; 229 FS_VAR(); 230 231 FS_SAVE_LOAD(); 232 DosQuerySysInfo(QSV_MS_COUNT, QSV_MS_COUNT, &val_ms, sizeof(val_ms)); 233 FS_RESTORE(); 234 *pms = val_ms; 230 *pms = fibGetMsCount(); 235 231 } 236 232 … … 298 294 _sys_pid = pForkHandle->pidChild; 299 295 _sys_ppid = pForkHandle->pidParent; 296 __libc_back_fibInit(1); 297 _sys_clock0_ms = fibGetMsCount(); 300 298 rc = 0; 301 299 break; -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/b_processWait.c
-
Property cvs2svn:cvs-rev
changed from
1.4
to1.5
r1660 r1661 48 48 #include <InnoTekLIBC/sharedpm.h> 49 49 #include <InnoTekLIBC/backend.h> 50 #include <InnoTekLIBC/FastInfoBlocks.h> 50 51 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_BACK_PROCESS 51 52 #include <InnoTekLIBC/logstrict.h> … … 758 759 FS_VAR(); 759 760 FS_SAVE_LOAD(); 760 PPIB pPib;761 PTIB pTib;762 DosGetInfoBlocks(&pTib, &pPib);763 761 int rc = waitSemRequest(0); 764 762 if (rc) … … 920 918 */ 921 919 if ( cIterations >= 1 922 && (pPib->pib_flstatus & (0x40/*dying*/ | 0x04/*exiting all*/ | 0x02/*Exiting Thread 1*/ | 0x01/*ExitList */)) 923 ) 924 LIBCLOG_RETURN_MSG(-EDEADLK, "%d (-EDEADLK) pib_flstatus=%#lx\n", -EDEADLK, pPib->pib_flstatus); 920 && fibIsInExit()) 921 LIBCLOG_RETURN_MSG(-EDEADLK, "%d (-EDEADLK) pib_flstatus=%#x\n", -EDEADLK, (unsigned)fibGetProcessStatus()); 925 922 rc = DosWaitEventSem(ghevWait, 30*1000); 926 923 if (rc == ERROR_INTERRUPT) -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/b_threadInit.c
-
Property cvs2svn:cvs-rev
changed from
1.7
to1.8
r1660 r1661 29 29 *******************************************************************************/ 30 30 #include "libc-alias.h" 31 #define INCL_DOSEXCEPTIONS 32 #define INCL_FSMACROS 31 33 #include <os2emx.h> 32 34 #include <sys/signal.h> … … 43 45 pThrd->b.sys.fd.cFiles = 0; 44 46 45 /* 46 * Gain exclusive access to the signal stuff. 47 */ 48 int rc = __libc_back_signalSemRequest(); 47 if (pParentThrd && pParentThrd->tid) 48 { 49 /* 50 * We don't mess with the signal semaphore here because that *will* 51 * cause deadlocks. So to protect ourselves against signals 52 * we'll simply enter a must complete section while accessing the 53 * variables. This naturally assumes that WE are the parent! 54 */ 55 FS_VAR_SAVE_LOAD(); 56 ULONG ulNesting = 0; 57 DosEnterMustComplete(&ulNesting); 49 58 50 /* 51 * Copy signal stuff. 52 */ 53 if (pParentThrd) 54 { 59 /* 60 * Copy signal stuff. 61 */ 55 62 pThrd->SigSetBlocked = pParentThrd->SigSetBlocked; 56 63 if (pParentThrd->fSigSetBlockedOld) … … 59 66 pThrd->fSigSetBlockedOld = pParentThrd->fSigSetBlockedOld; 60 67 } 68 69 /* 70 * Exit must complete section. 71 */ 72 DosExitMustComplete(&ulNesting); 73 FS_RESTORE(); 61 74 } 62 63 /*64 * Release semaphore.65 */66 if (!rc)67 __libc_back_signalSemRelease();68 75 } 69 76 -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/execname.c
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1660 r1661 8 8 #include <string.h> 9 9 #include <emx/syscalls.h> 10 #include <InnoTekLIBC/FastInfoBlocks.h> 10 11 #include "syscalls.h" 11 12 … … 13 14 { 14 15 ULONG rc; 15 PTIB ptib;16 PPIB ppib;17 16 FS_VAR(); 18 17 … … 21 20 22 21 FS_SAVE_LOAD(); 23 rc = DosGetInfoBlocks (&ptib, &ppib); 24 if (rc != 0) 25 { 26 FS_RESTORE(); 27 *dst = 0; 28 return -1; 29 } 30 31 rc = DosQueryModuleName (ppib->pib_hmte, size, dst); 22 rc = DosQueryModuleName (fibGetExeHandle(), size, dst); 32 23 FS_RESTORE(); 33 24 if (rc != 0) -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/filehandles.c
-
Property cvs2svn:cvs-rev
changed from
1.15
to1.16
r1660 r1661 119 119 * Init the mutex which should've been a read write lock. 120 120 */ 121 rc = _fmutex_create (&gmtx, 0);121 rc = _fmutex_create2(&gmtx, 0, "LIBC SYS Filehandle Mutex"); 122 122 if (rc) 123 123 return rc; -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/fs.c
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1660 r1661 211 211 * Create the mutex. 212 212 */ 213 int rc = _fmutex_create (&__libc_gmtxFS, 0);213 int rc = _fmutex_create2(&__libc_gmtxFS, 0, "LIBC SYS FS Mutex"); 214 214 if (rc) 215 215 LIBCLOG_RETURN_INT(-1); -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/libcfork.c
-
Property cvs2svn:cvs-rev
changed from
1.10
to1.11
r1660 r1661 47 47 #include <InnoTekLIBC/fork.h> 48 48 #include <InnoTekLIBC/sharedpm.h> 49 #include <InnoTekLIBC/FastInfoBlocks.h> 49 50 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_FORK 50 51 #include <InnoTekLIBC/logstrict.h> … … 779 780 LIBCLOG_ENTER("pForkHandle=%p ppid=%p\n", (void *)pForkHandle, (void *)ppid); 780 781 __LIBC_PSPMPROCESS pProcessChild; 781 PTIB pTib;782 PPIB pPib;783 782 char szPgm[CCHMAXPATH]; 784 783 int rc; … … 807 806 */ 808 807 pForkHandle->enmStage = __LIBC_FORK_STAGE_EXEC; 809 DosGetInfoBlocks(&pTib, &pPib); 810 rc = DosQueryModuleName(pPib->pib_hmte, sizeof(szPgm), &szPgm[0]); 808 rc = DosQueryModuleName(fibGetExeHandle(), sizeof(szPgm), &szPgm[0]); 811 809 if (!rc) 812 810 { … … 814 812 RESULTCODES rsc = {0,0}; 815 813 #if 1 816 rc = DosExecPgm(szErr, sizeof(szErr), EXEC_ASYNCRESULT, (PCSZ) pPib->pib_pchcmd, NULL, &rsc, (PCSZ)&szPgm[0]);814 rc = DosExecPgm(szErr, sizeof(szErr), EXEC_ASYNCRESULT, (PCSZ)fibGetCmdLine(), NULL, &rsc, (PCSZ)&szPgm[0]); 817 815 #else /* debugging checks */ 818 816 rc = DosExecPgm(szErr, sizeof(szErr), EXEC_ASYNCRESULT, (PCSZ)"forking\0forking\0", NULL, &rsc, (PCSZ)&szPgm[0]); … … 842 840 else 843 841 { 844 LIBC_ASSERTM_FAILED("DosExecPgm(,,,%s,,,%s..) failed with rc=%d, szErr=%s\n", szPgm, pPib->pib_pchcmd, rc, szErr);842 LIBC_ASSERTM_FAILED("DosExecPgm(,,,%s,,,%s..) failed with rc=%d, szErr=%s\n", szPgm, fibGetCmdLine(), rc, szErr); 845 843 rc = -__libc_native2errno(rc); 846 844 } … … 848 846 else 849 847 { 850 LIBC_ASSERTM_FAILED("DosQueryModuleName(%lx,,) failed with rc=%d\n", pPib->pib_hmte, rc);848 LIBC_ASSERTM_FAILED("DosQueryModuleName(%lx,,) failed with rc=%d\n", fibGetExeHandle(), rc); 851 849 rc = -__libc_native2errno(rc); 852 850 } -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/signals.c
-
Property cvs2svn:cvs-rev
changed from
1.16
to1.17
r1660 r1661 82 82 #include <InnoTekLIBC/fork.h> 83 83 #include <InnoTekLIBC/backend.h> 84 #include <InnoTekLIBC/FastInfoBlocks.h> 84 85 #define __LIBC_LOG_GROUP __LIBC_LOG_GRP_BACK_SIGNAL 85 86 #include <InnoTekLIBC/logstrict.h> … … 701 702 LIBCLOG_ENTER("\n"); 702 703 int rc; 703 PPIB pPib;704 PTIB pTib;705 704 ULONG cNesting; 706 705 FS_VAR(); … … 710 709 { 711 710 HMTX hmtx = ghmtxSignals; 712 rc = DosRequestMutexSem(hmtx, SEM_INDEFINITE_WAIT);711 rc = DosRequestMutexSem(hmtx, 3000); 713 712 if (!rc) 714 713 break; 715 if (rc == ERROR_INTERRUPT )714 if (rc == ERROR_INTERRUPT || rc == ERROR_SEM_TIMEOUT || rc == ERROR_TIMEOUT) 716 715 { 717 716 /* … … 723 722 * lead to bad deadlocks. 724 723 */ 725 DosGetInfoBlocks(&pTib, &pPib); 726 if (pPib->pib_flstatus & (0x40/*dying*/ | 0x04/*exiting all*/ | 0x02/*Exiting Thread 1*/ | 0x01/* ExitList */)) 724 if (fibIsInExit()) 727 725 { 728 726 /* we're terminating, don't give a shit about signals now, just hurry up and die! */ -
Property cvs2svn:cvs-rev
changed from
-
trunk/src/emx/src/lib/sys/timebomb.c
-
Property cvs2svn:cvs-rev
changed from
1.5
to1.6
r1660 r1661 33 33 34 34 #ifdef TIMEBOMB 35 36 35 _CRT_INIT1(__libc_Timebomb) 36 #endif 37 37 38 38 void __libc_Timebomb(void) … … 65 65 } 66 66 67 #endif -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.