rust-kernel
Rustbelt: a hobby x86_64 kernel written in Rust
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 | //! Stage 18: AF_UNIX sockets and /proc/self. The detailed checks live in
//! user/unixtest.rs (exit code = failed checks); this file runs each
//! group twice and checks nothing is left behind -- threads, processes,
//! memory frames (fds in flight included), and bound names.
extern crate alloc;
use String;
use ;
use PanicInfo;
use ;
use ;
entry_point!;
!
/// Run one group twice (the first warms caches), check it passes and
/// nothing is left behind.
/// A server on a path (ramfs and ext2) echoes for a forked client;
/// abstract names, autobind, ECONNRESET/EPIPE/ECONNREFUSED, SO_PEERCRED.
/// socketpair: stream (both ways, fork, shutdown, MSG_PEEK), seqpacket,
/// dgram, SOCK_CLOEXEC/SOCK_NONBLOCK.
/// Datagrams between named sockets: sender names, MSG_TRUNC, connect,
/// EPERM/EPROTOTYPE/EMSGSIZE/ECONNREFUSED.
/// SCM_RIGHTS: a file and a pipe end read through the received fds;
/// MSG_CTRUNC, MSG_CMSG_CLOEXEC, fds in flight closed with the socket
/// (and no frames leaked: see run_without_leaks); SCM_CREDENTIALS.
/// Nonblocking EAGAIN, real buffer limits (and a blocked writer), poll,
/// epoll EPOLLRDHUP/EPOLLHUP, nonblocking accept, full backlog.
/// /proc/self/fd: listing, readlink (paths, pipe:[N], socket:[N]),
/// opening entries; /proc/self/exe.
/// `--trace` knows the new calls by name.
!
|