summaryrefslogtreecommitdiff
path: root/kernel/includes/sys/stat.h
blob: 92bb67ea106d345574b3554d4e2fed983b918152 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef SYS_STAT_H
#define SYS_STAT_H
#include <sys/types.h>
#include <time.h>

#define STAT_REG 0
#define STAT_DIR 1

struct stat {
  dev_t st_dev;     // Device ID of device containing file.
  ino_t st_ino;     // File serial number.
  mode_t st_mode;   // Mode of file (see below).
  nlink_t st_nlink; // Number of hard links to the file.
  uid_t st_uid;     // User ID of file.
  gid_t st_gid;     // Group ID of file.
  dev_t st_rdev;    // Device ID (if file is character or block special).

  off_t st_size; // For regular files, the file size in bytes.
                 // For symbolic links, the length in bytes of the
                 // pathname contained in the symbolic link.
                 // For a shared memory object, the length in bytes.
                 // For a typed memory object, the length in bytes.
                 // For other file types, the use of this field is
                 // unspecified.

  struct timespec st_atim; // Last data access timestamp.
  struct timespec st_mtim; // Last data modification timestamp.
  struct timespec st_ctim; // Last file status change timestamp.

  blksize_t st_blksize; //  A file system-specific preferred I/O block size
                        // for this object. In some file system types, this
                        // may vary from file to file.

  blkcnt_t st_blocks; // Number of blocks allocated for this object.
};
#endif