mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2024-11-09 01:07:16 +01:00
4a6bfc086c
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.
143 lines
4.8 KiB
C
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 */
|