home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / stat.h < prev    next >
C/C++ Source or Header  |  2004-01-30  |  4KB  |  148 lines

  1. #ifndef    _SYS_STAT_H
  2. #define    _SYS_STAT_H
  3.  
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7.  
  8. #include <_ansi.h>
  9. #include <time.h>
  10. #include <sys/types.h>
  11.  
  12. /* dj's stat defines _STAT_H_ */
  13. #ifndef _STAT_H_
  14.  
  15. /* It is intended that the layout of this structure not change when the
  16.    sizes of any of the basic types change (short, int, long) [via a compile
  17.    time option].  */
  18.  
  19. #ifdef __CYGWIN__
  20. #include <cygwin/stat.h>
  21. #ifdef _COMPILING_NEWLIB
  22. #define stat64 __stat64
  23. #endif
  24. #else
  25. struct    stat 
  26. {
  27.   dev_t        st_dev;
  28.   ino_t        st_ino;
  29.   mode_t    st_mode;
  30.   nlink_t    st_nlink;
  31.   uid_t        st_uid;
  32.   gid_t        st_gid;
  33.   dev_t        st_rdev;
  34.   off_t        st_size;
  35.   /* SysV/sco doesn't have the rest... But Solaris, eabi does.  */
  36. #if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__)
  37.   time_t    st_atime;
  38.   time_t    st_mtime;
  39.   time_t    st_ctime;
  40. #else
  41.   time_t    st_atime;
  42.   long        st_spare1;
  43.   time_t    st_mtime;
  44.   long        st_spare2;
  45.   time_t    st_ctime;
  46.   long        st_spare3;
  47.   long        st_blksize;
  48.   long        st_blocks;
  49.   long    st_spare4[2];
  50. #endif
  51. };
  52. #endif
  53.  
  54. #define    _IFMT        0170000    /* type of file */
  55. #define        _IFDIR    0040000    /* directory */
  56. #define        _IFCHR    0020000    /* character special */
  57. #define        _IFBLK    0060000    /* block special */
  58. #define        _IFREG    0100000    /* regular */
  59. #define        _IFLNK    0120000    /* symbolic link */
  60. #define        _IFSOCK    0140000    /* socket */
  61. #define        _IFIFO    0010000    /* fifo */
  62.  
  63. #define     S_BLKSIZE  1024 /* size of a block */
  64.  
  65. #define    S_ISUID        0004000    /* set user id on execution */
  66. #define    S_ISGID        0002000    /* set group id on execution */
  67. #ifndef    _POSIX_SOURCE
  68. #define    S_ISVTX        0001000    /* save swapped text even after use */
  69. #define    S_IREAD        0000400    /* read permission, owner */
  70. #define    S_IWRITE     0000200    /* write permission, owner */
  71. #define    S_IEXEC        0000100    /* execute/search permission, owner */
  72. #define    S_ENFMT     0002000    /* enforcement-mode locking */
  73.  
  74. #define    S_IFMT        _IFMT
  75. #define    S_IFDIR        _IFDIR
  76. #define    S_IFCHR        _IFCHR
  77. #define    S_IFBLK        _IFBLK
  78. #define    S_IFREG        _IFREG
  79. #define    S_IFLNK        _IFLNK
  80. #define    S_IFSOCK    _IFSOCK
  81. #define    S_IFIFO        _IFIFO
  82. #endif    /* !_POSIX_SOURCE */
  83.  
  84. #ifdef _WIN32
  85. /* The Windows header files define _S_ forms of these, so we do too
  86.    for easier portability.  */
  87. #define _S_IFMT        _IFMT
  88. #define _S_IFDIR    _IFDIR
  89. #define _S_IFCHR    _IFCHR
  90. #define _S_IFIFO    _IFIFO
  91. #define _S_IFREG    _IFREG
  92. #define _S_IREAD    0000400
  93. #define _S_IWRITE    0000200
  94. #define _S_IEXEC    0000100
  95. #endif
  96.  
  97. #define    S_IRWXU     (S_IRUSR | S_IWUSR | S_IXUSR)
  98. #define        S_IRUSR    0000400    /* read permission, owner */
  99. #define        S_IWUSR    0000200    /* write permission, owner */
  100. #define        S_IXUSR 0000100/* execute/search permission, owner */
  101. #define    S_IRWXG        (S_IRGRP | S_IWGRP | S_IXGRP)
  102. #define        S_IRGRP    0000040    /* read permission, group */
  103. #define        S_IWGRP    0000020    /* write permission, grougroup */
  104. #define        S_IXGRP 0000010/* execute/search permission, group */
  105. #define    S_IRWXO        (S_IROTH | S_IWOTH | S_IXOTH)
  106. #define        S_IROTH    0000004    /* read permission, other */
  107. #define        S_IWOTH    0000002    /* write permission, other */
  108. #define        S_IXOTH 0000001/* execute/search permission, other */
  109.  
  110. #define    S_ISBLK(m)    (((m)&_IFMT) == _IFBLK)
  111. #define    S_ISCHR(m)    (((m)&_IFMT) == _IFCHR)
  112. #define    S_ISDIR(m)    (((m)&_IFMT) == _IFDIR)
  113. #define    S_ISFIFO(m)    (((m)&_IFMT) == _IFIFO)
  114. #define    S_ISREG(m)    (((m)&_IFMT) == _IFREG)
  115. #define    S_ISLNK(m)    (((m)&_IFMT) == _IFLNK)
  116. #define    S_ISSOCK(m)    (((m)&_IFMT) == _IFSOCK)
  117.  
  118.  
  119. int    _EXFUN(chmod,( const char *__path, mode_t __mode ));
  120. int     _EXFUN(fchmod,(int __fd, mode_t __mode));
  121. int    _EXFUN(fstat,( int __fd, struct stat *__sbuf ));
  122. int    _EXFUN(mkdir,( const char *_path, mode_t __mode ));
  123. int    _EXFUN(mkfifo,( const char *__path, mode_t __mode ));
  124. int    _EXFUN(stat,( const char *__path, struct stat *__sbuf ));
  125. mode_t    _EXFUN(umask,( mode_t __mask ));
  126.  
  127. #if defined(__rtems__) || defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__)
  128. int    _EXFUN(lstat,( const char *__path, struct stat *__buf ));
  129. int    _EXFUN(mknod,( const char *__path, mode_t __mode, dev_t __dev ));
  130. #endif
  131.  
  132. /* Provide prototypes for most of the _<systemcall> names that are
  133.    provided in newlib for some compilers.  */
  134. #ifdef _COMPILING_NEWLIB
  135. int    _EXFUN(_fstat,( int __fd, struct stat *__sbuf ));
  136. int    _EXFUN(_stat,( const char *__path, struct stat *__sbuf ));
  137. #ifdef __LARGE64_FILES
  138. struct stat64;
  139. int    _EXFUN(_fstat64,( int __fd, struct stat64 *__sbuf ));
  140. #endif
  141. #endif
  142.  
  143. #endif /* !_STAT_H_ */
  144. #ifdef __cplusplus
  145. }
  146. #endif
  147. #endif /* _SYS_STAT_H */
  148.