Files
slcc/fakelibc/sys/stat.h

51 lines
1.2 KiB
C

#ifndef _FAKELIBC_SYS_STAT_H
#define _FAKELIBC_SYS_STAT_H
#include <time.h>
/* This is currently designed to match x86-64 definitions for Linux. They probably don't
* differ a lot across architectures (besides differences between 32-/64-bit builds)
* but the standard definitions on Linux are unusually cryptic, some of the typedefs
* involve 3 or more nested macros spread out across all sorts of includes, so using
* them as a reference feels a bit ridiculous.
*/
#define st_mtime st_mtim.tv_sec
#define st_atime st_atim.tv_sec
#define st_ctime st_ctim.tv_sec
typedef unsigned int ino_t;
typedef unsigned int mode_t;
typedef unsigned int uid_t;
typedef unsigned int gid_t;
typedef unsigned long dev_t;
typedef unsigned long nlink_t;
struct stat {
dev_t st_dev;
ino_t st_ino;
nlink_t st_nlink;
mode_t st_mode;
uid_t st_uid;
gid_t st_gid;
int __padding_A;
dev_t st_rdev;
long st_size;
long st_blocksize;
long st_blocks;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
long __reserved_A;
long __reserved_B;
long __reserved_C;
};
/* From ifndef at top of file: */
#endif