Rev 4874 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4874 | Rev 4921 | ||
---|---|---|---|
Line 124... | Line 124... | ||
124 | #include "local.h" |
124 | #include "local.h" |
Line 125... | Line 125... | ||
125 | 125 | ||
126 | FILE * |
126 | FILE * |
127 | _DEFUN(_fopen_r, (ptr, file, mode), |
127 | _DEFUN(_fopen_r, (ptr, file, mode), |
128 | struct _reent *ptr _AND |
128 | struct _reent *ptr _AND |
129 | _CONST char *file _AND |
129 | _CONST char *__restrict file _AND |
130 | _CONST char *mode) |
130 | _CONST char *__restrict mode) |
131 | { |
131 | { |
132 | register FILE *fp; |
132 | register FILE *fp; |
133 | register int f; |
133 | register int f; |
Line 138... | Line 138... | ||
138 | if ((fp = __sfp (ptr)) == NULL) |
138 | if ((fp = __sfp (ptr)) == NULL) |
139 | return NULL; |
139 | return NULL; |
Line 140... | Line 140... | ||
140 | 140 | ||
141 | if ((f = _open_r (ptr, file, oflags, 0666)) < 0) |
141 | if ((f = _open_r (ptr, file, oflags, 0666)) < 0) |
142 | { |
142 | { |
143 | __sfp_lock_acquire (); |
143 | _newlib_sfp_lock_start (); |
144 | fp->_flags = 0; /* release */ |
144 | fp->_flags = 0; /* release */ |
145 | #ifndef __SINGLE_THREAD__ |
145 | #ifndef __SINGLE_THREAD__ |
146 | __lock_close_recursive (fp->_lock); |
146 | __lock_close_recursive (fp->_lock); |
147 | #endif |
147 | #endif |
148 | __sfp_lock_release (); |
148 | _newlib_sfp_lock_end (); |
149 | return NULL; |
149 | return NULL; |
Line 150... | Line 150... | ||
150 | } |
150 | } |
Line 151... | Line 151... | ||
151 | 151 | ||
152 | _flockfile (fp); |
152 | _newlib_flockfile_start (fp); |
153 | 153 | ||
154 | fp->_file = f; |
154 | fp->_file = f; |
Line 165... | Line 165... | ||
165 | #ifdef __SCLE |
165 | #ifdef __SCLE |
166 | if (__stextmode (fp->_file)) |
166 | if (__stextmode (fp->_file)) |
167 | fp->_flags |= __SCLE; |
167 | fp->_flags |= __SCLE; |
168 | #endif |
168 | #endif |
Line 169... | Line 169... | ||
169 | 169 | ||
170 | _funlockfile (fp); |
170 | _newlib_flockfile_end (fp); |
171 | return fp; |
171 | return fp; |
Line 172... | Line 172... | ||
172 | } |
172 | } |