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.
typedef unsigned long long uintmax_t;
typedef long long intmax_t;
typedef unsigned int uintptr_t;
typedef unsigned long long uint64_t; |
#define ULONG_MAX 0xFFFFFFFFUL
#define LONG_MAX 2147483647L
#define CHAR_MIN 0
#define CHAR_MAX 255 |
typedef int __jmp_buf[58]; |
struct sigaction
{
union
{
sighandler_t _sa_handler;
void (*_sa_sigaction) (int, siginfo_t *, void *);
}
__sigaction_handler;
sigset_t sa_mask;
unsigned long sa_flags;
void (*sa_restorer) (void);
}
;
#define MINSIGSTKSZ 2048
#define SIGSTKSZ 8192
struct sigcontext
{
long _unused[4];
int signal;
unsigned long handler;
unsigned long oldmask;
struct pt_regs *regs;
}
; |
typedef unsigned int size_t;
typedef int ptrdiff_t; |
#define TIOCNOTTY 0x5422
#define FIONREAD 1074030207 |
struct ipc_perm
{
key_t __key;
uid_t uid;
gid_t gid;
uid_t cuid;
uid_t cgid;
mode_t mode;
long __seq;
int __pad1;
unsigned long long __unused1;
unsigned long long __unused2;
}
; |
#define MCL_FUTURE 16384
#define MCL_CURRENT 8192 |
typedef unsigned long msglen_t;
typedef unsigned long msgqnum_t;
struct msqid_ds
{
struct ipc_perm msg_perm;
unsigned int __unused1;
time_t msg_stime;
unsigned int __unused2;
time_t msg_rtime;
unsigned int __unused3;
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;
unsigned int __unused1;
time_t sem_otime;
unsigned int __unused2;
time_t sem_ctime;
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;
unsigned int __unused1;
time_t shm_atime;
unsigned int __unused2;
time_t shm_dtime;
unsigned int __unused3;
time_t shm_ctime;
unsigned int __unused4;
size_t shm_segsz;
pid_t shm_cpid;
pid_t shm_lpid;
shmatt_t shm_nattch;
unsigned long __unused5;
unsigned long __unused6;
}
; |
typedef uint32_t __ss_aligntype; |
#define _STAT_VER 3
struct stat64
{
dev_t st_dev;
ino64_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
unsigned short __pad2;
off64_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 __unused4;
unsigned long __unused5;
}
;
struct stat
{
dev_t st_dev;
unsigned short __pad1;
ino_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
unsigned short __pad2;
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 __unused4;
unsigned long __unused5;
}
; |
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;
int __f_unused;
unsigned long f_flag;
unsigned long f_namemax;
int __f_spare[6];
}
;
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;
int __f_unused;
unsigned long f_flag;
unsigned long f_namemax;
int __f_spare[6];
}
; |
typedef long long int64_t;
typedef int32_t ssize_t; |
#define TAB1 1024
#define CR3 12288
#define CRDLY 12288
#define FF1 16384
#define FFDLY 16384
#define XCASE 16384
#define ONLCR 2
#define TAB2 2048
#define TAB3 3072
#define TABDLY 3072
#define BS1 32768
#define BSDLY 32768
#define OLCUC 4
#define CR1 4096
#define IUCLC 4096
#define VT1 65536
#define VTDLY 65536
#define NLDLY 768
#define CR2 8192
#define VWERASE 10
#define VREPRINT 11
#define VSUSP 12
#define VSTART 13
#define VSTOP 14
#define VDISCARD 16
#define VMIN 5
#define VEOL 6
#define VEOL2 8
#define VSWTC 9
#define IXOFF 1024
#define IXON 512
#define CSTOPB 1024
#define HUPCL 16384
#define CREAD 2048
#define CS6 256
#define CLOCAL 32768
#define PARENB 4096
#define CS7 512
#define VTIME 7
#define CS8 768
#define CSIZE 768
#define PARODD 8192
#define NOFLSH 0x80000000
#define ECHOKE 1
#define IEXTEN 1024
#define ISIG 128
#define ECHONL 16
#define ECHOE 2
#define ICANON 256
#define ECHOPRT 32
#define ECHOK 4
#define TOSTOP 4194304
#define PENDIN 536870912
#define ECHOCTL 64
#define FLUSHO 8388608 |
struct pt_regs
{
unsigned long gpr[32];
unsigned long nip;
unsigned long msr;
unsigned long orig_gpr3;
unsigned long ctr;
unsigned long link;
unsigned long xer;
unsigned long ccr;
unsigned long mq;
unsigned long trap;
unsigned long dar;
unsigned long dsisr;
unsigned long result;
}
;
typedef struct _libc_vrstate
{
unsigned int vrregs[128];
unsigned int vscr;
unsigned int vrsave;
unsigned int _pad[2];
}
vrregset_t __attribute__ ((__aligned__ (16)));
#define NGREG 48
typedef unsigned long gregset_t[48];
typedef struct _libc_fpstate
{
double fpregs[32];
double fpscr;
int _pad[2];
}
fpregset_t;
typedef struct
{
gregset_t gregs;
fpregset_t fpregs;
vrregset_t vrregs;
}
mcontext_t;
union uc_regs_ptr
{
struct pt_regs *regs;
mcontext_t *uc_regs;
}
;
typedef struct ucontext
{
unsigned long uc_flags;
struct ucontext *uc_link;
stack_t uc_stack;
int uc_pad[7];
union uc_regs_ptr uc_mcontext;
sigset_t uc_sigmask;
char uc_reg_space[sizeof (mcontext_t) + 12];
}
ucontext_t; |
struct lastlog
{
time_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;
long ut_session;
struct timeval 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;
long ut_session;
struct timeval ut_tv;
int32_t ut_addr_v6[4];
char __unused[20];
}
; |