An x86-64 operating system built from xv6, now largely rewritten: SMP, a copy-on-write root filesystem (SchFS), PCI/USB/virtio drivers, a TTF rasteriser, and a Linux-numbered syscall ABI. No history before this point -- the tree was never under version control. This commit exists so the rename that follows has something to undo to.
24 lines
781 B
C
24 lines
781 B
C
#pragma once
|
|
#include "types.h"
|
|
|
|
#define T_DIR 1 // Directory
|
|
#define T_FILE 2 // File
|
|
#define T_DEV 3 // Device
|
|
#define T_SYMLINK 4 // Divesymlink
|
|
#define T_EXTENT 5 // bmap & itrunc
|
|
|
|
struct stat {
|
|
int32 type; // File type (T_DIR, T_FILE, or T_DEV)
|
|
int32 dev; // File system's disk device ID
|
|
uint64 ino; // Inode number
|
|
int32 nlink; // Number of hard links to file
|
|
uint32 pad; // Padding for 64-bit alignment
|
|
uint64 size; // Size of file in bytes
|
|
uint rwmode; // Permissions
|
|
uint supermode; // Mode
|
|
uint showmode; // Visiblity
|
|
uint atime; // Last access time
|
|
uint mtime; // Last modification time
|
|
uint ctime; // Last metadata-change time
|
|
uint addrs[12+3]; // Block Addresses
|
|
};
|