Data Definitions for libc

This section contains standard data definitions that describe system data. 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.

ISO C serves as the LSB 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.

errno.h




#define EDEADLOCK	EDEADLK

inttypes.h






typedef long long intmax_t;
typedef unsigned long long uintmax_t;
typedef unsigned int uintptr_t;

limits.h


#define ULONG_MAX	0xFFFFFFFFUL
#define LONG_MAX	2147483647






#define CHAR_MIN	0
#define CHAR_MAX	255

setjmp.h






typedef int __jmp_buf[14];

signal.h
























struct sigaction
{
  union
  {
    __sighandler_t _sa_handler;
    void (*_sa_sigaction) (int, siginfo_t *, void *);
  }
  __sigaction_handler;
  unsigned long sa_flags;
  void (*sa_restorer) (void);
  sigset_t sa_mask;
}
 ;

stddef.h



typedef unsigned long size_t;
typedef int ptrdiff_t;

sys/ioctl.h


#define FIONREAD	0x541B
#define TIOCNOTTY	21538

sys/ipc.h



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;
}
 ;

sys/mman.h


#define MCL_CURRENT	1
#define MCL_FUTURE	2

sys/msg.h






typedef unsigned long msglen_t;
typedef unsigned long msgqnum_t;


struct msqid_ds
{
  struct ipc_perm msg_perm;
  time_t msg_stime;
  time_t msg_rtime;
  unsigned long __unused1;
  time_t msg_ctime;
  unsigned long __unused2;
  unsigned long __unused3;
  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;
}
 ;

sys/sem.h



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;
}
 ;

sys/shm.h


#define SHMLBA	(__getpagesize())





typedef unsigned long shmatt_t;


struct shmid_ds
{
  struct ipc_perm shm_perm;
  size_t shm_segsz;
  time_t shm_atime;
  unsigned long __unused1;
  time_t shm_dtime;
  unsigned long __unused2;
  time_t shm_ctime;
  unsigned long __unused3;
  pid_t shm_cpid;
  pid_t shm_lpid;
  shmatt_t shm_nattch;
  unsigned long __unused4;
  unsigned long __unused5;
}
 ;

sys/stat.h


#define _STAT_VER	3


struct stat
{
  __dev_t st_dev;
  unsigned int __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 int __pad2;
  __off_t st_size;
  blksize_t st_blksize;
  __blkcnt_t st_blocks;
  __time_t st_atime;
  unsigned long __unused1;
  __time_t st_mtime;
  unsigned long __unused2;
  __time_t st_ctime;
  unsigned long __unused3;
  unsigned long __unused4;
  unsigned long __unused5;
}
 ;

sys/statvfs.h



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];
}
 ;

sys/types.h



typedef int ssize_t;

termios.h


#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

ucontext.h







#define NGREG	36











typedef union
{
  double d;
  float f;
}
fpreg_t;





typedef struct
{
  unsigned int fpc;
  fpreg_t fprs[16];
}
fpregset_t;


typedef struct
{
  unsigned long mask;
  unsigned long addr;
}
__psw_t;


typedef struct
{
  __psw_t psw;
  unsigned long gregs[16];
  unsigned int aregs[16];
  fpregset_t fpregs;
}
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;
}
ucontext_t;

unistd.h



typedef int intptr_t;