Subversion Repositories Kolibri OS

Rev

Rev 4874 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #ifndef _NEWLIB_STDIO_H
  2. #define _NEWLIB_STDIO_H
  3.  
  4. #include <sys/lock.h>
  5. #include <sys/reent.h>
  6.  
  7. /* Internal locking macros, used to protect stdio functions.  In the
  8.    general case, expand to nothing. Use __SSTR flag in FILE _flags to
  9.    detect if FILE is private to sprintf/sscanf class of functions; if
  10.    set then do nothing as lock is not initialised. */
  11. #if !defined(_flockfile)
  12. #ifndef __SINGLE_THREAD__
  13. #  define _flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock))
  14. #else
  15. #  define _flockfile(fp)        (_CAST_VOID 0)
  16. #endif
  17. #endif
  18.  
  19. #if !defined(_funlockfile)
  20. #ifndef __SINGLE_THREAD__
  21. #  define _funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock))
  22. #else
  23. #  define _funlockfile(fp)      (_CAST_VOID 0)
  24. #endif
  25. #endif
  26.  
  27. #endif /* _NEWLIB_STDIO_H */
  28.