epoc32/include/libc/sys/stat.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
equal deleted inserted replaced
1:666f914201fb 2:2fe1408b6811
     1 stat.h
     1 /*
       
     2 * Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 
       
    21 
       
    22 
       
    23 /**
       
    24  @file
       
    25  @publishedAll
       
    26  @released
       
    27 */
       
    28 
       
    29 #ifndef	_SYS_STAT_H
       
    30 #define	_SYS_STAT_H
       
    31 
       
    32 #ifdef __cplusplus
       
    33 extern "C" {
       
    34 #endif
       
    35 
       
    36 #include <_ansi.h>
       
    37 #include <time.h>
       
    38 #include <sys/types.h>
       
    39 
       
    40 struct	stat 
       
    41 {
       
    42   dev_t		st_dev;
       
    43   ino_t		st_ino;
       
    44   mode_t	st_mode;
       
    45   short		st_nlink;
       
    46   uid_t		st_uid;
       
    47   gid_t		st_gid;
       
    48   dev_t		st_rdev;
       
    49   off_t		st_size;
       
    50   /* SysV/sco doesn't have the rest... */
       
    51 #ifdef __svr4__
       
    52   time_t	st_atime;
       
    53   time_t	st_mtime;
       
    54   time_t	st_ctime;
       
    55 #else
       
    56   time_t	st_atime;
       
    57   int	st_spare1;
       
    58   time_t	st_mtime;
       
    59   int	st_spare2;
       
    60   time_t	st_ctime;
       
    61   int	st_spare3;
       
    62   long		st_blksize;
       
    63   long		st_blocks;
       
    64   long	st_spare4[2];
       
    65 #endif
       
    66 };
       
    67 
       
    68 #define	_IFMT		0170000	/* type of file */
       
    69 #define		_IFDIR	0040000	/* directory */
       
    70 #define		_IFCHR	0020000	/* character special */
       
    71 #define		_IFBLK	0060000	/* block special */
       
    72 #define		_IFREG	0100000	/* regular */
       
    73 #define		_IFLNK	0120000	/* symbolic link */
       
    74 #define		_IFSOCK	0140000	/* socket */
       
    75 #define		_IFIFO	0010000	/* fifo */
       
    76 
       
    77 #define 	S_BLKSIZE  1024 /* size of a block */
       
    78 
       
    79 #define	S_ISUID		0004000	/* set user id on execution */
       
    80 #define	S_ISGID		0002000	/* set group id on execution */
       
    81 #ifndef	_POSIX_SOURCE
       
    82 #define	S_ISVTX		0001000	/* save swapped text even after use */
       
    83 #define	S_IREAD		0000400	/* read permission, owner */
       
    84 #define	S_IWRITE 	0000200	/* write permission, owner */
       
    85 #define	S_IEXEC		0000100	/* execute/search permission, owner */
       
    86 
       
    87 #define	S_ENFMT 	0002000	/* enforcement-mode locking */
       
    88 
       
    89 #define	S_IFMT		_IFMT
       
    90 #define	S_IFDIR		_IFDIR
       
    91 #define	S_IFCHR		_IFCHR
       
    92 #define	S_IFBLK		_IFBLK
       
    93 #define	S_IFREG		_IFREG
       
    94 #define	S_IFLNK		_IFLNK
       
    95 #define	S_IFSOCK	_IFSOCK
       
    96 #define	S_IFIFO		_IFIFO
       
    97 #endif	/* !_POSIX_SOURCE */
       
    98 
       
    99 #define	S_IRWXU 	0000700	/* rwx, owner */
       
   100 #define		S_IRUSR	0000400	/* read permission, owner */
       
   101 #define		S_IWUSR	0000200	/* write permission, owner */
       
   102 #define		S_IXUSR	0000100	/* execute/search permission, owner */
       
   103 #define	S_IRWXG		0000070	/* rwx, group */
       
   104 #define		S_IRGRP	0000040	/* read permission, group */
       
   105 #define		S_IWGRP	0000020	/* write permission, grougroup */
       
   106 #define		S_IXGRP	0000010	/* execute/search permission, group */
       
   107 #define	S_IRWXO		0000007	/* rwx, other */
       
   108 #define		S_IROTH	0000004	/* read permission, other */
       
   109 #define		S_IWOTH	0000002	/* write permission, other */
       
   110 #define		S_IXOTH	0000001	/* execute/search permission, other */
       
   111 
       
   112 #define	S_ISBLK(m)	(((m)&_IFMT) == _IFBLK)
       
   113 #define	S_ISCHR(m)	(((m)&_IFMT) == _IFCHR)
       
   114 #define	S_ISDIR(m)	(((m)&_IFMT) == _IFDIR)
       
   115 #define	S_ISFIFO(m)	(((m)&_IFMT) == _IFIFO)
       
   116 #define	S_ISREG(m)	(((m)&_IFMT) == _IFREG)
       
   117 #define	S_ISLNK(m)	(((m)&_IFMT) == _IFLNK)
       
   118 #define	S_ISSOCK(m)	(((m)&_IFMT) == _IFSOCK)
       
   119 
       
   120 IMPORT_C int	chmod	( const char *_path, mode_t _mode );
       
   121 IMPORT_C int	wchmod	( const wchar_t *_path, mode_t _mode );
       
   122 IMPORT_C int	fstat	( int _fd, struct stat *_sbuf );
       
   123 IMPORT_C int	mkdir	( const char *_path, mode_t _mode );
       
   124 IMPORT_C int	wmkdir	( const wchar_t *_path, mode_t _mode );
       
   125 IMPORT_C int	stat	( const char *_path, struct stat *_sbuf );
       
   126 IMPORT_C int	wstat	( const wchar_t *_path, struct stat *_sbuf );
       
   127 IMPORT_C char*	realpath (const char *_path, char *resolved);
       
   128 IMPORT_C wchar_t*	wrealpath (const wchar_t * _path, wchar_t * resolved);
       
   129 
       
   130 int	mkfifo	( char *_path, mode_t _mode );
       
   131 mode_t	umask	( mode_t _mask );
       
   132 
       
   133 #ifdef __cplusplus
       
   134 }
       
   135 #endif
       
   136 #endif /* _SYS_STAT_H */