os/ossrv/genericopenlibs/cstdlib/LINCSYS/STAT.H
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/ossrv/genericopenlibs/cstdlib/LINCSYS/STAT.H	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,133 @@
     1.4 +/*
     1.5 +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.6 +* All rights reserved.
     1.7 +* This component and the accompanying materials are made available
     1.8 +* under the terms of "Eclipse Public License v1.0"
     1.9 +* which accompanies this distribution, and is available
    1.10 +* at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.11 +*
    1.12 +* Initial Contributors:
    1.13 +* Nokia Corporation - initial contribution.
    1.14 +*
    1.15 +* Contributors:
    1.16 +*
    1.17 +* Description:
    1.18 +*
    1.19 +*/
    1.20 +
    1.21 +
    1.22 +
    1.23 +/**
    1.24 + @file
    1.25 + @publishedAll
    1.26 + @released
    1.27 +*/
    1.28 +
    1.29 +#ifndef	_SYS_STAT_H
    1.30 +#define	_SYS_STAT_H
    1.31 +
    1.32 +#ifdef __cplusplus
    1.33 +extern "C" {
    1.34 +#endif
    1.35 +
    1.36 +#include <_ansi.h>
    1.37 +#include <time.h>
    1.38 +#include <sys/types.h>
    1.39 +
    1.40 +struct	stat 
    1.41 +{
    1.42 +  dev_t		st_dev;
    1.43 +  ino_t		st_ino;
    1.44 +  mode_t	st_mode;
    1.45 +  short		st_nlink;
    1.46 +  uid_t		st_uid;
    1.47 +  gid_t		st_gid;
    1.48 +  dev_t		st_rdev;
    1.49 +  off_t		st_size;
    1.50 +  /* SysV/sco doesn't have the rest... */
    1.51 +#ifdef __svr4__
    1.52 +  time_t	st_atime;
    1.53 +  time_t	st_mtime;
    1.54 +  time_t	st_ctime;
    1.55 +#else
    1.56 +  time_t	st_atime;
    1.57 +  int	st_spare1;
    1.58 +  time_t	st_mtime;
    1.59 +  int	st_spare2;
    1.60 +  time_t	st_ctime;
    1.61 +  int	st_spare3;
    1.62 +  long		st_blksize;
    1.63 +  long		st_blocks;
    1.64 +  long	st_spare4[2];
    1.65 +#endif
    1.66 +};
    1.67 +
    1.68 +#define	_IFMT		0170000	/* type of file */
    1.69 +#define		_IFDIR	0040000	/* directory */
    1.70 +#define		_IFCHR	0020000	/* character special */
    1.71 +#define		_IFBLK	0060000	/* block special */
    1.72 +#define		_IFREG	0100000	/* regular */
    1.73 +#define		_IFLNK	0120000	/* symbolic link */
    1.74 +#define		_IFSOCK	0140000	/* socket */
    1.75 +#define		_IFIFO	0010000	/* fifo */
    1.76 +
    1.77 +#define 	S_BLKSIZE  1024 /* size of a block */
    1.78 +
    1.79 +#define	S_ISUID		0004000	/* set user id on execution */
    1.80 +#define	S_ISGID		0002000	/* set group id on execution */
    1.81 +#ifndef	_POSIX_SOURCE
    1.82 +#define	S_ISVTX		0001000	/* save swapped text even after use */
    1.83 +#define	S_IREAD		0000400	/* read permission, owner */
    1.84 +#define	S_IWRITE 	0000200	/* write permission, owner */
    1.85 +#define	S_IEXEC		0000100	/* execute/search permission, owner */
    1.86 +
    1.87 +#define	S_ENFMT 	0002000	/* enforcement-mode locking */
    1.88 +
    1.89 +#define	S_IFMT		_IFMT
    1.90 +#define	S_IFDIR		_IFDIR
    1.91 +#define	S_IFCHR		_IFCHR
    1.92 +#define	S_IFBLK		_IFBLK
    1.93 +#define	S_IFREG		_IFREG
    1.94 +#define	S_IFLNK		_IFLNK
    1.95 +#define	S_IFSOCK	_IFSOCK
    1.96 +#define	S_IFIFO		_IFIFO
    1.97 +#endif	/* !_POSIX_SOURCE */
    1.98 +
    1.99 +#define	S_IRWXU 	0000700	/* rwx, owner */
   1.100 +#define		S_IRUSR	0000400	/* read permission, owner */
   1.101 +#define		S_IWUSR	0000200	/* write permission, owner */
   1.102 +#define		S_IXUSR	0000100	/* execute/search permission, owner */
   1.103 +#define	S_IRWXG		0000070	/* rwx, group */
   1.104 +#define		S_IRGRP	0000040	/* read permission, group */
   1.105 +#define		S_IWGRP	0000020	/* write permission, grougroup */
   1.106 +#define		S_IXGRP	0000010	/* execute/search permission, group */
   1.107 +#define	S_IRWXO		0000007	/* rwx, other */
   1.108 +#define		S_IROTH	0000004	/* read permission, other */
   1.109 +#define		S_IWOTH	0000002	/* write permission, other */
   1.110 +#define		S_IXOTH	0000001	/* execute/search permission, other */
   1.111 +
   1.112 +#define	S_ISBLK(m)	(((m)&_IFMT) == _IFBLK)
   1.113 +#define	S_ISCHR(m)	(((m)&_IFMT) == _IFCHR)
   1.114 +#define	S_ISDIR(m)	(((m)&_IFMT) == _IFDIR)
   1.115 +#define	S_ISFIFO(m)	(((m)&_IFMT) == _IFIFO)
   1.116 +#define	S_ISREG(m)	(((m)&_IFMT) == _IFREG)
   1.117 +#define	S_ISLNK(m)	(((m)&_IFMT) == _IFLNK)
   1.118 +#define	S_ISSOCK(m)	(((m)&_IFMT) == _IFSOCK)
   1.119 +
   1.120 +IMPORT_C int	chmod	( const char *_path, mode_t _mode );
   1.121 +IMPORT_C int	wchmod	( const wchar_t *_path, mode_t _mode );
   1.122 +IMPORT_C int	fstat	( int _fd, struct stat *_sbuf );
   1.123 +IMPORT_C int	mkdir	( const char *_path, mode_t _mode );
   1.124 +IMPORT_C int	wmkdir	( const wchar_t *_path, mode_t _mode );
   1.125 +IMPORT_C int	stat	( const char *_path, struct stat *_sbuf );
   1.126 +IMPORT_C int	wstat	( const wchar_t *_path, struct stat *_sbuf );
   1.127 +IMPORT_C char*	realpath (const char *_path, char *resolved);
   1.128 +IMPORT_C wchar_t*	wrealpath (const wchar_t * _path, wchar_t * resolved);
   1.129 +
   1.130 +int	mkfifo	( char *_path, mode_t _mode );
   1.131 +mode_t	umask	( mode_t _mask );
   1.132 +
   1.133 +#ifdef __cplusplus
   1.134 +}
   1.135 +#endif
   1.136 +#endif /* _SYS_STAT_H */