This section defines global identifiers and their values that are associated with interfaces contained in libc.
These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content.
These definitions are intended to supplement those provided in the referenced underlying specifications.
This specification uses ISO/IEC 9899 C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.
#define EDEADLOCK EDEADLK |
typedef long intmax_t;
typedef unsigned long uintptr_t;
typedef unsigned long uintmax_t;
typedef unsigned long uint64_t; |
#define LONG_MAX 0x7FFFFFFFFFFFFFFFL
#define ULONG_MAX 0xFFFFFFFFFFFFFFFFUL
#define CHAR_MAX 127
#define CHAR_MIN SCHAR_MIN |
typedef long __jmp_buf[8]; |
struct sigaction
{
union
{
sighandler_t _sa_handler;
void (*_sa_sigaction) (int, siginfo_t *, void *);
}
__sigaction_handler;
sigset_t sa_mask;
int sa_flags;
void (*sa_restorer) (void);
}
;
#define MINSIGSTKSZ 2048
#define SIGSTKSZ 8192
struct _fpxreg
{
unsigned short significand[4];
unsigned short exponent;
unsigned short padding[3];
}
;
struct _xmmreg
{
uint32_t element[4];
}
;
struct _fpstate
{
uint16_t cwd;
uint16_t swd;
uint16_t ftw;
uint16_t fop;
uint64_t rip;
uint64_t rdp;
uint32_t mxcsr;
uint32_t mxcr_mask;
struct _fpxreg _st[8];
struct _xmmreg _xmm[16];
uint32_t padding[24];
}
;
struct sigcontext
{
unsigned long r8;
unsigned long r9;
unsigned long r10;
unsigned long r11;
unsigned long r12;
unsigned long r13;
unsigned long r14;
unsigned long r15;
unsigned long rdi;
unsigned long rsi;
unsigned long rbp;
unsigned long rbx;
unsigned long rdx;
unsigned long rax;
unsigned long rcx;
unsigned long rsp;
unsigned long rip;
unsigned long eflags;
unsigned short cs;
unsigned short gs;
unsigned short fs;
unsigned short __pad0;
unsigned long err;
unsigned long trapno;
unsigned long oldmask;
unsigned long cr2;
struct _fpstate *fpstate;
unsigned long __reserved1[8];
}
; |
typedef long ptrdiff_t;
typedef unsigned long size_t; |
#define FIONREAD 0x541B
#define TIOCNOTTY 21538 |
struct ipc_perm
{
key_t __key;
uid_t uid;
gid_t gid;
uid_t cuid;
uid_t cgid;
unsigned short mode;
unsigned short __pad1;
unsigned short __seq;
unsigned short __pad2;
unsigned long __unused1;
unsigned long __unused2;
}
; |
#define MCL_CURRENT 1
#define MCL_FUTURE 2 |
typedef unsigned long msgqnum_t;
typedef unsigned long msglen_t;
struct msqid_ds
{
struct ipc_perm msg_perm;
time_t msg_stime;
time_t msg_rtime;
time_t msg_ctime;
unsigned long __msg_cbytes;
msgqnum_t msg_qnum;
msglen_t msg_qbytes;
pid_t msg_lspid;
pid_t msg_lrpid;
unsigned long __unused4;
unsigned long __unused5;
}
; |
struct semid_ds
{
struct ipc_perm sem_perm;
time_t sem_otime;
unsigned long __unused1;
time_t sem_ctime;
unsigned long __unused2;
unsigned long sem_nsems;
unsigned long __unused3;
unsigned long __unused4;
}
; |
#define SHMLBA (__getpagesize())
typedef unsigned long shmatt_t;
struct shmid_ds
{
struct ipc_perm shm_perm;
size_t shm_segsz;
time_t shm_atime;
time_t shm_dtime;
time_t shm_ctime;
pid_t shm_cpid;
pid_t shm_lpid;
shmatt_t shm_nattch;
unsigned long __unused4;
unsigned long __unused5;
}
; |
typedef uint64_t __ss_aligntype; |
#define _STAT_VER 1
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 pad0;
dev_t st_rdev;
off_t st_size;
blksize_t st_blksize;
blkcnt_t st_blocks;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long __unused[3];
}
;
struct stat64
{
dev_t st_dev;
ino64_t st_ino;
nlink_t st_nlink;
mode_t st_mode;
uid_t st_uid;
gid_t st_gid;
int pad0;
dev_t st_rdev;
off_t st_size;
blksize_t st_blksize;
blkcnt64_t st_blocks;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
unsigned long __unused[3];
}
; |
struct statvfs64
{
unsigned long f_bsize;
unsigned long f_frsize;
fsblkcnt64_t f_blocks;
fsblkcnt64_t f_bfree;
fsblkcnt64_t f_bavail;
fsfilcnt64_t f_files;
fsfilcnt64_t f_ffree;
fsfilcnt64_t f_favail;
unsigned long f_fsid;
unsigned long f_flag;
unsigned long f_namemax;
int __f_spare[6];
}
;
struct statvfs
{
unsigned long f_bsize;
unsigned long f_frsize;
fsblkcnt_t f_blocks;
fsblkcnt_t f_bfree;
fsblkcnt_t f_bavail;
fsfilcnt_t f_files;
fsfilcnt_t f_ffree;
fsfilcnt_t f_favail;
unsigned long f_fsid;
unsigned long f_flag;
unsigned long f_namemax;
int __f_spare[6];
}
; |
typedef long int64_t;
typedef int64_t ssize_t; |
#define OLCUC 0000002
#define ONLCR 0000004
#define XCASE 0000004
#define NLDLY 0000400
#define CR1 0001000
#define IUCLC 0001000
#define CR2 0002000
#define CR3 0003000
#define CRDLY 0003000
#define TAB1 0004000
#define TAB2 0010000
#define TAB3 0014000
#define TABDLY 0014000
#define BS1 0020000
#define BSDLY 0020000
#define VT1 0040000
#define VTDLY 0040000
#define FF1 0100000
#define FFDLY 0100000
#define VSUSP 10
#define VEOL 11
#define VREPRINT 12
#define VDISCARD 13
#define VWERASE 14
#define VEOL2 16
#define VMIN 6
#define VSWTC 7
#define VSTART 8
#define VSTOP 9
#define IXON 0002000
#define IXOFF 0010000
#define CS6 0000020
#define CS7 0000040
#define CS8 0000060
#define CSIZE 0000060
#define CSTOPB 0000100
#define CREAD 0000200
#define PARENB 0000400
#define PARODD 0001000
#define HUPCL 0002000
#define CLOCAL 0004000
#define VTIME 5
#define ISIG 0000001
#define ICANON 0000002
#define ECHOE 0000020
#define ECHOK 0000040
#define ECHONL 0000100
#define NOFLSH 0000200
#define TOSTOP 0000400
#define ECHOCTL 0001000
#define ECHOPRT 0002000
#define ECHOKE 0004000
#define FLUSHO 0010000
#define PENDIN 0040000
#define IEXTEN 0100000 |
struct _libc_fpxreg
{
unsigned short significand[4];
unsigned short exponent;
unsigned short padding[3];
}
;
typedef long greg_t;
#define NGREG 23
typedef greg_t gregset_t[23];
struct _libc_xmmreg
{
uint32_t element[4];
}
;
struct _libc_fpstate
{
uint16_t cwd;
uint16_t swd;
uint16_t ftw;
uint16_t fop;
uint64_t rip;
uint64_t rdp;
uint32_t mxcsr;
uint32_t mxcr_mask;
struct _libc_fpxreg _st[8];
struct _libc_xmmreg _xmm[16];
uint32_t padding[24];
}
;
typedef struct _libc_fpstate *fpregset_t;
typedef struct
{
gregset_t gregs;
fpregset_t fpregs;
unsigned long __reserved1[8];
}
mcontext_t;
typedef struct ucontext
{
unsigned long uc_flags;
struct ucontext *uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
sigset_t uc_sigmask;
struct _libc_fpstate __fpregs_mem;
}
ucontext_t; |
struct lastlog
{
int32_t ll_time;
char ll_line[UT_LINESIZE];
char ll_host[UT_HOSTSIZE];
}
;
struct utmp
{
short ut_type;
pid_t ut_pid;
char ut_line[UT_LINESIZE];
char ut_id[4];
char ut_user[UT_NAMESIZE];
char ut_host[UT_HOSTSIZE];
struct exit_status ut_exit;
int ut_session;
struct
{
int32_t tv_sec;
int32_t tv_usec;
}
ut_tv;
int32_t ut_addr_v6[4];
char __unused[20];
}
; |
struct utmpx
{
short ut_type;
pid_t ut_pid;
char ut_line[UT_LINESIZE];
char ut_id[4];
char ut_user[UT_NAMESIZE];
char ut_host[UT_HOSTSIZE];
struct exit_status ut_exit;
int32_t ut_session;
struct
{
int32_t tv_sec;
int32_t tv_usec;
}
ut_tv;
int32_t ut_addr_v6[4];
char __unused[20];
}
; |