rpcsx/orbis-kernel/include/orbis/stat.hpp

47 lines
1.1 KiB
C++

#pragma once
#include "orbis-config.hpp"
#include "time.hpp"
namespace orbis {
struct Stat {
uint32_t dev; // inode's device
uint32_t ino; // inode's number
uint16_t mode; // inode protection mode
uint16_t nlink; // number of hard links
uint32_t uid; // user ID of the file's owner
uint32_t gid; // group ID of the file's group
uint32_t rdev; // device type
timespec atim; // time of last access
timespec mtim; // time of last data modification
timespec ctim; // time of last file status change
off_t size; // file size, in bytes
int64_t blocks; // blocks allocated for file
uint32_t blksize; // optimal blocksize for I/O
uint32_t flags; // user defined flags for file
uint32_t gen; // file generation number
int32_t lspare;
timespec birthtim; // time of file creation
};
struct Dirent {
uint32_t fileno;
uint16_t reclen;
uint8_t type;
uint8_t namlen;
char name[256];
};
enum {
kDtUnknown = 0,
kDtFifo = 1,
kDtChr = 2,
kDtDir = 4,
kDtBlk = 6,
kDtReg = 8,
kDtLnk = 10,
kDtSock = 12,
kDtWht = 14,
};
} // namespace orbis