Initial commit of current C compiler sources, partly rebranded but not yet properly cleaned up!

This commit is contained in:
2025-06-04 03:45:05 +10:00
parent 6e217b2669
commit 7f74463109
33 changed files with 18135 additions and 0 deletions

50
fakelibc/sys/stat.h Normal file
View File

@ -0,0 +1,50 @@
#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