1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-09 01:07:16 +01:00
SqMod/vendor/POCO/Foundation/wcelibcex-1.0/src/wce_stat.h
Sandu Liviu Catalin 4a6bfc086c Major plugin refactor and cleanup.
Switched to POCO library for unified platform/library interface.
Deprecated the external module API. It was creating more problems than solving.
Removed most built-in libraries in favor of system libraries for easier maintenance.
Cleaned and secured code with help from static analyzers.
2021-01-30 08:51:39 +02:00

143 lines
4.8 KiB
C

/*
* $Id: wce_stat.h,v 1.2 2006/04/09 16:48:18 mloskot Exp $
*
* sys/stat.h - data returned by the stat() function
*
* Created by Mateusz Loskot (mateusz@loskot.net)
*
* Copyright (c) 2006 Taxus SI Ltd.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom
* the Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
* THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* MIT License:
* http://opensource.org/licenses/mit-license.php
*
* Contact:
* Taxus SI Ltd.
* http://www.taxussi.com.pl
*
*/
#ifndef WCEEX_STAT_H
#define WCEEX_STAT_H 1
#if !defined(_WIN32_WCE)
# error "Only Winddows CE target is supported!"
#endif
#include <wce_types.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifndef _STAT_T_DEFINED
struct stat
{
/* Drive number of the disk containing the file (same as st_rdev). */
unsigned int st_dev;
/*
* Number of the information node (the inode) for the file (UNIX-specific).
* On UNIX file systems, the inode describes the file date and time stamps, permissions, and content.
* When files are hard-linked to one another, they share the same inode.
* The inode, and therefore st_ino, has no meaning in the FAT, HPFS, or NTFS file systems.
*/
unsigned short st_ino;
/*
* Bit mask for file-mode information. The _S_IFDIR bit is set if path specifies a directory;
* the _S_IFREG bit is set if path specifies an ordinary file or a device.
* User read/write bits are set according to the file's permission mode;
* user execute bits are set according to the filename extension.
*/
unsigned short st_mode;
/* Always 1 on non-NTFS file systems. */
short st_nlink;
/*
* Numeric identifier of user who owns file (UNIX-specific).
* This field will always be zero on Windows NT systems.
* A redirected file is classified as a Windows NT file.
*/
short st_uid;
/*
* Numeric identifier of group that owns file (UNIX-specific).
* This field will always be zero on Windows NT systems.
* A redirected file is classified as a Windows NT file
*/
short st_gid;
/* Drive number of the disk containing the file (same as st_dev) */
unsigned int st_rdev;
long st_size; /* Size of the file in bytes */
time_t st_atime; /* Time of last access of file */
time_t st_mtime; /* Time of last modification of file */
time_t st_ctime; /* Time of creation of file */
};
# define _STAT_T_DEFINED
#endif
/* Encoding of the file mode. */
#define __S_IFMT 0170000 /* These bits determine file type. */
/* File types. */
#define S_IFDIR 0040000 /* Directory. */
#define S_IFCHR 0020000 /* Character device. */
#define S_IFREG 0100000 /* Regular file. */
#define S_IFIFO 0010000 /* FIFO. */
/* Permission bits */
#define S_ISUID 04000 /* Set user ID on execution. */
#define S_ISGID 02000 /* Set group ID on execution. */
#define S_IREAD 0000400 /* Read permission, owner */
#define S_IWRITE 0000200 /* Write permission, owner */
#define S_IEXEC 0000100 /* Execute/search permission, owner */
/* Macros to test file types masks.*/
#define __S_ISTYPE(mode, mask) (((mode) & __S_IFMT) == (mask))
#define S_ISDIR(mode) __S_ISTYPE((mode), S_IFDIR) /* Test for a directory. */
#define S_ISCHR(mode) __S_ISTYPE((mode), S_IFCHR) /* Test for a character special file. */
#define S_ISREG(mode) __S_ISTYPE((mode), S_IFREG) /* Test for a regular file. */
#define S_ISFIFO(mode) __S_ISTYPE((mode), S_IFIFO) /* Test for a pipe or FIFO special file. */
/*
* File functions declarations.
*/
int wceex_stat(const char *filename, struct stat *buf);
/* XXX - mloskot - int wceex_fstat(int filedes, struct stat *buf); */
int wceex_mkdir(const char *filename);
int wceex_rmdir(const char *filename);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* #ifndef WCEEX_STAT_H */