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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | //! Stage 17, "coreutils batch 2": links and symlinks, owners, statfs and
//! statx, sysinfo/times/getrusage and the CPU clocks, socket names and
//! options, alarm/setitimer/POSIX timers, user and group ids, priority,
//! the host name, flock, preadv/pwritev and sendfile. The detailed checks
//! live in user/coretest.rs (exit code = failed checks); this file runs
//! each group and checks nothing is left behind -- threads, processes,
//! memory frames, file locks (flock ones too) and timers.
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.
/// link/linkat, symlink/symlinkat on ramfs and ext2 (st_nlink, st_ino,
/// rename over a second link, directories moved); EPERM on FAT/exFAT,
/// EROFS on btrfs, EXDEV across file systems.
/// chown/fchown/lchown/fchownat: stored on ramfs and ext2; FAT says EPERM
/// unless nothing changes.
/// statfs/fstatfs magic numbers and sizes on every file system, statx,
/// st_dev per mount.
/// sysinfo (99) next to our 502, times(), getrusage, CPU-time clocks,
/// clock_getres.
/// getsockname/getpeername, SO_REUSEADDR & co., SO_TYPE/SO_ERROR,
/// shutdown(SHUT_WR) = end-of-file for the peer, socketpair says no.
/// alarm, setitimer/getitimer (one-shot, periodic), POSIX timers
/// (SI_TIMER + si_value, TIMER_ABSTIME, SIGEV_NONE), gone with the process.
/// setuid & co. (root drops privileges, the saved id), groups, files owned
/// by their creator, nice values, sethostname -> uname.
/// flock (per open file, blocking, released on the last close),
/// preadv/pwritev, sendfile, ppoll/pselect6 mask sizes and masks, and
/// getdents64 while deleting (rm -r).
/// `--trace` knows the new calls by name.
!
|