      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
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246

    //! x86_64-specific definitions for 64-bit linux-like values

    pub type c_char = i8;
    pub type wchar_t = i32;
    pub type nlink_t = u64;
    pub type blksize_t = i64;
    pub type greg_t = i64;

    s! {
        pub struct stat {
            pub st_dev: ::dev_t,
            pub st_ino: ::ino_t,
            pub st_nlink: ::nlink_t,
            pub st_mode: ::mode_t,
            pub st_uid: ::uid_t,
            pub st_gid: ::gid_t,
            __pad0: ::c_int,
            pub st_rdev: ::dev_t,
            pub st_size: ::off_t,
            pub st_blksize: ::blksize_t,
            pub st_blocks: ::blkcnt_t,
            pub st_atime: ::time_t,
            pub st_atime_nsec: ::c_long,
            pub st_mtime: ::time_t,
            pub st_mtime_nsec: ::c_long,
            pub st_ctime: ::time_t,
            pub st_ctime_nsec: ::c_long,
            __unused: [::c_long; 3],
        }

        pub struct stat64 {
            pub st_dev: ::dev_t,
            pub st_ino: ::ino64_t,
            pub st_nlink: ::nlink_t,
            pub st_mode: ::mode_t,
            pub st_uid: ::uid_t,
            pub st_gid: ::gid_t,
            __pad0: ::c_int,
            pub st_rdev: ::dev_t,
            pub st_size: ::off_t,
            pub st_blksize: ::blksize_t,
            pub st_blocks: ::blkcnt64_t,
            pub st_atime: ::time_t,
            pub st_atime_nsec: ::c_long,
            pub st_mtime: ::time_t,
            pub st_mtime_nsec: ::c_long,
            pub st_ctime: ::time_t,
            pub st_ctime_nsec: ::c_long,
            __reserved: [::c_long; 3],
        }

        pub struct pthread_attr_t {
            __size: [u64; 7]
        }

        pub struct _libc_fpxreg {
            pub significand: [u16; 4],
            pub exponent: u16,
            __private: [u16; 3],
        }

        pub struct _libc_xmmreg {
            pub element: [u32; 4],
        }

        pub struct _libc_fpstate {
            pub cwd: u16,
            pub swd: u16,
            pub ftw: u16,
            pub fop: u16,
            pub rip: u64,
            pub rdp: u64,
            pub mxcsr: u32,
            pub mxcr_mask: u32,
            pub _st: [_libc_fpxreg; 8],
            pub _xmm: [_libc_xmmreg; 16],
            __private: [u64; 12],
        }

        pub struct mcontext_t {
            pub gregs: [greg_t; 23],
            pub fpregs: *mut _libc_fpstate,
            __private: [u64; 8],
        }

        pub struct ucontext_t {
            pub uc_flags: ::c_ulong,
            pub uc_link: *mut ucontext_t,
            pub uc_stack: ::stack_t,
            pub uc_mcontext: mcontext_t,
            pub uc_sigmask: ::sigset_t,
            __private: [u8; 512],
        }

        pub struct ipc_perm {
            pub __key: ::key_t,
            pub uid: ::uid_t,
            pub gid: ::gid_t,
            pub cuid: ::uid_t,
            pub cgid: ::gid_t,
            pub mode: ::c_ushort,
            __pad1: ::c_ushort,
            pub __seq: ::c_ushort,
            __pad2: ::c_ushort,
            __unused1: ::c_ulong,
            __unused2: ::c_ulong
        }

        pub struct shmid_ds {
            pub shm_perm: ::ipc_perm,
            pub shm_segsz: ::size_t,
            pub shm_atime: ::time_t,
            pub shm_dtime: ::time_t,
            pub shm_ctime: ::time_t,
            pub shm_cpid: ::pid_t,
            pub shm_lpid: ::pid_t,
            pub shm_nattch: ::shmatt_t,
            __unused4: ::c_ulong,
            __unused5: ::c_ulong
        }
    }

    pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
    pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
    pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;

    pub const O_DIRECT: ::c_int = 0x4000;
    pub const O_DIRECTORY: ::c_int = 0x10000;
    pub const O_NOFOLLOW: ::c_int = 0x20000;

    pub const MAP_LOCKED: ::c_int = 0x02000;
    pub const MAP_NORESERVE: ::c_int = 0x04000;
    pub const MAP_32BIT: ::c_int = 0x0040;

    pub const EDEADLOCK: ::c_int = 35;

    pub const SO_PEERCRED: ::c_int = 17;
    pub const SO_RCVLOWAT: ::c_int = 18;
    pub const SO_SNDLOWAT: ::c_int = 19;
    pub const SO_RCVTIMEO: ::c_int = 20;
    pub const SO_SNDTIMEO: ::c_int = 21;

    pub const FIOCLEX: ::c_ulong = 0x5451;
    pub const FIONBIO: ::c_ulong = 0x5421;

    pub const PTRACE_GETFPREGS: ::c_uint = 14;
    pub const PTRACE_SETFPREGS: ::c_uint = 15;
    pub const PTRACE_GETFPXREGS: ::c_uint = 18;
    pub const PTRACE_SETFPXREGS: ::c_uint = 19;
    pub const PTRACE_GETREGS: ::c_uint = 12;
    pub const PTRACE_SETREGS: ::c_uint = 13;
    pub const PTRACE_O_EXITKILL: ::c_uint = 1048576;
    pub const PTRACE_O_TRACECLONE: ::c_uint = 8;
    pub const PTRACE_O_TRACEEXEC: ::c_uint = 16;
    pub const PTRACE_O_TRACEEXIT: ::c_uint = 64;
    pub const PTRACE_O_TRACEFORK: ::c_uint = 2;
    pub const PTRACE_O_TRACESYSGOOD: ::c_uint = 1;
    pub const PTRACE_O_TRACEVFORK: ::c_uint = 4;
    pub const PTRACE_O_TRACEVFORKDONE: ::c_uint = 32;
    pub const PTRACE_O_TRACESECCOMP: ::c_uint = 128;
    pub const PTRACE_O_SUSPEND_SECCOMP: ::c_uint = 2097152;
    pub const PTRACE_PEEKSIGINFO_SHARED: ::c_uint = 1;

    pub const SYS_gettid: ::c_long = 186;
    pub const SYS_perf_event_open: ::c_long = 298;

    pub const MCL_CURRENT: ::c_int = 0x0001;
    pub const MCL_FUTURE: ::c_int = 0x0002;

    pub const SIGSTKSZ: ::size_t = 8192;
    pub const CBAUD: ::tcflag_t = 0o0010017;
    pub const TAB1: ::c_int = 0x00000800;
    pub const TAB2: ::c_int = 0x00001000;
    pub const TAB3: ::c_int = 0x00001800;
    pub const CR1: ::c_int  = 0x00000200;
    pub const CR2: ::c_int  = 0x00000400;
    pub const CR3: ::c_int  = 0x00000600;
    pub const FF1: ::c_int  = 0x00008000;
    pub const BS1: ::c_int  = 0x00002000;
    pub const VT1: ::c_int  = 0x00004000;
    pub const VWERASE: usize = 14;
    pub const VREPRINT: usize = 12;
    pub const VSUSP: usize = 10;
    pub const VSTART: usize = 8;
    pub const VSTOP: usize = 9;
    pub const VDISCARD: usize = 13;
    pub const VTIME: usize = 5;
    pub const IXON: ::tcflag_t = 0x00000400;
    pub const IXOFF: ::tcflag_t = 0x00001000;
    pub const ONLCR: ::tcflag_t = 0x4;
    pub const CSIZE: ::tcflag_t = 0x00000030;
    pub const CS6: ::tcflag_t = 0x00000010;
    pub const CS7: ::tcflag_t = 0x00000020;
    pub const CS8: ::tcflag_t = 0x00000030;
    pub const CSTOPB: ::tcflag_t = 0x00000040;
    pub const CREAD: ::tcflag_t = 0x00000080;
    pub const PARENB: ::tcflag_t = 0x00000100;
    pub const PARODD: ::tcflag_t = 0x00000200;
    pub const HUPCL: ::tcflag_t = 0x00000400;
    pub const CLOCAL: ::tcflag_t = 0x00000800;
    pub const ECHOKE: ::tcflag_t = 0x00000800;
    pub const ECHOE: ::tcflag_t = 0x00000010;
    pub const ECHOK: ::tcflag_t = 0x00000020;
    pub const ECHONL: ::tcflag_t = 0x00000040;
    pub const ECHOPRT: ::tcflag_t = 0x00000400;
    pub const ECHOCTL: ::tcflag_t = 0x00000200;
    pub const ISIG: ::tcflag_t = 0x00000001;
    pub const ICANON: ::tcflag_t = 0x00000002;
    pub const PENDIN: ::tcflag_t = 0x00004000;
    pub const NOFLSH: ::tcflag_t = 0x00000080;

    pub const VEOL: usize = 11;
    pub const VEOL2: usize = 16;
    pub const VMIN: usize = 6;
    pub const IEXTEN: ::tcflag_t = 0x00008000;
    pub const TOSTOP: ::tcflag_t = 0x00000100;
    pub const FLUSHO: ::tcflag_t = 0x00001000;
    pub const EXTPROC: ::tcflag_t = 0x00010000;
    pub const TCGETS: ::c_ulong = 0x5401;
    pub const TCSETS: ::c_ulong = 0x5402;
    pub const TCSETSW: ::c_ulong = 0x5403;
    pub const TCSETSF: ::c_ulong = 0x5404;
    pub const TCGETA: ::c_ulong = 0x5405;
    pub const TCSETA: ::c_ulong = 0x5406;
    pub const TCSETAW: ::c_ulong = 0x5407;
    pub const TCSETAF: ::c_ulong = 0x5408;
    pub const TCSBRK: ::c_ulong = 0x5409;
    pub const TCXONC: ::c_ulong = 0x540A;
    pub const TCFLSH: ::c_ulong = 0x540B;
    pub const TIOCINQ: ::c_ulong = 0x541B;
    pub const TIOCGPGRP: ::c_ulong = 0x540F;
    pub const TIOCSPGRP: ::c_ulong = 0x5410;
    pub const TIOCOUTQ: ::c_ulong = 0x5411;
    pub const TIOCGWINSZ: ::c_ulong = 0x5413;
    pub const TIOCSWINSZ: ::c_ulong = 0x5414;
    pub const FIONREAD: ::c_ulong = 0x541B;

    extern {
        pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int;
        pub fn setcontext(ucp: *const ucontext_t) -> ::c_int;
        pub fn makecontext(ucp: *mut ucontext_t,
                           func:  extern fn (),
                           argc: ::c_int, ...);
        pub fn swapcontext(uocp: *mut ucontext_t,
                           ucp: *const ucontext_t) -> ::c_int;
    }

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)