// sys/types.h -- primitive POSIX id/size typedefs for the GNO/ME runtime.
//
// Single source of truth for the scalar types struct stat and the file
// syscalls are built from.  Sizes are pinned to the GNO ABI (int == 16
// bits, long == 32 bits), so a struct laid out from these types byte-
// matches what the GNO kernel writes.  time_t lives in <time.h> (its own
// single source); it is not redefined here.
#ifndef _SYS_TYPES_H_
#define _SYS_TYPES_H_

typedef unsigned short dev_t;      // device number (2 bytes)
typedef unsigned long  ino_t;      // inode number (4 bytes)
typedef unsigned short uid_t;      // user id (2 bytes)
typedef unsigned short gid_t;      // group id (2 bytes)
typedef unsigned short mode_t;     // permission bits (2 bytes)
typedef unsigned short nlink_t;    // hard-link count (2 bytes)
typedef long           off_t;      // file offset / size (4 bytes)
typedef int            pid_t;      // process id (2 bytes)

#endif
