SYMBOL INDEX (1334 symbols across 63 files) FILE: build.rs function main (line 3) | fn main() -> Result<(), Box> { FILE: src/arch/x86_64/cpu_local.rs type CpuLocalData (line 4) | pub struct CpuLocalData { type Kpcr (line 10) | pub struct Kpcr { function get_kpcr (line 16) | pub fn get_kpcr() -> &'static mut Kpcr { function get_tss (line 20) | pub fn get_tss() -> &'static mut TaskStateSegment { FILE: src/arch/x86_64/gdt.rs constant KERNEL_CS_IDX (line 20) | pub const KERNEL_CS_IDX: u16 = 1; constant KERNEL_DS_IDX (line 21) | pub const KERNEL_DS_IDX: u16 = 2; constant TSS_IDX (line 22) | pub const TSS_IDX: u16 = 3; constant USER_DS_IDX (line 23) | pub const USER_DS_IDX: u16 = 5; constant USER_CS_IDX (line 24) | pub const USER_CS_IDX: u16 = 6; function init_boot (line 37) | pub fn init_boot() { function init (line 51) | pub fn init() { FILE: src/arch/x86_64/idt.rs constant PIC_1_OFFSET (line 25) | pub const PIC_1_OFFSET: u8 = 32; constant PIC_2_OFFSET (line 26) | pub const PIC_2_OFFSET: u8 = PIC_1_OFFSET + 8; constant TIMER_IRQ (line 31) | pub const TIMER_IRQ: u8 = PIC_1_OFFSET; constant KEYBOARD_IRQ (line 32) | pub const KEYBOARD_IRQ: u8 = PIC_1_OFFSET + 1; constant COM2_IRQ (line 33) | pub const COM2_IRQ: u8 = PIC_1_OFFSET + 3; type InterruptFrame (line 89) | pub struct InterruptFrame { method is_user_mode (line 116) | pub fn is_user_mode(&self) -> bool { type InterruptErrorFrame (line 123) | pub struct InterruptErrorFrame { function notify_eoi (line 129) | pub fn notify_eoi(index: u8) { function x64_handle_interrupt (line 214) | extern "C" fn x64_handle_interrupt(vector: u8, stack_frame: *mut Interru... constant PIC_1_DATA_PORT (line 392) | pub const PIC_1_DATA_PORT: u8 = 0x21; constant PIC_2_DATA_PORT (line 393) | pub const PIC_2_DATA_PORT: u8 = 0xa1; function mask_irq (line 395) | pub fn mask_irq(irq: u8) { function unmask_irq (line 407) | pub fn unmask_irq(irq: u8) { function init (line 419) | pub fn init() { function do_keyboard_input (line 430) | fn do_keyboard_input() { FILE: src/arch/x86_64/mod.rs function get_cpuid_feature_info (line 49) | pub fn get_cpuid_feature_info() -> &'static FeatureInfo { function arch_main (line 57) | pub fn arch_main() { function startup_init (line 190) | pub fn startup_init() { function poll_serial1 (line 238) | fn poll_serial1() { function idle (line 257) | pub fn idle() { FILE: src/arch/x86_64/syscall.rs function syscall_entry (line 66) | pub unsafe extern "C" fn syscall_entry() { function x64_handle_syscall (line 123) | unsafe extern "C" fn x64_handle_syscall(ctx: *mut InterruptFrame) -> isi... function handle_syscall (line 138) | fn handle_syscall( function init (line 172) | pub unsafe fn init() { FILE: src/arch/x86_64/task.rs function fxsave (line 33) | fn fxsave(fpu: &mut Box<[u8]>) { function fxrstor (line 39) | fn fxrstor(fpu: &mut Box<[u8]>) { function arch_context_switch (line 45) | pub fn arch_context_switch(prev: &mut ArchTask, next: &mut ArchTask) { function iretq_init (line 73) | unsafe extern "C" fn iretq_init() -> ! { function fork_init (line 91) | unsafe extern "C" fn fork_init() -> ! { function context_switch (line 110) | unsafe extern "C" fn context_switch(_prev: &mut Unique, _next: ... type Context (line 142) | pub struct Context { function exec_entry (line 156) | unsafe extern "C" fn exec_entry(rcx: usize, rsp: usize, r11: usize) -> ! { type ArchTask (line 194) | pub struct ArchTask { method new_idle (line 206) | pub fn new_idle() -> ArchTask { method new_kernel (line 219) | pub fn new_kernel(entry_point: VirtAddr, enable_interrupts: bool) -> A... method exec (line 257) | pub fn exec( method fork (line 346) | pub fn fork(&mut self) -> KResult { method clone_process (line 386) | pub fn clone_process( method alloc_fpu_storage (line 436) | fn alloc_fpu_storage() -> Box<[u8]> { method alloc_switch_stack (line 448) | fn alloc_switch_stack() -> KResult { method set_fsbase (line 452) | pub fn set_fsbase(&mut self, addr: VirtAddr) { method setup_signal_stack (line 459) | pub fn setup_signal_stack( method setup_sigreturn_stack (line 490) | pub fn setup_sigreturn_stack( FILE: src/arch/x86_64/time.rs constant PIT_FREQUENCY_HZ (line 7) | const PIT_FREQUENCY_HZ: usize = 1000; constant PIT_DIVIDEND (line 8) | pub const PIT_DIVIDEND: usize = 1193182; function get_uptime_ns (line 16) | pub fn get_uptime_ns() -> usize { function get_uptime_ms (line 21) | pub fn get_uptime_ms() -> usize { function get_rt_clock (line 25) | pub fn get_rt_clock() -> TimeSpec { function get_pit_count (line 29) | pub fn get_pit_count() -> u16 { function set_reload_value (line 40) | pub fn set_reload_value(new_count: u16) { function set_pit_frequency (line 48) | pub fn set_pit_frequency(frequency: usize) { function pit_irq (line 58) | pub fn pit_irq() { function init (line 83) | pub fn init(boot_time: i64) { FILE: src/backtrace.rs function print_symbol (line 24) | fn print_symbol(rip: usize, symtab: &Option>, depth: us... function unwind_user_stack_from (line 50) | pub fn unwind_user_stack_from(mut rbp: usize, mut rip: usize) { function unwind_stack (line 103) | pub fn unwind_stack() -> KResult<()> { function rust_panic (line 181) | fn rust_panic(info: &PanicInfo) -> ! { function _Unwind_Resume (line 207) | extern "C" fn _Unwind_Resume(unwind_context_ptr: usize) -> ! { function rust_eh_personality (line 214) | extern "C" fn rust_eh_personality() -> ! { function handle_alloc_error (line 220) | fn handle_alloc_error(layout: Layout) -> ! { FILE: src/fs/devfs/fb.rs function init (line 15) | pub fn init() { type FbDevice (line 28) | pub struct FbDevice; method get_name (line 31) | fn get_name(&self) -> alloc::string::String { method read (line 37) | fn read(&self, offset: usize, buf: UserBufferMut, _options: &OpenFlags) ... method write (line 54) | fn write(&self, offset: usize, buf: UserBuffer<'_>, _options: &OpenFlags... method ioctl (line 72) | fn ioctl(&self, cmd: usize, arg: usize) -> KResult { type FbBitField (line 99) | struct FbBitField { type FbVarScreenInfo (line 107) | struct FbVarScreenInfo { FILE: src/fs/devfs/input.rs function init (line 15) | pub fn init() { type KbdDevice (line 28) | pub struct KbdDevice { method new (line 33) | pub fn new() -> Self { method handle_kbd_irq (line 39) | pub fn handle_kbd_irq(&self, key_evt: &KeyEvent) { method default (line 49) | fn default() -> Self { method get_name (line 55) | fn get_name(&self) -> alloc::string::String { method read (line 61) | fn read(&self, _offset: usize, buf: UserBufferMut, _options: &OpenFlags)... FILE: src/fs/devfs/mod.rs function init (line 8) | pub fn init() { FILE: src/fs/devfs/null.rs function init (line 13) | pub fn init() { type NullDevice (line 26) | pub struct NullDevice; method get_name (line 29) | fn get_name(&self) -> alloc::string::String { method write (line 35) | fn write( method read (line 44) | fn read( method stat (line 55) | fn stat(&self) -> crate::util::KResult { FILE: src/fs/devfs/socket.rs function init (line 10) | pub fn init() {} type Domain (line 14) | pub enum Domain { type Error (line 20) | type Error = KError<'static>; method try_from (line 21) | fn try_from(value: usize) -> Result { type SocketType (line 32) | pub enum SocketType { type Error (line 41) | type Error = KError<'static>; method try_from (line 42) | fn try_from(value: usize) -> Result { type Protocol (line 56) | pub enum Protocol { type Error (line 63) | type Error = KError<'static>; method try_from (line 64) | fn try_from(value: usize) -> Result { type Socket (line 74) | pub struct Socket { method alloc_id (line 85) | pub fn alloc_id() -> usize { method get_name (line 101) | fn get_name(&self) -> alloc::string::String { type SockAddrInet (line 108) | pub struct SockAddrInet { function read_sockaddr (line 115) | pub fn read_sockaddr(addr: VirtAddr, len: usize) -> KResult { function write_sockaddr (line 132) | pub fn write_sockaddr( method ioctl (line 147) | fn ioctl(&self, cmd: usize, _arg: usize) -> KResult { FILE: src/fs/devfs/tty.rs function init (line 35) | pub fn init() { method default (line 57) | fn default() -> Self { method default (line 85) | fn default() -> Self { type Termios (line 92) | pub struct Termios { method is_cooked (line 104) | pub fn is_cooked(&self) -> bool { method default (line 110) | fn default() -> Self { method fmt (line 126) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { type LineControl (line 134) | pub enum LineControl { type LineDiscipline (line 139) | pub struct LineDiscipline { method new (line 148) | pub fn new() -> Self { method is_readable (line 158) | pub fn is_readable(&self) -> bool { method is_writable (line 162) | pub fn is_writable(&self) -> bool { method foreground_group (line 166) | pub fn foreground_group(&self) -> Option>> { method set_foreground_group (line 170) | pub fn set_foreground_group(&self, pg: Weak>) { method _is_current_foreground (line 174) | fn _is_current_foreground(&self) -> bool { method write (line 179) | pub fn write(&self, buf: UserBuffer<'_>, callback: F) -> KResult, options: &OpenFlags) -> KRe... method default (line 275) | fn default() -> Self { type Tty (line 280) | pub struct Tty { method new (line 286) | pub fn new(name: &str) -> Self { method set_cooked_mode (line 293) | pub fn set_cooked_mode(&self, cooked: bool) { method input_char (line 301) | pub fn input_char(&self, ch: u8) { method set_foreground_group (line 316) | pub fn set_foreground_group(&self, pg: Weak>) { method get_name (line 322) | fn get_name(&self) -> String { constant TCGETS (line 326) | const TCGETS: usize = 0x5401; constant TCSETS (line 327) | const TCSETS: usize = 0x5402; constant TCSETSW (line 328) | const TCSETSW: usize = 0x5403; constant TIOCGPGRP (line 330) | const TIOCGPGRP: usize = 0x540f; constant TIOCSPGRP (line 331) | const TIOCSPGRP: usize = 0x5410; constant TIOCGWINSZ (line 332) | const TIOCGWINSZ: usize = 0x5413; type WinSize (line 336) | struct WinSize { method ioctl (line 344) | fn ioctl(&self, cmd: usize, arg: usize) -> KResult { method stat (line 387) | fn stat(&self) -> KResult { method read (line 395) | fn read(&self, _offset: usize, buf: UserBufferMut, options: &OpenFlags) ... method write (line 413) | fn write(&self, _offset: usize, buf: UserBuffer<'_>, _options: &OpenFlag... method poll (line 425) | fn poll(&self) -> KResult { function parse (line 437) | fn parse(mut reader: UserBufferReader) -> KResult { type PtyMaster (line 615) | pub struct PtyMaster { method new (line 622) | pub fn new() -> KResult<(Arc, Arc)> { method get_name (line 634) | fn get_name(&self) -> String { method read (line 640) | fn read(&self, _offset: usize, buf: UserBufferMut<'_>, options: &OpenFla... method write (line 666) | fn write(&self, _offset: usize, buf: UserBuffer<'_>, _options: &OpenFlag... method ioctl (line 686) | fn ioctl(&self, cmd: usize, _arg: usize) -> KResult { method stat (line 691) | fn stat(&self) -> KResult { method poll (line 699) | fn poll(&self) -> KResult { type PtySlave (line 712) | pub struct PtySlave { method new (line 717) | pub fn new(master: Arc) -> Self { method get_name (line 723) | fn get_name(&self) -> String { method read (line 729) | fn read(&self, _offset: usize, buf: UserBufferMut, options: &OpenFlags) ... method write (line 737) | fn write(&self, _offset: usize, buf: UserBuffer<'_>, _options: &OpenFlag... method stat (line 766) | fn stat(&self) -> KResult { method ioctl (line 774) | fn ioctl(&self, cmd: usize, _arg: usize) -> KResult { method poll (line 785) | fn poll(&self) -> KResult { type Ptmx (line 798) | pub struct Ptmx { method new (line 803) | pub fn new(pts_dir: Arc) -> Self { method get_name (line 809) | fn get_name(&self) -> String { method open (line 815) | fn open(&self, _options: &OpenFlags) -> KResult> { method stat (line 821) | fn stat(&self) -> KResult { method read (line 829) | fn read(&self, _offset: usize, _buf: UserBufferMut, _options: &OpenFlags... method write (line 833) | fn write(&self, _offset: usize, _buf: UserBuffer<'_>, _options: &OpenFla... method poll (line 837) | fn poll(&self) -> KResult { FILE: src/fs/devfs/urandom.rs function init (line 9) | pub fn init() { type URandom (line 19) | pub struct URandom; method get_name (line 22) | fn get_name(&self) -> alloc::string::String { method read (line 28) | fn read( FILE: src/fs/initramfs/dir.rs type DirInner (line 16) | pub struct DirInner { type InitRamFsDir (line 22) | pub struct InitRamFsDir { method new (line 28) | pub fn new(name: String, inode_no: usize) -> InitRamFsDir { method add_dir (line 43) | pub fn add_dir(&self, name: String) -> Arc { method add_file (line 49) | pub fn add_file(&self, file: FileRef) { method parent_dir (line 53) | pub fn parent_dir(&self) -> Option> { method insert (line 59) | fn insert(&self, inode: INode) { method lookup (line 63) | fn lookup(&self, name: &str) -> KResult { method stat (line 75) | fn stat(&self) -> KResult { method readdir (line 79) | fn readdir(&self, index: usize) -> KResult> { method unlink (line 107) | fn unlink(&self, name: &str) -> KResult<()> { method get_name (line 117) | fn get_name(&self) -> String { FILE: src/fs/initramfs/file.rs type InitRamFsFile (line 9) | pub struct InitRamFsFile { method new (line 16) | pub fn new(name: String, inode_no: usize) -> InitRamFsFile { method get_name (line 30) | fn get_name(&self) -> String { method read (line 36) | fn read(&self, offset: usize, buf: UserBufferMut<'_>, _options: &OpenFla... method write (line 45) | fn write(&self, offset: usize, buf: UserBuffer<'_>, options: &OpenFlags)... method stat (line 60) | fn stat(&self) -> KResult { FILE: src/fs/initramfs/mod.rs type ByteParser (line 31) | pub struct ByteParser<'a> { function new (line 37) | pub fn new(buffer: &'a [u8]) -> ByteParser<'a> { function remaining (line 41) | pub fn remaining(&self) -> &[u8] { function remaining_len (line 44) | pub fn remaining_len(&self) -> usize { function skip (line 48) | pub fn skip(&mut self, len: usize) -> KResult<()> { function skip_until_alignment (line 57) | pub fn skip_until_alignment(&mut self, align: usize) -> KResult<()> { function consume_bytes (line 67) | pub fn consume_bytes(&mut self, len: usize) -> KResult<&'a [u8]> { function parse_str_field (line 77) | fn parse_str_field(bytes: &[u8]) -> KResult<&str> { function parse_hex_field (line 81) | fn parse_hex_field(bytes: &[u8]) -> KResult { function init (line 88) | pub fn init() -> KResult<()> { function get_root (line 104) | pub fn get_root() -> Option<&'static RootFs> { type InitRamFs (line 108) | pub struct InitRamFs { method parse (line 113) | pub fn parse(fs_image: &[u8]) -> KResult { FILE: src/fs/initramfs/root.rs constant MAX_SYMLINK_FOLLOW_DEPTH (line 15) | const MAX_SYMLINK_FOLLOW_DEPTH: usize = 20; type RootFs (line 18) | pub struct RootFs { method new (line 24) | pub fn new(root: Arc) -> RootFs { method cwd_path (line 36) | pub fn cwd_path(&self) -> &PathComponent { method root_dir (line 40) | pub fn root_dir(&self) -> DirRef { method cwd_dir (line 44) | pub fn cwd_dir(&self) -> DirRef { method chdir (line 48) | pub fn chdir(&mut self, path: &Path) -> KResult<()> { method lookup (line 53) | pub fn lookup(&self, path: &Path, follow_symlinks: bool) -> KResult KResu... method do_lookup_path (line 80) | fn do_lookup_path( FILE: src/fs/initramfs/symlink.rs type InitRamFsSymlink (line 8) | pub struct InitRamFsSymlink { method link_location (line 15) | fn link_location(&self) -> KResult { method stat (line 19) | fn stat(&self) -> KResult { method get_name (line 25) | fn get_name(&self) -> String { FILE: src/fs/mod.rs type FileRef (line 21) | pub type FileRef = Arc; type DirRef (line 22) | pub type DirRef = Arc; type SymlinkRef (line 23) | pub type SymlinkRef = Arc; function alloc_inode_no (line 27) | pub fn alloc_inode_no() -> usize { type FileType (line 53) | pub enum FileType { type DirEntry (line 60) | pub struct DirEntry { type DevId (line 69) | pub struct DevId(usize); type NLink (line 74) | pub struct NLink(usize); type FileSize (line 79) | pub struct FileSize(pub isize); type UId (line 84) | pub struct UId(u32); type GId (line 89) | pub struct GId(u32); type BlockSize (line 94) | pub struct BlockSize(isize); type BlockCount (line 99) | pub struct BlockCount(isize); type Time (line 103) | pub struct Time(isize); type Stat (line 107) | pub struct Stat { method zeroed (line 125) | pub fn zeroed() -> Stat { constant S_IFMT (line 145) | pub const S_IFMT: u32 = 0o170000; constant S_IFCHR (line 146) | pub const S_IFCHR: u32 = 0o020000; constant S_IFDIR (line 147) | pub const S_IFDIR: u32 = 0o040000; constant S_IFREG (line 148) | pub const S_IFREG: u32 = 0o100000; constant S_IFLNK (line 149) | pub const S_IFLNK: u32 = 0o120000; constant O_ACCMODE (line 151) | pub const O_ACCMODE: u32 = 0o3; constant O_RDONLY (line 155) | pub const O_RDONLY: u32 = 0o0; constant O_WRONLY (line 156) | pub const O_WRONLY: u32 = 0o1; constant O_RDWR (line 157) | pub const O_RDWR: u32 = 0o2; type FileMode (line 161) | pub struct FileMode(u32); method new (line 164) | pub fn new(val: u32) -> FileMode { method access_mode (line 168) | pub fn access_mode(self) -> u32 { method is_directory (line 172) | pub fn is_directory(self) -> bool { method is_regular_file (line 176) | pub fn is_regular_file(self) -> bool { method is_symbolic_link (line 180) | pub fn is_symbolic_link(self) -> bool { type FsNode (line 185) | pub trait FsNode { method get_name (line 186) | fn get_name(&self) -> String; method get_name (line 321) | fn get_name(&self) -> String { type File (line 189) | pub trait File: FsNode { method open (line 191) | fn open(&self, _options: &OpenFlags) -> KResult> { method stat (line 196) | fn stat(&self) -> KResult { method readlink (line 201) | fn readlink(&self) -> KResult { method poll (line 207) | fn poll(&self) -> KResult { method ioctl (line 212) | fn ioctl(&self, _cmd: usize, _arg: usize) -> KResult { method read (line 217) | fn read(&self, _offset: usize, _buf: UserBufferMut, _options: &OpenFla... method write (line 222) | fn write(&self, _offset: usize, _buf: UserBuffer<'_>, _options: &OpenF... type Symlink (line 227) | pub trait Symlink: FsNode { method link_location (line 228) | fn link_location(&self) -> KResult; method stat (line 229) | fn stat(&self) -> KResult; method fsync (line 230) | fn fsync(&self) -> KResult<()> { type Directory (line 235) | pub trait Directory: FsNode { method insert (line 236) | fn insert(&self, inode: INode); method lookup (line 239) | fn lookup(&self, name: &str) -> KResult; method stat (line 241) | fn stat(&self) -> KResult; method fsync (line 243) | fn fsync(&self) -> KResult<()> { method readlink (line 247) | fn readlink(&self) -> KResult { method readdir (line 252) | fn readdir(&self, index: usize) -> KResult>; method unlink (line 254) | fn unlink(&self, name: &str) -> KResult<()>; type INode (line 258) | pub enum INode { method is_file (line 266) | pub fn is_file(&self) -> bool { method is_dir (line 270) | pub fn is_dir(&self) -> bool { method is_symlink (line 274) | pub fn is_symlink(&self) -> bool { method is_pipe (line 278) | pub fn is_pipe(&self) -> bool { method as_file (line 282) | pub fn as_file(&self) -> KResult<&FileRef> { method stat (line 289) | pub fn stat(&self) -> KResult { method as_dir (line 298) | pub fn as_dir(&self) -> KResult<&DirRef> { method as_symlink (line 305) | pub fn as_symlink(&self) -> KResult<&SymlinkRef> { method as_pipe (line 312) | pub fn as_pipe(&self) -> KResult<&Arc> { FILE: src/fs/opened_file.rs constant FD_MAX (line 21) | const FD_MAX: c_int = 1024; type FileDesc (line 50) | pub type FileDesc = c_int; type OpenedFile (line 53) | pub struct OpenedFile { method new (line 60) | pub fn new(path: PathComponent, options: OpenFlags, pos: usize) -> Ope... method as_file (line 68) | pub fn as_file(&self) -> KResult<&FileRef> { method as_dir (line 72) | pub fn as_dir(&self) -> KResult<&DirRef> { method pos (line 76) | pub fn pos(&self) -> usize { method options (line 80) | pub fn options(&self) -> OpenFlags { method path (line 84) | pub fn path(&self) -> &PathComponent { method inode (line 88) | pub fn inode(&self) -> &INode { method read (line 92) | pub fn read(&self, buf: UserBufferMut) -> KResult { method write (line 100) | pub fn write(&self, buf: UserBuffer) -> KResult { method set_close_on_exec (line 108) | pub fn set_close_on_exec(&self, close_on_exec: bool) { method set_flags (line 114) | pub fn set_flags(&self, flags: OpenFlags) -> KResult<()> { method get_flags (line 120) | pub fn get_flags(&self) -> OpenFlags { method poll (line 124) | pub fn poll(&self) -> KResult { method ioctl (line 128) | pub fn ioctl(&self, cmd: usize, arg: usize) -> KResult { method readdir (line 132) | pub fn readdir(&self) -> KResult> { method lseek (line 140) | pub fn lseek(&self, offset: usize, whence: LseekWhence) -> KResult Self { type LocalOpenedFile (line 172) | pub struct LocalOpenedFile { type Target (line 177) | type Target = OpenedFile; method deref (line 179) | fn deref(&self) -> &Self::Target { type OpenedFileTable (line 185) | pub struct OpenedFileTable { method new (line 197) | pub fn new() -> OpenedFileTable { method get (line 204) | pub fn get(&self, fd: FileDesc) -> KResult { method open (line 211) | pub fn open(&mut self, path: PathComponent, options: OpenFlags) -> KRe... method open_with_fd (line 217) | pub fn open_with_fd( method alloc_fd (line 257) | fn alloc_fd(&mut self, gte: Option) -> KResult { method close_all (line 275) | pub fn close_all(&mut self) { method close_cloexec_files (line 279) | pub fn close_cloexec_files(&mut self) { method close (line 302) | pub fn close(&mut self, fd: FileDesc) -> KResult<()> { method dup (line 310) | pub fn dup(&mut self, fd: FileDesc, gte: Option, options: OpenFla... method dup2 (line 318) | pub fn dup2(&mut self, old_fd: FileDesc, new_fd: FileDesc) -> KResult<... method open_socket (line 325) | pub fn open_socket(&mut self, domain: usize, typ: usize, protocol: usi... method open_pipe (line 350) | pub fn open_pipe(&mut self, options: OpenFlags) -> KResult> { method default (line 191) | fn default() -> Self { FILE: src/fs/path.rs type Path (line 6) | pub struct Path { method new (line 11) | pub fn new(path: &str) -> &Path { method as_str (line 20) | pub fn as_str(&self) -> &str { method is_empty (line 24) | pub fn is_empty(&self) -> bool { method is_absolute (line 28) | pub fn is_absolute(&self) -> bool { method is_pipe (line 35) | pub fn is_pipe(&self) -> bool { method pipe_name (line 39) | pub fn pipe_name(&self) -> Option<&str> { method components (line 47) | pub fn components(&self) -> Components<'_> { method parent_and_basename (line 57) | pub fn parent_and_basename(&self) -> Option<(&Path, &str)> { method as_ref (line 78) | fn as_ref(&self) -> &Path { method fmt (line 90) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { function as_ref (line 84) | fn as_ref(&self) -> &Path { type Components (line 95) | pub struct Components<'a> { type Item (line 100) | type Item = &'a str; method next (line 101) | fn next(&mut self) -> Option { type PathBuf (line 117) | pub struct PathBuf { method new (line 122) | pub fn new() -> PathBuf { method as_path (line 128) | pub fn as_path(&self) -> &Path { method pop (line 132) | pub fn pop(&mut self) { method push (line 138) | pub fn push>(&mut self, path: P) { type Target (line 164) | type Target = Path; method deref (line 165) | fn deref(&self) -> &Self::Target { method as_ref (line 171) | fn as_ref(&self) -> &Path { method from (line 177) | fn from(value: &Path) -> Self { method from (line 185) | fn from(value: String) -> Self { method from (line 192) | fn from(value: &str) -> Self { method default (line 158) | fn default() -> Self { type PathComponent (line 201) | pub struct PathComponent { method resolve_abs_path (line 208) | pub fn resolve_abs_path(&self) -> PathBuf { FILE: src/fs/pipe.rs type Pipe (line 14) | pub struct Pipe { method new (line 22) | pub fn new(read_fd: FileDesc, write_fd: FileDesc) -> Self { method read_pipe (line 31) | pub fn read_pipe(&self, buf: UserBufferMut<'_>) -> KResult { method write_pipe (line 51) | pub fn write_pipe(&self, buf: UserBuffer<'_>) -> KResult { method read_fd (line 71) | pub fn read_fd(&self) -> FileDesc { method write_fd (line 75) | pub fn write_fd(&self) -> FileDesc { method get_name (line 81) | fn get_name(&self) -> alloc::string::String { method read (line 87) | fn read( method write (line 96) | fn write( type PipeFs (line 106) | pub struct PipeFs { method new (line 112) | pub const fn new() -> Self { method insert (line 118) | pub fn insert(&self, pipe: Arc) { method lookup (line 122) | pub fn lookup(&self, path: &Path) -> KResult> { FILE: src/god_mode.rs function init (line 19) | pub fn init() { function read_cmd (line 26) | fn read_cmd() -> String { function god_mode_repl (line 44) | pub fn god_mode_repl() { FILE: src/graphics/mod.rs constant FONT (line 19) | const FONT: MonoFont = FONT_8X13; type FrameBuffer (line 21) | pub struct FrameBuffer { method width (line 34) | pub fn width(&self) -> usize { method height (line 38) | pub fn height(&self) -> usize { method bpp (line 42) | pub fn bpp(&self) -> usize { method render_text_buf (line 46) | pub fn render_text_buf(&mut self) { method clear_pixels (line 75) | pub fn clear_pixels(&mut self) { method frame_mut (line 79) | pub fn frame_mut(&mut self) -> &mut [u32] { method present (line 83) | pub fn present(&mut self) { method write_byte (line 91) | pub fn write_byte(&mut self, byte: u8) { method cursor_color_hook (line 111) | fn cursor_color_hook(&mut self) {} method backspace (line 113) | pub fn backspace(&mut self) { method write_string (line 121) | pub fn write_string(&mut self, s: &str) { method new_line (line 127) | fn new_line(&mut self) { method clear_row (line 145) | fn clear_row(&mut self, row: usize) { method clear_until_end (line 151) | fn clear_until_end(&mut self) { method clear_until_beginning (line 160) | fn clear_until_beginning(&mut self) { method clear_until_eol (line 169) | fn clear_until_eol(&mut self) { method clear_from_bol (line 175) | fn clear_from_bol(&mut self) { method clear_line (line 181) | fn clear_line(&mut self) { method clear_all (line 184) | fn clear_all(&mut self) { method move_up (line 190) | fn move_up(&mut self) { method move_down (line 200) | fn move_down(&mut self) { method move_left (line 210) | fn move_left(&mut self) { method move_right (line 214) | fn move_right(&mut self) { method write_str (line 221) | fn write_str(&mut self, s: &str) -> core::fmt::Result { type Color (line 228) | type Color = Rgb888; type Error (line 229) | type Error = core::convert::Infallible; method draw_iter (line 231) | fn draw_iter(&mut self, pixels: I) -> Result<(), Self::Error> method clear (line 246) | fn clear(&mut self, color: Self::Color) -> Result<(), Self::Error> { method size (line 253) | fn size(&self) -> embedded_graphics::prelude::Size { function fb (line 260) | pub fn fb<'a>() -> IrqMutexGuard<'a, FrameBuffer> { function clear_screen (line 264) | pub fn clear_screen() { function backspace (line 268) | pub fn backspace() { function set_cursor_x (line 272) | pub fn set_cursor_x(x: usize) { function set_cursor_y (line 276) | pub fn set_cursor_y(y: usize) { function set_cursor_xy (line 280) | pub fn set_cursor_xy(xy: (usize, usize)) { function cursor_xy (line 285) | pub fn cursor_xy() -> (usize, usize) { function write_byte (line 290) | pub fn write_byte(byte: u8) { function clear_until_end (line 294) | pub fn clear_until_end() { function clear_until_beginning (line 298) | pub fn clear_until_beginning() { function clear_from_bol (line 302) | pub fn clear_from_bol() { function clear_until_eol (line 306) | pub fn clear_until_eol() { function clear_line (line 310) | pub fn clear_line() { function move_up (line 314) | pub fn move_up() { function move_down (line 318) | pub fn move_down() { function move_left (line 322) | pub fn move_left() { function move_right (line 326) | pub fn move_right() { function render_text_buf (line 330) | pub fn render_text_buf() { function _fb_print (line 351) | pub fn _fb_print(args: core::fmt::Arguments) { function init (line 358) | pub fn init(fb_tag: &FramebufferResponse) -> KResult<()> { FILE: src/logging.rs type KaDOSLogger (line 8) | struct KaDOSLogger; method enabled (line 11) | fn enabled(&self, _metadata: &log::Metadata) -> bool { method log (line 15) | fn log(&self, record: &log::Record) { method flush (line 40) | fn flush(&self) {} type KaDOSProfiler (line 43) | struct KaDOSProfiler; method read_clock (line 46) | fn read_clock(&self) -> embedded_profiling::EPInstant { method log_snapshot (line 51) | fn log_snapshot(&self, snapshot: &embedded_profiling::EPSnapshot) { function init (line 56) | pub fn init() { FILE: src/main.rs function phys_offset (line 43) | pub fn phys_offset() -> VirtAddr { function start (line 48) | pub extern "C" fn start() -> ! { function hcf (line 54) | pub fn hcf() -> ! { FILE: src/mem/addr.rs type PhysAddr (line 14) | pub struct PhysAddr { method new_unchecked (line 40) | pub const unsafe fn new_unchecked(addr: usize) -> Self { method new (line 45) | pub const fn new(addr: usize) -> Self { method null (line 55) | pub const fn null() -> Self { method is_null (line 60) | pub const fn is_null(&self) -> bool { method is_canonical (line 65) | pub const fn is_canonical(&self) -> bool { method value (line 70) | pub const fn value(&self) -> usize { method as_hhdm_virt (line 75) | pub fn as_hhdm_virt(&self) -> VirtAddr { method is_aligned (line 80) | pub fn is_aligned(&self, align: usize) -> bool { method const_add (line 84) | pub const fn const_add(&self, offset: usize) -> Self { method const_sub (line 88) | pub const fn const_sub(&self, offset: usize) -> Self { method fmt (line 94) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 102) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 108) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 114) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 120) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 126) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type Output (line 132) | type Output = Self; method add (line 133) | fn add(self, rhs: usize) -> Self::Output { method add_assign (line 139) | fn add_assign(&mut self, rhs: usize) { type Output (line 145) | type Output = Self; method sub (line 146) | fn sub(self, rhs: usize) -> Self::Output { method sub_assign (line 152) | fn sub_assign(&mut self, rhs: usize) { type Output (line 158) | type Output = usize; method sub (line 159) | fn sub(self, rhs: PhysAddr) -> Self::Output { function canonicalize_physaddr (line 19) | pub const fn canonicalize_physaddr(addr: usize) -> usize { function is_canonical_physaddr (line 24) | pub const fn is_canonical_physaddr(addr: usize) -> bool { function canonicalize_virtaddr (line 29) | pub const fn canonicalize_virtaddr(addr: usize) -> usize { function is_canonical_virtaddr (line 34) | pub const fn is_canonical_virtaddr(addr: usize) -> bool { type VirtAddr (line 166) | pub struct VirtAddr { method new_unchecked (line 172) | pub const unsafe fn new_unchecked(addr: usize) -> Self { method new (line 177) | pub const fn new(addr: usize) -> Self { method null (line 183) | pub const fn null() -> Self { method is_null (line 188) | pub const fn is_null(&self) -> bool { method is_canonical (line 193) | pub const fn is_canonical(&self) -> bool { method value (line 198) | pub const fn value(&self) -> usize { method const_add (line 203) | pub const fn const_add(&self, offset: usize) -> Self { method const_sub (line 208) | pub const fn const_sub(&self, offset: usize) -> Self { method as_raw_ptr (line 213) | pub const fn as_raw_ptr(&self) -> *const T { method as_raw_ptr_mut (line 218) | pub const fn as_raw_ptr_mut(&self) -> *mut T { method deref (line 223) | pub unsafe fn deref(&self) -> KResult<&T> { method deref_mut (line 229) | pub unsafe fn deref_mut(&mut self) -> KResult<&mut T> { method as_ptr (line 235) | pub const fn as_ptr(self) -> UnsafePtr { method as_hhdm_phys (line 240) | pub fn as_hhdm_phys(&self) -> PhysAddr { method align_ok (line 244) | pub const fn align_ok(&self) -> KResult<()> { method user_ok (line 258) | pub fn user_ok(&self) -> KResult<()> { method read (line 272) | pub unsafe fn read(&self) -> KResult { method read_volatile (line 277) | pub unsafe fn read_volatile(&self) -> KResult { method read_user (line 282) | pub unsafe fn read_user(&self) -> KResult { method read_bytes (line 289) | pub unsafe fn read_bytes(&self, buf: &mut [u8]) -> KResult { method read_bytes_user (line 295) | pub unsafe fn read_bytes_user(&self, buf: &mut [u8]) -> KResult { method write (line 303) | pub unsafe fn write(&self, t: T) -> KResult<()> { method write_volatile (line 309) | pub unsafe fn write_volatile(&self, t: T) -> KResult<... method write_user (line 315) | pub unsafe fn write_user(&self, t: T) -> KResult<()> { method write_bytes (line 323) | pub unsafe fn write_bytes(&self, bytes: &[u8]) -> KResult { method write_bytes_user (line 334) | pub unsafe fn write_bytes_user(&self, bytes: &[u8]) -> KResult { method fill (line 348) | pub unsafe fn fill(&self, value: u8, len: usize) -> KResult { method align_down (line 357) | pub const fn align_down(&self, align: usize) -> Self { method align_up (line 362) | pub const fn align_up(&self, align: usize) -> Self { method p4_index (line 366) | pub fn p4_index(&self) -> usize { method p3_index (line 369) | pub fn p3_index(&self) -> usize { method p2_index (line 372) | pub fn p2_index(&self) -> usize { method p1_index (line 375) | pub fn p1_index(&self) -> usize { method fmt (line 381) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 390) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 397) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 404) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 411) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method fmt (line 418) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type Output (line 424) | type Output = Self; method add (line 426) | fn add(self, rhs: usize) -> Self::Output { method add_assign (line 433) | fn add_assign(&mut self, rhs: usize) { type Output (line 439) | type Output = Self; method sub (line 441) | fn sub(self, rhs: usize) -> Self::Output { method sub_assign (line 448) | fn sub_assign(&mut self, rhs: usize) { type Output (line 454) | type Output = usize; method sub (line 456) | fn sub(self, rhs: VirtAddr) -> Self::Output { type UnsafePtr (line 464) | pub struct UnsafePtr { function new (line 470) | pub const fn new(addr: VirtAddr) -> Self { function from_ref (line 487) | pub fn from_ref(data: &T) -> Self { function from_mut (line 491) | pub fn from_mut(data: &mut T) -> Self { function from_raw_ptr (line 495) | pub fn from_raw_ptr(ptr: *mut T) -> Self { function as_raw_ptr (line 499) | pub fn as_raw_ptr(&self) -> *const T { function as_raw_ptr_mut (line 503) | pub fn as_raw_ptr_mut(&self) -> *mut T { function deref (line 507) | pub unsafe fn deref(&self) -> &T { function deref_mut (line 511) | pub unsafe fn deref_mut(&mut self) -> &mut T { function as_ref (line 515) | pub unsafe fn as_ref(&self) -> Ref<'_, T> { function as_mut (line 519) | pub unsafe fn as_mut(&mut self) -> Mut<'_, T> { function cast (line 523) | pub fn cast(self) -> UnsafePtr { function into_non_null (line 527) | pub fn into_non_null(self) -> NonNull { function read (line 535) | pub fn read(&self) -> KResult function read_volatile (line 542) | pub fn read_volatile(&self) -> KResult function fmt (line 551) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type UnsafeSlice (line 558) | pub struct UnsafeSlice { function new (line 565) | pub fn new(addr: VirtAddr, len: usize) -> Self { function len (line 583) | pub fn len(&self) -> usize { function is_empty (line 587) | pub fn is_empty(&self) -> bool { function as_ptr (line 591) | pub fn as_ptr(&self) -> UnsafePtr { function as_slice (line 595) | pub unsafe fn as_slice(&self) -> &[T] { function as_mut_slice (line 599) | pub unsafe fn as_mut_slice(&mut self) -> &mut [T] { function into_raw_parts (line 603) | pub fn into_raw_parts(self) -> (VirtAddr, usize) { type Ref (line 610) | pub struct Ref<'a, T> { function new (line 616) | pub fn new(data: &'a T) -> Self { function addr (line 623) | pub fn addr(&self) -> VirtAddr { function deref (line 628) | pub fn deref(&self) -> &'a T { function as_ptr (line 632) | pub fn as_ptr(&self) -> UnsafePtr { function as_raw_ptr (line 636) | pub fn as_raw_ptr(&self) -> *const T { function as_raw_ptr_mut (line 640) | pub fn as_raw_ptr_mut(&self) -> *mut T { type Target (line 646) | type Target = T; method deref (line 648) | fn deref(&self) -> &Self::Target { function fmt (line 654) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type Mut (line 661) | pub struct Mut<'a, T> { function new (line 667) | pub fn new(data: &'a mut T) -> Self { function addr (line 674) | pub fn addr(&self) -> VirtAddr { function as_ptr (line 678) | pub fn as_ptr(&self) -> UnsafePtr { function deref (line 683) | pub fn deref(&self) -> &'a T { function deref_mut (line 688) | pub fn deref_mut(&mut self) -> &'a mut T { function as_raw_ptr (line 692) | pub fn as_raw_ptr(&self) -> *const T { function as_raw_ptr_mut (line 696) | pub fn as_raw_ptr_mut(&self) -> *mut T { function fmt (line 702) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type Target (line 708) | type Target = T; method deref (line 710) | fn deref(&self) -> &Self::Target { method deref_mut (line 716) | fn deref_mut(&mut self) -> &mut Self::Target { type Slice (line 723) | pub struct Slice<'a, T> { function new (line 730) | pub fn new(data: &'a [T]) -> Self { function from_raw_parts (line 738) | pub unsafe fn from_raw_parts(addr: VirtAddr, len: usize) -> Self { function addr (line 747) | pub fn addr(&self) -> VirtAddr { function len (line 751) | pub fn len(&self) -> usize { function is_empty (line 755) | pub fn is_empty(&self) -> bool { function as_ptr (line 759) | pub fn as_ptr(&self) -> UnsafePtr { function as_slice (line 763) | pub fn as_slice(&self) -> &'a [T] { function as_raw_ptr (line 767) | pub fn as_raw_ptr(&self) -> *const T { function as_raw_ptr_mut (line 771) | pub fn as_raw_ptr_mut(&self) -> *mut T { function fmt (line 777) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type Target (line 783) | type Target = [T]; method deref (line 785) | fn deref(&self) -> &Self::Target { type Output (line 791) | type Output = T; function index (line 793) | fn index(&self, index: usize) -> &Self::Output { type SliceMut (line 800) | pub struct SliceMut<'a, T> { function new (line 807) | pub fn new(data: &'a mut [T]) -> Self { function from_raw_parts (line 815) | pub unsafe fn from_raw_parts(addr: VirtAddr, len: usize) -> Self { function addr (line 824) | pub fn addr(&self) -> VirtAddr { function len (line 828) | pub fn len(&self) -> usize { function is_empty (line 832) | pub fn is_empty(&self) -> bool { function as_ptr (line 836) | pub fn as_ptr(&self) -> UnsafePtr { function as_slice (line 840) | pub fn as_slice(&self) -> &'a [T] { function as_mut_slice (line 844) | pub fn as_mut_slice(&mut self) -> &'a mut [T] { function as_raw_ptr (line 848) | pub fn as_raw_ptr(&self) -> *const T { function as_raw_ptr_mut (line 852) | pub fn as_raw_ptr_mut(&self) -> *mut T { function fmt (line 858) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { type Target (line 864) | type Target = [T]; method deref (line 866) | fn deref(&self) -> &Self::Target { method deref_mut (line 872) | fn deref_mut(&mut self) -> &mut Self::Target { type Output (line 878) | type Output = T; function index (line 880) | fn index(&self, index: usize) -> &Self::Output { function index_mut (line 886) | fn index_mut(&mut self, index: usize) -> &mut Self::Output { FILE: src/mem/addr_space.rs type AddressSpace (line 19) | pub struct AddressSpace { method new (line 24) | pub fn new() -> KResult { method current (line 65) | pub fn current() -> Self { method cr3 (line 77) | pub fn cr3(&self) -> PhysAddr { method switch (line 81) | pub fn switch(&self) { method temporarily_switch (line 92) | pub fn temporarily_switch(&self) -> TmpAddrSpaceGuard { method with_mapper (line 98) | pub fn with_mapper(&mut self, f: impl FnOnce(Mapper) -> R) -> R { method map_two (line 107) | pub fn map_two( method is_active (line 123) | pub fn is_active(&self) -> bool { method fork (line 127) | pub fn fork(&mut self, set_cow: bool) -> KResult { type TmpAddrSpaceGuard (line 189) | pub struct TmpAddrSpaceGuard { method drop (line 194) | fn drop(&mut self) { FILE: src/mem/allocator.rs function alloc_kernel_frames (line 25) | pub fn alloc_kernel_frames(count: usize) -> KResult { function alloc_kernel_frames_at (line 33) | pub fn alloc_kernel_frames_at(start: Frame, count: usize) -> KResult KResult { function alloc_kernel_pages_at (line 49) | pub fn alloc_kernel_pages_at(start: Page, count: usize) -> KResult ... function free_kernel_pages (line 66) | pub fn free_kernel_pages(pages: &mut AllocatedPages, merge: bool) -> KRe... function init (line 75) | pub fn init(memmap: &[&Entry]) -> KResult<()> { type StaticListOrVec (line 111) | pub enum StaticListOrVec { function new_static (line 117) | pub const fn new_static() -> StaticListOrVec { function new_vec (line 120) | pub const fn new_vec() -> StaticListOrVec { function push (line 123) | pub fn push(&mut self, item: T) { function remove (line 129) | pub fn remove(&mut self, index: usize) -> T { function convert_to_vec (line 135) | pub fn convert_to_vec(&mut self) { function iter (line 143) | pub fn iter(&self) -> impl Iterator { function iter_mut (line 149) | pub fn iter_mut(&mut self) -> impl Iterator { function len (line 155) | pub fn len(&self) -> usize { function is_empty (line 161) | pub fn is_empty(&self) -> bool { function swap (line 167) | pub fn swap(&mut self, a: usize, b: usize) { function get (line 173) | pub fn get(&self, index: usize) -> Option<&T> { type Output (line 182) | type Output = T; function index (line 183) | fn index(&self, index: usize) -> &Self::Output { function index_mut (line 192) | fn index_mut(&mut self, index: usize) -> &mut Self::Output { type Allocator (line 201) | pub struct Allocator { function new_static (line 206) | pub fn new_static() -> Self { function new_vec (line 212) | pub fn new_vec() -> Self { function convert_to_heap_allocated (line 218) | pub fn convert_to_heap_allocated(&mut self) { function free_regions (line 222) | pub fn free_regions(&self) -> impl Iterator> { function insert_free_region (line 226) | pub unsafe fn insert_free_region(&mut self, range: MemoryRange) { function allocate (line 230) | pub fn allocate(&mut self, count: usize) -> KResult> { function allocate_at (line 252) | pub fn allocate_at(&mut self, start: T, count: usize) -> KResult, merge: bool) { type FrameAllocator (line 301) | pub type FrameAllocator = Allocator; type PageAllocator (line 302) | pub type PageAllocator = Allocator; FILE: src/mem/consts.rs constant PAGE_SHIFT (line 3) | pub const PAGE_SHIFT: usize = 12; constant PAGE_SIZE (line 4) | pub const PAGE_SIZE: usize = 0x1000; constant PAGE_TABLE_ENTRIES (line 5) | pub const PAGE_TABLE_ENTRIES: usize = 512; constant L4_SHIFT (line 6) | pub const L4_SHIFT: usize = 39; constant L3_SHIFT (line 7) | pub const L3_SHIFT: usize = 30; constant L2_SHIFT (line 8) | pub const L2_SHIFT: usize = 21; constant L1_SHIFT (line 9) | pub const L1_SHIFT: usize = 12; constant KERNEL_STACK_SIZE (line 11) | pub const KERNEL_STACK_SIZE: usize = PAGE_SIZE * 32; constant USER_STACK_SIZE (line 12) | pub const USER_STACK_SIZE: usize = PAGE_SIZE * 64; constant MAX_LOW_VADDR (line 16) | pub const MAX_LOW_VADDR: VirtAddr = unsafe { VirtAddr::new_unchecked(0x0... constant MIN_HIGH_VADDR (line 20) | pub const MIN_HIGH_VADDR: VirtAddr = unsafe { VirtAddr::new_unchecked(0x... constant USER_VALLOC_BASE (line 22) | pub const USER_VALLOC_BASE: VirtAddr = unsafe { VirtAddr::new_unchecked(... constant USER_VALLOC_END (line 23) | pub const USER_VALLOC_END: VirtAddr = unsafe { VirtAddr::new_unchecked(0... constant USER_STACK_TOP (line 24) | pub const USER_STACK_TOP: VirtAddr = unsafe { VirtAddr::new_unchecked(0x... constant USER_STACK_BOTTOM (line 25) | pub const USER_STACK_BOTTOM: VirtAddr = USER_STACK_TOP.const_sub(USER_ST... constant KERNEL_HEAP_START (line 27) | pub const KERNEL_HEAP_START: VirtAddr = unsafe { VirtAddr::new_unchecked... constant KERNEL_HEAP_SIZE (line 28) | pub const KERNEL_HEAP_SIZE: usize = 1024 * 1024 * 1024; FILE: src/mem/mod.rs function remap_kernel (line 30) | pub fn remap_kernel() -> KResult<&'static IrqMutex> { function init_heap (line 42) | pub fn init_heap(kernel_mapper: &mut Mapper) -> KResult { function kernel_addr_space_scope (line 60) | pub fn kernel_addr_space_scope() -> KResult { function with_kernel_addr_space (line 64) | pub fn with_kernel_addr_space R>(f: F) -> R { type KernelAddrSpaceGuard (line 70) | pub struct KernelAddrSpaceGuard { method new (line 76) | pub fn new() -> KResult { method drop (line 92) | fn drop(&mut self) { FILE: src/mem/paging/mapper.rs type PageFlush (line 19) | pub struct PageFlush(Page); method new (line 22) | pub fn new(page: Page) -> Self { method ignore (line 26) | pub fn ignore(self) {} method flush (line 28) | pub fn flush(self) { type Mapper (line 34) | pub struct Mapper<'a> { function new (line 39) | pub fn new(p4: &'a mut PageTable) -> Self { function into_inner (line 43) | pub fn into_inner(self) -> &'a mut PageTable { function translate (line 47) | pub fn translate(&self, addr: VirtAddr) -> Option<(PhysAddr, PageTableFl... function map_to_single (line 56) | pub fn map_to_single( function map_to (line 93) | pub fn map_to( function map (line 111) | pub fn map(&mut self, pages: AllocatedPages, flags: PageTableFlags) -> K... function set_flags (line 116) | pub fn set_flags(&mut self, mp: &mut MappedPages, flags: PageTableFlags) { function unmap (line 129) | pub unsafe fn unmap(&mut self, mp: MappedPages) -> (AllocatedPages, Allo... function unmap_single (line 143) | pub unsafe fn unmap_single(&mut self, page: Page) -> Option { function set_flags_single (line 155) | pub unsafe fn set_flags_single(&mut self, page: Page, flags: PageTableFl... FILE: src/mem/paging/table.rs function frame_to_table (line 20) | fn frame_to_table(frame: Frame) -> *mut PageTable { type PageTableEntry (line 27) | pub struct PageTableEntry { constant ADDRESS_MASK (line 32) | const ADDRESS_MASK: usize = 0x000f_ffff_ffff_f000; constant FLAGS_MASK (line 33) | const FLAGS_MASK: usize = 0x01ff; method new (line 36) | pub const fn new() -> Self { method is_unused (line 40) | pub const fn is_unused(&self) -> bool { method set_unused (line 44) | pub fn set_unused(&mut self) { method flags (line 48) | pub const fn flags(&self) -> PageTableFlags { method addr (line 52) | pub fn addr(&self) -> PhysAddr { method frame (line 56) | pub fn frame(&self) -> Option { method set_addr (line 66) | pub fn set_addr(&mut self, addr: PhysAddr, flags: PageTableFlags) { method set_frame (line 72) | pub fn set_frame(&mut self, frame: Frame, flags: PageTableFlags) { method set_flags (line 76) | pub fn set_flags(&mut self, flags: PageTableFlags) { method fmt (line 83) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { type PageTable (line 93) | pub struct PageTable { method new (line 100) | pub const fn new() -> Self { method zero (line 107) | pub fn zero(&mut self) { method next_table (line 113) | pub fn next_table<'b>(&self, index: usize) -> Option<&'b PageTable> { method next_table_mut (line 118) | pub fn next_table_mut<'b>(&self, index: usize) -> Option<&'b mut PageT... method next_table_create (line 123) | pub fn next_table_create<'b>( type Output (line 161) | type Output = PageTableEntry; method index (line 162) | fn index(&self, index: usize) -> &Self::Output { method index_mut (line 168) | fn index_mut(&mut self, index: usize) -> &mut Self::Output { method fmt (line 174) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { function active_table (line 189) | pub fn active_table() -> &'static mut PageTable { FILE: src/mem/paging/units.rs type PageIndex (line 17) | pub struct PageIndex(pub usize); method new (line 21) | pub fn new(index: usize) -> Self { method containing_physaddr (line 26) | pub fn containing_physaddr(paddr: PhysAddr) -> Self { method containing_virtaddr (line 31) | pub fn containing_virtaddr(vaddr: VirtAddr) -> Self { method as_physaddr (line 36) | pub fn as_physaddr(self) -> PhysAddr { method as_virtaddr (line 41) | pub fn as_virtaddr(self) -> VirtAddr { type Output (line 47) | type Output = Self; method add (line 48) | fn add(self, rhs: usize) -> Self::Output { type Output (line 54) | type Output = Self; method sub (line 55) | fn sub(self, rhs: usize) -> Self::Output { method add_assign (line 61) | fn add_assign(&mut self, rhs: usize) { method sub_assign (line 67) | fn sub_assign(&mut self, rhs: usize) { type MemoryUnit (line 72) | pub trait MemoryUnit: method containing_address (line 93) | fn containing_address(addr: Self::Address) -> Self; method at_index (line 94) | fn at_index(index: PageIndex) -> Self; method start_address (line 95) | fn start_address(self) -> Self::Address; method inclusive_end_address (line 96) | fn inclusive_end_address(self) -> Self::Address; method index (line 97) | fn index(self) -> PageIndex; type Address (line 107) | type Address = PhysAddr; method containing_address (line 110) | fn containing_address(addr: PhysAddr) -> Self { method at_index (line 117) | fn at_index(index: PageIndex) -> Self { method start_address (line 122) | fn start_address(self) -> Self::Address { method inclusive_end_address (line 127) | fn inclusive_end_address(self) -> Self::Address { method index (line 132) | fn index(self) -> PageIndex { type Address (line 175) | type Address = VirtAddr; method containing_address (line 178) | fn containing_address(addr: VirtAddr) -> Self { method at_index (line 185) | fn at_index(index: PageIndex) -> Self { method start_address (line 190) | fn start_address(self) -> Self::Address { method inclusive_end_address (line 195) | fn inclusive_end_address(self) -> Self::Address { method index (line 200) | fn index(self) -> PageIndex { type Frame (line 102) | pub struct Frame { type Output (line 144) | type Output = Self; method add (line 145) | fn add(self, rhs: usize) -> Self::Output { type Output (line 151) | type Output = Self; method sub (line 152) | fn sub(self, rhs: usize) -> Self::Output { method add_assign (line 158) | fn add_assign(&mut self, rhs: usize) { method sub_assign (line 164) | fn sub_assign(&mut self, rhs: usize) { method fmt (line 138) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { type Page (line 170) | pub struct Page { type Output (line 212) | type Output = Self; method add (line 213) | fn add(self, rhs: usize) -> Self::Output { type Output (line 219) | type Output = Self; method sub (line 220) | fn sub(self, rhs: usize) -> Self::Output { method add_assign (line 226) | fn add_assign(&mut self, rhs: usize) { method sub_assign (line 232) | fn sub_assign(&mut self, rhs: usize) { method fmt (line 206) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { type PageMergeError (line 238) | pub struct PageMergeError; type MemoryRange (line 241) | pub struct MemoryRange { function new (line 248) | pub fn new(start: T, end: T) -> Self { function empty (line 253) | pub fn empty() -> Self { function start (line 261) | pub fn start(self) -> T { function end (line 266) | pub fn end(self) -> T { function size_in_pages (line 271) | pub fn size_in_pages(self) -> usize { function size_in_bytes (line 279) | pub fn size_in_bytes(self) -> usize { function is_empty (line 284) | pub fn is_empty(self) -> bool { function start_address (line 289) | pub fn start_address(self) -> T::Address { function end_address (line 294) | pub fn end_address(self) -> T::Address { function inclusive_end_address (line 299) | pub fn inclusive_end_address(self) -> T::Address { function merge_with (line 303) | pub fn merge_with(&mut self, other: Self) -> Result<(), PageMergeError> { function overlaps (line 320) | pub fn overlaps(self, other: Self) -> bool { function consumes (line 327) | pub fn consumes(self, other: Self) -> bool { function contains (line 334) | pub fn contains(self, unit: T) -> bool { function iter (line 341) | pub fn iter(self) -> MemoryRangeIter { type FrameRange (line 349) | pub type FrameRange = MemoryRange; type PageRange (line 350) | pub type PageRange = MemoryRange; type MemoryRangeIter (line 352) | pub struct MemoryRangeIter { type Item (line 358) | type Item = T; method next (line 359) | fn next(&mut self) -> Option { type Allocated (line 370) | pub struct Allocated { function assume_allocated (line 375) | pub unsafe fn assume_allocated(range: MemoryRange) -> Self { method fmt (line 381) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { type AllocatedFrames (line 391) | pub type AllocatedFrames = Allocated; type AllocatedPages (line 392) | pub type AllocatedPages = Allocated; type Target (line 395) | type Target = MemoryRange; function deref (line 396) | fn deref(&self) -> &Self::Target { function deref_mut (line 402) | fn deref_mut(&mut self) -> &mut Self::Target { type MappedPages (line 407) | pub struct MappedPages { method assume_mapped (line 414) | pub unsafe fn assume_mapped( method unmap (line 426) | pub unsafe fn unmap(self, table: &mut Mapper) -> (AllocatedPages, Allo... method pages (line 430) | pub fn pages(&self) -> &AllocatedPages { method frames (line 434) | pub fn frames(&self) -> &AllocatedFrames { method flags (line 438) | pub fn flags(&self) -> PageTableFlags { method fmt (line 444) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { FILE: src/serial.rs constant SERIAL0_IOPORT (line 8) | pub const SERIAL0_IOPORT: u16 = 0x3f8; constant SERIAL1_IOPORT (line 9) | pub const SERIAL1_IOPORT: u16 = 0x2f8; constant SERIAL2_IOPORT (line 10) | pub const SERIAL2_IOPORT: u16 = 0x3e8; function _print0 (line 33) | pub fn _print0(args: ::core::fmt::Arguments) { function _print1 (line 63) | pub fn _print1(args: ::core::fmt::Arguments) { function serial1_recv (line 75) | pub fn serial1_recv() -> Option { function _print2 (line 109) | pub fn _print2(args: ::core::fmt::Arguments) { FILE: src/task/group.rs type PgId (line 10) | pub type PgId = i32; type TaskGroup (line 12) | pub struct TaskGroup { method new (line 18) | pub(super) fn new(pgid: PgId) -> Arc> { method pgid (line 25) | pub fn pgid(&self) -> PgId { method set_pgid (line 29) | pub fn set_pgid(&mut self, pgid: PgId) { method add (line 33) | pub fn add(&mut self, task: Weak) { method remove (line 37) | pub fn remove(&mut self, task: &Weak) { method gc_dropped_processes (line 44) | pub fn gc_dropped_processes(&mut self) { method signal (line 51) | pub fn signal(&mut self, signal: Signal) { FILE: src/task/mod.rs function init (line 45) | pub fn init() { function get_scheduler (line 49) | pub fn get_scheduler() -> &'static Arc { function current_task (line 53) | pub fn current_task() -> Arc { type TaskId (line 58) | pub struct TaskId(usize); method new (line 61) | pub const fn new(pid: usize) -> Self { method allocate (line 65) | fn allocate() -> Self { method as_usize (line 70) | pub fn as_usize(&self) -> usize { type TaskState (line 76) | pub enum TaskState { type Task (line 82) | pub struct Task { method new_idle (line 109) | pub fn new_idle(sched: &mut Scheduler) -> Arc { method new_kernel (line 132) | pub fn new_kernel(sched: &Scheduler, entry_point: fn(), enable_interru... method exec (line 158) | pub fn exec(&self, file: FileRef, argv: &[&[u8]], envp: &[&[u8]]) -> K... method make_child (line 173) | pub fn make_child(&self, arch: UnsafeCell) -> Arc { method fork (line 201) | pub fn fork(&self) -> Arc { method clone_process (line 206) | pub fn clone_process( method add_child (line 245) | fn add_child(&self, child: Arc) { method arch_mut (line 252) | pub fn arch_mut(&self) -> &mut ArchTask { method pid (line 256) | pub fn pid(&self) -> TaskId { method ppid (line 260) | pub fn ppid(&self) -> TaskId { method pgid (line 268) | pub fn pgid(&self) -> Option { method get_state (line 272) | pub fn get_state(&self) -> TaskState { method set_state (line 276) | pub fn set_state(&self, state: TaskState) { method set_parent (line 284) | fn set_parent(&self, parent: Weak) { method belongs_to_group (line 288) | pub fn belongs_to_group(&self, pg: &Weak>) -> bool { method get_opened_file_by_fd (line 292) | pub fn get_opened_file_by_fd(&self, fd: FileDesc) -> KResult Arc> { method handle_page_fault (line 300) | pub fn handle_page_fault( method set_signal_mask (line 312) | pub fn set_signal_mask( method has_pending_signals (line 339) | pub fn has_pending_signals(&self) -> bool { FILE: src/task/scheduler.rs type Scheduler (line 32) | pub struct Scheduler { method new (line 50) | pub fn new() -> Arc { method push_runnable (line 73) | pub fn push_runnable(&self, task: Arc, priority: bool) { method push_waiting (line 88) | pub fn push_waiting(&self, task: Arc) { method push_deadline_waiting (line 102) | pub fn push_deadline_waiting(&self, task: Arc, duration: usize) { method check_deadline (line 115) | fn check_deadline(&self) { method current_task_opt (line 132) | pub fn current_task_opt(&self) -> Option> { method current_task (line 139) | pub fn current_task(&self) -> Arc { method find_task (line 146) | pub fn find_task(&self, pid: TaskId) -> Option> { method find_group (line 150) | pub fn find_group(&self, pgid: PgId) -> Option... method find_or_create_group (line 154) | pub fn find_or_create_group(&self, pgid: PgId) -> Arc, signal: Signal) { method resume_task (line 203) | pub fn resume_task(&self, task: Arc) { method try_delivering_signal (line 207) | pub fn try_delivering_signal( method restore_signaled_user_stack (line 249) | pub fn restore_signaled_user_stack(&self, current_frame: &mut Interrup... method reap_dead (line 258) | pub fn reap_dead(&self) { method preempt (line 275) | pub fn preempt(&self) { method sleep (line 294) | pub fn sleep(&self, duration: Option) -> KResult<()> { function switch (line 312) | pub fn switch() { function reap (line 384) | fn reap() { function preempt (line 392) | fn preempt() { FILE: src/task/signal.rs type Signal (line 8) | pub type Signal = c_int; constant SIGHUP (line 10) | pub const SIGHUP: Signal = 1; constant SIGINT (line 12) | pub const SIGINT: Signal = 2; constant SIGQUIT (line 14) | pub const SIGQUIT: Signal = 3; constant SIGILL (line 16) | pub const SIGILL: Signal = 4; constant SIGTRAP (line 18) | pub const SIGTRAP: Signal = 5; constant SIGABRT (line 20) | pub const SIGABRT: Signal = 6; constant SIGBUS (line 22) | pub const SIGBUS: Signal = 7; constant SIGFPE (line 24) | pub const SIGFPE: Signal = 8; constant SIGKILL (line 26) | pub const SIGKILL: Signal = 9; constant SIGUSR1 (line 28) | pub const SIGUSR1: Signal = 10; constant SIGSEGV (line 30) | pub const SIGSEGV: Signal = 11; constant SIGUSR2 (line 32) | pub const SIGUSR2: Signal = 12; constant SIGPIPE (line 34) | pub const SIGPIPE: Signal = 13; constant SIGALRM (line 36) | pub const SIGALRM: Signal = 14; constant SIGTERM (line 38) | pub const SIGTERM: Signal = 15; constant SIGSTKFLT (line 40) | pub const SIGSTKFLT: Signal = 16; constant SIGCHLD (line 42) | pub const SIGCHLD: Signal = 17; constant SIGCONT (line 44) | pub const SIGCONT: Signal = 18; constant SIGSTOP (line 46) | pub const SIGSTOP: Signal = 19; constant SIGTSTP (line 48) | pub const SIGTSTP: Signal = 20; constant SIGTTIN (line 50) | pub const SIGTTIN: Signal = 21; constant SIGTTOU (line 52) | pub const SIGTTOU: Signal = 22; constant SIGURG (line 54) | pub const SIGURG: Signal = 23; constant SIGXCPU (line 56) | pub const SIGXCPU: Signal = 24; constant SIGXFSZ (line 58) | pub const SIGXFSZ: Signal = 25; constant SIGVTALRM (line 60) | pub const SIGVTALRM: Signal = 26; constant SIGPROF (line 62) | pub const SIGPROF: Signal = 27; constant SIGWINCH (line 64) | pub const SIGWINCH: Signal = 28; constant SIGIO (line 66) | pub const SIGIO: Signal = 29; constant SIGPWR (line 68) | pub const SIGPWR: Signal = 30; constant SIGSYS (line 70) | pub const SIGSYS: Signal = 31; constant SIGMAX (line 72) | const SIGMAX: c_int = 32; constant SIG_DFL (line 74) | pub const SIG_DFL: usize = 0; constant SIG_IGN (line 75) | pub const SIG_IGN: usize = 1; constant SIG_ERR (line 76) | pub const SIG_ERR: usize = usize::MAX; type SigAction (line 79) | pub enum SigAction { constant DEFAULT_ACTIONS (line 85) | pub const DEFAULT_ACTIONS: [SigAction; SIGMAX as usize] = [ type SignalDelivery (line 121) | pub struct SignalDelivery { method new (line 133) | pub fn new() -> SignalDelivery { method get_action (line 140) | pub fn get_action(&self, signal: Signal) -> SigAction { method set_action (line 144) | pub fn set_action(&mut self, signal: Signal, action: SigAction) -> KRe... method is_pending (line 153) | pub fn is_pending(&self) -> bool { method signal (line 157) | pub fn signal(&mut self, signal: Signal) { method pop_pending (line 161) | pub fn pop_pending(&mut self) -> Option<(Signal, SigAction)> { method default (line 127) | fn default() -> Self { type SigSet (line 172) | pub type SigSet = BitArray<[u8; 8], LocalBits>; type SignalMask (line 175) | pub enum SignalMask { FILE: src/task/vmem.rs method from (line 50) | fn from(e: MMapProt) -> Self { type MMapKind (line 69) | pub enum MMapKind { type VmemArea (line 79) | pub struct VmemArea { method new (line 88) | pub const fn new( method null (line 104) | pub const fn null() -> Self { method contains_addr (line 114) | pub fn contains_addr(&self, addr: VirtAddr) -> bool { method overlaps_range (line 118) | pub fn overlaps_range(&self, start: VirtAddr, end: VirtAddr) -> bool { method start_address (line 122) | pub fn start_address(&self) -> VirtAddr { method end_address (line 126) | pub fn end_address(&self) -> VirtAddr { method size_in_bytes (line 130) | pub fn size_in_bytes(&self) -> usize { method merge_with (line 134) | pub fn merge_with(&mut self, other: Self) -> KResult<()> { type Vmem (line 152) | pub struct Vmem { method new (line 159) | pub fn new() -> Self { method area_containing_mut (line 174) | pub fn area_containing_mut( method area_containing (line 184) | pub fn area_containing(&self, start_addr: VirtAddr, end_addr: VirtAddr... method add_area (line 190) | pub fn add_area( method merge_contiguous_chunks (line 215) | pub fn merge_contiguous_chunks(&mut self) { method zero_memory (line 233) | fn zero_memory(&self, start_addr: VirtAddr, end_addr: VirtAddr) -> KRe... method mprotect (line 238) | pub fn mprotect( method mremap (line 251) | pub fn mremap( method mmap (line 325) | pub fn mmap( method find_free_space_above (line 410) | fn find_free_space_above( method map_area (line 435) | pub fn map_area( method do_unmap (line 463) | unsafe fn do_unmap( method munmap (line 496) | pub fn munmap( method clear (line 557) | pub fn clear(&mut self, active_mapper: &mut Mapper) { method log (line 568) | pub fn log(&self) { method fork_from (line 582) | pub fn fork_from(&mut self, parent: &Vmem) { method handle_page_fault (line 592) | pub fn handle_page_fault( method default (line 717) | fn default() -> Self { FILE: src/task/wait_queue.rs type WaitQueue (line 10) | pub struct WaitQueue { method new (line 21) | pub const fn new() -> WaitQueue { method sleep_signalable_until (line 27) | pub fn sleep_signalable_until( method default (line 15) | fn default() -> Self { FILE: src/userland/buffer.rs type Inner (line 13) | enum Inner<'a> { type UserBuffer (line 18) | pub struct UserBuffer<'a> { function from_vaddr (line 23) | pub fn from_vaddr(vaddr: VirtAddr, len: usize) -> UserBuffer<'static> { function from_slice (line 29) | pub fn from_slice(slc: &'a [u8]) -> UserBuffer<'a> { function len (line 36) | pub fn len(&self) -> usize { type InnerMut (line 45) | enum InnerMut<'a> { type UserBufferMut (line 50) | pub struct UserBufferMut<'a> { function from_slice (line 55) | pub fn from_slice(slice: &'a mut [u8]) -> UserBufferMut<'a> { function from_vaddr (line 61) | pub fn from_vaddr(vaddr: VirtAddr, len: usize) -> UserBufferMut<'static> { function len (line 68) | pub fn len(&self) -> usize { function user_strncpy_rust (line 76) | pub unsafe fn user_strncpy_rust(dst: *mut u8, src: *const u8, max_len: u... type CStr (line 89) | pub struct CStr { method new (line 94) | pub fn new(vaddr: VirtAddr, max_len: usize, is_user: bool) -> KResult<... method as_bytes (line 109) | pub fn as_bytes(&self) -> &[u8] { method as_str (line 113) | pub fn as_str(&self) -> &str { type UserBufferReader (line 118) | pub struct UserBufferReader<'a> { function from_vaddr (line 126) | pub fn from_vaddr(buf: VirtAddr, len: usize) -> UserBufferReader<'a> { function from_buf (line 135) | pub fn from_buf(buf: UserBuffer<'a>) -> UserBufferReader<'a> { function read_len (line 140) | pub fn read_len(&self) -> usize { function skip (line 144) | pub fn skip(&mut self, len: usize) -> KResult<()> { function read_bytes (line 150) | pub fn read_bytes(&mut self, dst: &mut [u8]) -> KResult { function read (line 170) | pub fn read(&mut self) -> KResult { function check_remaining_len (line 186) | fn check_remaining_len(&self, len: usize) -> KResult<()> { function remaining_len (line 194) | pub fn remaining_len(&self) -> usize { type UserBufferWriter (line 199) | pub struct UserBufferWriter<'a> { function from_vaddr (line 207) | pub fn from_vaddr(buf: VirtAddr, len: usize) -> UserBufferWriter<'a> { function from_buf (line 216) | pub fn from_buf(buf: UserBufferMut<'a>) -> UserBufferWriter<'a> { function written_len (line 221) | pub fn written_len(&self) -> usize { function write (line 225) | pub fn write(&mut self, value: T) -> KResult { function write_bytes (line 231) | pub fn write_bytes(&mut self, src: &[u8]) -> KResult { function skip_until_alignment (line 251) | pub fn skip_until_alignment(&mut self, alignment: usize) -> KResult<()> { function fill (line 258) | pub fn fill(&mut self, value: u8, len: usize) -> KResult<()> { function write_bytes_or_zeros (line 274) | pub fn write_bytes_or_zeros(&mut self, buf: &[u8], max_len: usize) -> KR... function check_remaining_len (line 282) | fn check_remaining_len(&self, len: usize) -> KResult<()> { function remaining_len (line 290) | pub fn remaining_len(&self) -> usize { FILE: src/userland/elf.rs function gen_stack_canary (line 21) | pub fn gen_stack_canary() -> [u8; 16] { type AuxvType (line 29) | pub enum AuxvType { type SymTabEntry (line 38) | pub struct SymTabEntry { type UserlandEntry (line 44) | pub struct UserlandEntry { function load_elf (line 53) | pub fn load_elf(file: FileRef) -> KResult { type KadosElfLoader (line 169) | struct KadosElfLoader<'a> { method allocate (line 179) | fn allocate( method load (line 226) | fn load( method tls (line 255) | fn tls( method relocate (line 269) | fn relocate( FILE: src/userland/syscall/mod.rs function errno_to_isize (line 29) | pub fn errno_to_isize(res: &Result>) -> isize { constant QUIET_SYSCALLS (line 39) | pub const QUIET_SYSCALLS: &[usize] = &[ type SyscallHandler (line 53) | pub struct SyscallHandler<'a> { function dispatch (line 59) | pub fn dispatch( function resolve_path (line 257) | fn resolve_path(uaddr: usize) -> KResult { function syscall_name_by_number (line 261) | pub fn syscall_name_by_number(n: usize) -> &'static str { constant SYS_READ (line 604) | pub const SYS_READ: usize = 0; constant SYS_WRITE (line 605) | pub const SYS_WRITE: usize = 1; constant SYS_OPEN (line 606) | pub const SYS_OPEN: usize = 2; constant SYS_CLOSE (line 607) | pub const SYS_CLOSE: usize = 3; constant SYS_STAT (line 608) | pub const SYS_STAT: usize = 4; constant SYS_FSTAT (line 609) | pub const SYS_FSTAT: usize = 5; constant SYS_LSTAT (line 610) | pub const SYS_LSTAT: usize = 6; constant SYS_POLL (line 611) | pub const SYS_POLL: usize = 7; constant SYS_LSEEK (line 612) | pub const SYS_LSEEK: usize = 8; constant SYS_MMAP (line 613) | pub const SYS_MMAP: usize = 9; constant SYS_MPROTECT (line 614) | pub const SYS_MPROTECT: usize = 10; constant SYS_MUNMAP (line 615) | pub const SYS_MUNMAP: usize = 11; constant SYS_BRK (line 616) | pub const SYS_BRK: usize = 12; constant SYS_RT_SIGACTION (line 617) | pub const SYS_RT_SIGACTION: usize = 13; constant SYS_RT_SIGPROCMASK (line 618) | pub const SYS_RT_SIGPROCMASK: usize = 14; constant SYS_RT_SIGRETURN (line 619) | pub const SYS_RT_SIGRETURN: usize = 15; constant SYS_IOCTL (line 620) | pub const SYS_IOCTL: usize = 16; constant SYS_READV (line 621) | pub const SYS_READV: usize = 19; constant SYS_WRITEV (line 622) | pub const SYS_WRITEV: usize = 20; constant SYS_PIPE (line 623) | pub const SYS_PIPE: usize = 22; constant SYS_SELECT (line 624) | pub const SYS_SELECT: usize = 23; constant SYS_MREMAP (line 625) | pub const SYS_MREMAP: usize = 25; constant SYS_MADVISE (line 626) | pub const SYS_MADVISE: usize = 28; constant SYS_DUP2 (line 627) | pub const SYS_DUP2: usize = 33; constant SYS_NANOSLEEP (line 628) | pub const SYS_NANOSLEEP: usize = 35; constant SYS_GETPID (line 629) | pub const SYS_GETPID: usize = 39; constant SYS_SOCKET (line 630) | pub const SYS_SOCKET: usize = 41; constant SYS_CONNECT (line 631) | pub const SYS_CONNECT: usize = 42; constant SYS_ACCEPT (line 632) | pub const SYS_ACCEPT: usize = 43; constant SYS_SENDTO (line 633) | pub const SYS_SENDTO: usize = 44; constant SYS_RECVFROM (line 634) | pub const SYS_RECVFROM: usize = 45; constant SYS_SHUTDOWN (line 635) | pub const SYS_SHUTDOWN: usize = 48; constant SYS_BIND (line 636) | pub const SYS_BIND: usize = 49; constant SYS_LISTEN (line 637) | pub const SYS_LISTEN: usize = 50; constant SYS_GETSOCKNAME (line 638) | pub const SYS_GETSOCKNAME: usize = 51; constant SYS_GETPEERNAME (line 639) | pub const SYS_GETPEERNAME: usize = 52; constant SYS_SETSOCKOPT (line 640) | pub const SYS_SETSOCKOPT: usize = 54; constant SYS_GETSOCKOPT (line 641) | pub const SYS_GETSOCKOPT: usize = 55; constant SYS_CLONE (line 642) | pub const SYS_CLONE: usize = 56; constant SYS_FORK (line 643) | pub const SYS_FORK: usize = 57; constant SYS_EXECVE (line 644) | pub const SYS_EXECVE: usize = 59; constant SYS_EXIT (line 645) | pub const SYS_EXIT: usize = 60; constant SYS_WAIT4 (line 646) | pub const SYS_WAIT4: usize = 61; constant SYS_KILL (line 647) | pub const SYS_KILL: usize = 62; constant SYS_UNAME (line 648) | pub const SYS_UNAME: usize = 63; constant SYS_FCNTL (line 649) | pub const SYS_FCNTL: usize = 72; constant SYS_FSYNC (line 650) | pub const SYS_FSYNC: usize = 74; constant SYS_GETCWD (line 651) | pub const SYS_GETCWD: usize = 79; constant SYS_CHDIR (line 652) | pub const SYS_CHDIR: usize = 80; constant SYS_MKDIR (line 653) | pub const SYS_MKDIR: usize = 83; constant SYS_LINK (line 654) | pub const SYS_LINK: usize = 86; constant SYS_UNLINK (line 655) | pub const SYS_UNLINK: usize = 87; constant SYS_READLINK (line 656) | pub const SYS_READLINK: usize = 89; constant SYS_CHMOD (line 657) | pub const SYS_CHMOD: usize = 90; constant SYS_CHOWN (line 658) | pub const SYS_CHOWN: usize = 92; constant SYS_GETUID (line 659) | pub const SYS_GETUID: usize = 102; constant SYS_SYSLOG (line 660) | pub const SYS_SYSLOG: usize = 103; constant SYS_SETUID (line 661) | pub const SYS_SETUID: usize = 105; constant SYS_SETGID (line 662) | pub const SYS_SETGID: usize = 106; constant SYS_GETEUID (line 663) | pub const SYS_GETEUID: usize = 107; constant SYS_SETPGID (line 664) | pub const SYS_SETPGID: usize = 109; constant SYS_GETPPID (line 665) | pub const SYS_GETPPID: usize = 110; constant SYS_GETPGRP (line 666) | pub const SYS_GETPGRP: usize = 111; constant SYS_GETPGID (line 667) | pub const SYS_GETPGID: usize = 121; constant SYS_SETGROUPS (line 668) | pub const SYS_SETGROUPS: usize = 116; constant SYS_ARCH_PRCTL (line 669) | pub const SYS_ARCH_PRCTL: usize = 158; constant SYS_REBOOT (line 670) | pub const SYS_REBOOT: usize = 169; constant SYS_GETTID (line 671) | pub const SYS_GETTID: usize = 186; constant SYS_TKILL (line 672) | pub const SYS_TKILL: usize = 200; constant SYS_GETDENTS64 (line 673) | pub const SYS_GETDENTS64: usize = 217; constant SYS_SET_TID_ADDRESS (line 674) | pub const SYS_SET_TID_ADDRESS: usize = 218; constant SYS_CLOCK_GETTIME (line 675) | pub const SYS_CLOCK_GETTIME: usize = 228; constant SYS_EXIT_GROUP (line 676) | pub const SYS_EXIT_GROUP: usize = 231; constant SYS_UTIMES (line 677) | pub const SYS_UTIMES: usize = 235; constant SYS_LINKAT (line 678) | pub const SYS_LINKAT: usize = 265; constant SYS_GETRANDOM (line 679) | pub const SYS_GETRANDOM: usize = 318; FILE: src/userland/syscall/syscall_impl/fs.rs constant F_DUPFD (line 30) | pub const F_DUPFD: c_int = 0; constant F_GETFD (line 31) | pub const F_GETFD: c_int = 1; constant F_SETFD (line 32) | pub const F_SETFD: c_int = 2; constant F_GETFL (line 33) | pub const F_GETFL: c_int = 3; constant F_SETFL (line 34) | pub const F_SETFL: c_int = 4; constant F_SETLK (line 35) | pub const F_SETLK: c_int = 6; constant F_LINUX_SPECIFIC_BASE (line 38) | pub const F_LINUX_SPECIFIC_BASE: c_int = 1024; constant F_DUPFD_CLOEXEC (line 39) | pub const F_DUPFD_CLOEXEC: c_int = F_LINUX_SPECIFIC_BASE + 6; function sys_fcntl (line 42) | pub fn sys_fcntl(&mut self, fd: FileDesc, cmd: c_int, arg: usize) -> KRe... function sys_getcwd (line 70) | pub fn sys_getcwd(&mut self, buf: VirtAddr, len: usize) -> KResult { function sys_getdents64 (line 86) | pub fn sys_getdents64( function sys_chdir (line 118) | pub fn sys_chdir(&mut self, path: &Path) -> KResult { function sys_ioctl (line 123) | pub fn sys_ioctl(&mut self, fd: FileDesc, cmd: usize, arg: usize) -> KRe... function sys_getrandom (line 128) | pub fn sys_getrandom(&mut self, buf: VirtAddr, bufflen: usize) -> KResul... function create (line 138) | fn create(path: &Path, _flags: OpenFlags, mode: FileMode) -> KResult KResult { function sys_mkdir (line 206) | pub fn sys_mkdir(&mut self, path: &Path, mode: FileMode) -> KResult KResult { function sys_unlink (line 233) | pub fn sys_unlink(&mut self, path: &Path) -> KResult { function sys_poll (line 254) | pub fn sys_poll(&mut self, fds: VirtAddr, nfds: c_nfds, timeout: c_int) ... function sys_read (line 300) | pub fn sys_read(&mut self, fd: FileDesc, vaddr: VirtAddr, len: usize) ->... function sys_stat (line 308) | pub fn sys_stat(&mut self, path: &Path, buf: VirtAddr) -> KResult { function sys_lstat (line 317) | pub fn sys_lstat(&mut self, path: &Path, buf: VirtAddr) -> KResult { function sys_fstat (line 323) | pub fn sys_fstat(&mut self, fd: FileDesc, buf: VirtAddr) -> KResult... constant IOV_MAX (line 338) | pub const IOV_MAX: usize = 1024; type IoVec (line 341) | pub struct IoVec { function sys_readv (line 347) | pub fn sys_readv( function sys_writev (line 381) | pub fn sys_writev( function sys_lseek (line 415) | pub fn sys_lseek( function sys_dup2 (line 425) | pub fn sys_dup2(&mut self, old_fd: FileDesc, new_fd: FileDesc) -> KResul... function sys_socket (line 444) | pub fn sys_socket(&mut self, domain: usize, typ: usize, protocol: usize)... function sys_setsockopt (line 451) | pub fn sys_setsockopt( constant SOL_SOCKET (line 471) | const SOL_SOCKET: c_int = 1; FILE: src/userland/syscall/syscall_impl/mem.rs function sys_mmap (line 13) | pub fn sys_mmap( function sys_mprotect (line 38) | pub fn sys_mprotect(&mut self, addr: VirtAddr, size: usize, prot: MMapPr... function sys_munmap (line 52) | pub fn sys_munmap(&mut self, addr: VirtAddr, size: usize) -> KResult KResult { function sys_kill (line 81) | pub fn sys_kill(&mut self, pid: TaskId, signum: c_int) -> KResult { FILE: src/userland/syscall/syscall_impl/sys.rs constant UTS_FIELD_LEN (line 7) | const UTS_FIELD_LEN: usize = 65; function sys_uname (line 10) | pub fn sys_uname(&mut self, buf: VirtAddr) -> KResult { FILE: src/userland/syscall/syscall_impl/task.rs constant ARG_MAX (line 18) | const ARG_MAX: usize = 512; constant ARG_LEN_MAX (line 19) | const ARG_LEN_MAX: usize = 4096; constant ENV_MAX (line 20) | const ENV_MAX: usize = 512; constant ENV_LEN_MAX (line 21) | const ENV_LEN_MAX: usize = 4096; function sys_arch_prctl (line 24) | pub fn sys_arch_prctl(&mut self, code: i32, uaddr: VirtAddr) -> KResult<... function sys_fork (line 29) | pub fn sys_fork(&mut self) -> KResult { function sys_clone (line 36) | pub fn sys_clone( function sys_execve (line 49) | pub fn sys_execve( function sys_exit (line 92) | pub fn sys_exit(&mut self, status: c_int) -> KResult { function sys_set_tid_address (line 97) | pub fn sys_set_tid_address(&mut self, _addr: VirtAddr) -> KResult { function sys_getpid (line 102) | pub fn sys_getpid(&mut self) -> KResult { function sys_getppid (line 106) | pub fn sys_getppid(&mut self) -> KResult { function sys_getpgid (line 110) | pub fn sys_getpgid(&mut self, pid: TaskId) -> KResult { function sys_setpgid (line 122) | pub fn sys_setpgid(&mut self, pid: TaskId, pgid: PgId) -> KResult { function sys_wait4 (line 154) | pub fn sys_wait4( function sys_nanosleep (line 201) | pub fn sys_nanosleep(&mut self, req: VirtAddr, _rem: VirtAddr) -> KResul... function sys_clock_gettime (line 219) | pub fn sys_clock_gettime(&mut self, clk_id: usize, tp: VirtAddr) -> KRes... function arch_prctl (line 256) | fn arch_prctl(current_task: Arc, code: i32, addr: VirtAddr) -> KRe... FILE: src/userland/syscall/syscall_impl/time.rs constant ITIMER_REAL (line 1) | pub const ITIMER_REAL: usize = 0; constant ITIMER_VIRTUAL (line 2) | pub const ITIMER_VIRTUAL: usize = 1; constant ITIMER_PROF (line 3) | pub const ITIMER_PROF: usize = 2; type TimeVal (line 7) | pub struct TimeVal { type ITimerVal (line 14) | pub struct ITimerVal { type TimeSpec (line 21) | pub struct TimeSpec { method zero (line 27) | pub const fn zero() -> Self { FILE: src/util/ctypes.rs type c_int16 (line 2) | pub type c_int16 = i16; type c_int32 (line 4) | pub type c_int32 = i32; type c_int64 (line 6) | pub type c_int64 = i64; type c_uint32 (line 8) | pub type c_uint32 = u32; type c_uint64 (line 10) | pub type c_uint64 = u64; type c_int (line 13) | pub type c_int = c_int32; type c_uint (line 15) | pub type c_uint = c_uint32; type c_short (line 17) | pub type c_short = c_int16; type c_long (line 19) | pub type c_long = c_int64; type c_ulong (line 21) | pub type c_ulong = c_uint64; type c_time (line 24) | pub type c_time = c_int64; type c_suseconds (line 26) | pub type c_suseconds = c_int64; type c_clockid (line 28) | pub type c_clockid = c_int; type c_nfds (line 30) | pub type c_nfds = c_ulong; type c_size (line 32) | pub type c_size = c_ulong; type c_off (line 34) | pub type c_off = c_uint64; FILE: src/util/errno.rs type Errno (line 5) | pub enum Errno { FILE: src/util/error.rs type KResult (line 5) | pub type KResult = Result>; type KError (line 8) | pub struct KError<'a> { function msg (line 14) | pub fn msg(&self) -> Option> { function errno (line 18) | pub fn errno(&self) -> Option { method fmt (line 24) | fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { FILE: src/util/lock.rs type SavedInterruptStatus (line 13) | pub struct SavedInterruptStatus { method save (line 18) | pub fn save() -> SavedInterruptStatus { method drop (line 26) | fn drop(&mut self) { type BlockingMutex (line 31) | pub struct BlockingMutex { function new (line 37) | pub const fn new(value: T) -> BlockingMutex { function get_mut (line 46) | pub fn get_mut(&mut self) -> &mut T { function try_lock (line 50) | pub fn try_lock(&self) -> KResult> { function lock (line 60) | pub fn lock(&self) -> KResult> { function is_locked (line 73) | pub fn is_locked(&self) -> bool { function force_unlock (line 79) | pub unsafe fn force_unlock(&self) { type BlockingMutexGuard (line 87) | pub struct BlockingMutexGuard<'a, T: ?Sized> { method drop (line 92) | fn drop(&mut self) { type Target (line 100) | type Target = T; method deref (line 101) | fn deref(&self) -> &T { method deref_mut (line 107) | fn deref_mut(&mut self) -> &mut T { type IrqMutex (line 112) | pub struct IrqMutex { function new (line 117) | pub const fn new(value: T) -> IrqMutex { function get_mut (line 125) | pub fn get_mut(&mut self) -> &mut T { function try_lock (line 129) | pub fn try_lock(&self) -> KResult> { function lock (line 137) | pub fn lock(&self) -> IrqMutexGuard<'_, T> { function is_locked (line 157) | pub fn is_locked(&self) -> bool { function force_unlock (line 163) | pub unsafe fn force_unlock(&self) { type IrqMutexGuard (line 171) | pub struct IrqMutexGuard<'a, T: ?Sized> { method drop (line 177) | fn drop(&mut self) { type Target (line 189) | type Target = T; method deref (line 190) | fn deref(&self) -> &T { method deref_mut (line 196) | fn deref_mut(&mut self) -> &mut T { FILE: src/util/mod.rs function align_down (line 13) | pub const fn align_down(val: usize, align: usize) -> usize { function align_up (line 17) | pub const fn align_up(val: usize, align: usize) -> usize { FILE: src/util/ringbuffer.rs type RingBuffer (line 5) | pub struct RingBuffer { method default (line 13) | fn default() -> Self { function new (line 24) | pub fn new() -> RingBuffer { function is_writable (line 28) | pub fn is_writable(&self) -> bool { function is_readable (line 32) | pub fn is_readable(&self) -> bool { function push (line 36) | pub fn push(&mut self, data: T) -> Result<(), T> function pop (line 47) | pub fn pop(&mut self) -> Option function push_slice (line 54) | pub fn push_slice(&mut self, data: &[T]) -> usize function pop_slice (line 85) | pub fn pop_slice(&mut self, len: usize) -> Option<&[T]> { function slice (line 101) | fn slice(&self, range: Range) -> &[T] { function slice_mut (line 109) | fn slice_mut(&mut self, range: Range) -> &mut [T] { FILE: src/util/stack.rs type Stack (line 5) | pub struct Stack<'a> { function new (line 10) | pub fn new(ptr: &'a mut usize) -> Self { function skip_by (line 14) | pub fn skip_by(&mut self, by: usize) { function offset (line 18) | pub unsafe fn offset<'b, T: Sized>(&mut self) -> &'b mut T { function top (line 23) | pub fn top(&self) -> usize { function push_bytes (line 27) | pub unsafe fn push_bytes(&mut self, bytes: &[u8]) { function push (line 33) | pub unsafe fn push(&mut self, value: T) { function pop_by (line 38) | pub fn pop_by(&mut self, by: usize) { function pop_bytes (line 42) | pub unsafe fn pop_bytes(&mut self, len: usize) -> &[u8] { function pop (line 48) | pub unsafe fn pop<'b, T: Sized>(&mut self) -> &'b mut T { function align_down (line 54) | pub fn align_down(&mut self, align: usize) { FILE: src/vga_text.rs type Color (line 8) | pub enum Color { type ColorCode (line 29) | pub struct ColorCode(u8); method new (line 32) | pub fn new(foreground: Color, background: Color) -> ColorCode { method background (line 36) | pub fn background(self) -> Color { method foreground (line 40) | pub fn foreground(self) -> Color { type ScreenChar (line 47) | struct ScreenChar { constant VGA_BUFFER_START_PADDR (line 52) | pub const VGA_BUFFER_START_PADDR: usize = 0xb8000; constant BUFFER_HEIGHT (line 53) | pub const BUFFER_HEIGHT: usize = 25; constant BUFFER_WIDTH (line 54) | pub const BUFFER_WIDTH: usize = 80; type Buffer (line 57) | struct Buffer { type Writer (line 61) | pub struct Writer { method write_byte (line 69) | pub fn write_byte(&mut self, byte: u8) { method cursor_color_hook (line 93) | fn cursor_color_hook(&mut self) { method backspace (line 107) | pub fn backspace(&mut self) { method write_string (line 119) | pub fn write_string(&mut self, s: &str) { method new_line (line 130) | fn new_line(&mut self) { method clear_row (line 148) | fn clear_row(&mut self, row: usize) { method clear_until_end (line 158) | fn clear_until_end(&mut self) { method clear_until_beginning (line 171) | fn clear_until_beginning(&mut self) { method clear_until_eol (line 184) | fn clear_until_eol(&mut self) { method clear_from_bol (line 194) | fn clear_from_bol(&mut self) { method clear_line (line 204) | fn clear_line(&mut self) { method clear_all (line 207) | fn clear_all(&mut self) { method move_up (line 213) | fn move_up(&mut self) { method move_down (line 223) | fn move_down(&mut self) { method move_left (line 233) | fn move_left(&mut self) { method move_right (line 237) | fn move_right(&mut self) { method write_str (line 244) | fn write_str(&mut self, s: &str) -> core::fmt::Result { function clear_screen (line 259) | pub fn clear_screen() { function backspace (line 263) | pub fn backspace() { function set_color_code (line 267) | pub fn set_color_code(color_code: ColorCode) { function get_color_code (line 271) | pub fn get_color_code() -> ColorCode { function set_cursor_x (line 275) | pub fn set_cursor_x(x: usize) { function set_cursor_y (line 279) | pub fn set_cursor_y(y: usize) { function set_cursor_xy (line 283) | pub fn set_cursor_xy(xy: (usize, usize)) { function cursor_xy (line 288) | pub fn cursor_xy() -> (usize, usize) { function write_byte (line 293) | pub fn write_byte(byte: u8) { function clear_until_end (line 297) | pub fn clear_until_end() { function clear_until_beginning (line 301) | pub fn clear_until_beginning() { function clear_from_bol (line 305) | pub fn clear_from_bol() { function clear_until_eol (line 309) | pub fn clear_until_eol() { function clear_line (line 313) | pub fn clear_line() { function move_up (line 317) | pub fn move_up() { function move_down (line 321) | pub fn move_down() { function move_left (line 325) | pub fn move_left() { function move_right (line 329) | pub fn move_right() { function _vga_print (line 345) | pub fn _vga_print(args: core::fmt::Arguments) { FILE: userland/kados_syscall/src/consts.rs type Errno (line 5) | pub enum Errno { type SyscallResult (line 59) | pub type SyscallResult = Result; function syscall_result (line 62) | pub fn syscall_result(sys_res: isize) -> SyscallResult { function syscall_name_by_number (line 70) | pub fn syscall_name_by_number(n: usize) -> &'static str { constant SYS_READ (line 413) | pub const SYS_READ: usize = 0; constant SYS_WRITE (line 414) | pub const SYS_WRITE: usize = 1; constant SYS_OPEN (line 415) | pub const SYS_OPEN: usize = 2; constant SYS_CLOSE (line 416) | pub const SYS_CLOSE: usize = 3; constant SYS_STAT (line 417) | pub const SYS_STAT: usize = 4; constant SYS_FSTAT (line 418) | pub const SYS_FSTAT: usize = 5; constant SYS_LSTAT (line 419) | pub const SYS_LSTAT: usize = 6; constant SYS_POLL (line 420) | pub const SYS_POLL: usize = 7; constant SYS_MMAP (line 421) | pub const SYS_MMAP: usize = 9; constant SYS_MPROTECT (line 422) | pub const SYS_MPROTECT: usize = 10; constant SYS_MUNMAP (line 423) | pub const SYS_MUNMAP: usize = 11; constant SYS_BRK (line 424) | pub const SYS_BRK: usize = 12; constant SYS_RT_SIGACTION (line 425) | pub const SYS_RT_SIGACTION: usize = 13; constant SYS_RT_SIGPROCMASK (line 426) | pub const SYS_RT_SIGPROCMASK: usize = 14; constant SYS_RT_SIGRETURN (line 427) | pub const SYS_RT_SIGRETURN: usize = 15; constant SYS_IOCTL (line 428) | pub const SYS_IOCTL: usize = 16; constant SYS_WRITEV (line 429) | pub const SYS_WRITEV: usize = 20; constant SYS_PIPE (line 430) | pub const SYS_PIPE: usize = 22; constant SYS_SELECT (line 431) | pub const SYS_SELECT: usize = 23; constant SYS_DUP2 (line 432) | pub const SYS_DUP2: usize = 33; constant SYS_GETPID (line 433) | pub const SYS_GETPID: usize = 39; constant SYS_SOCKET (line 434) | pub const SYS_SOCKET: usize = 41; constant SYS_CONNECT (line 435) | pub const SYS_CONNECT: usize = 42; constant SYS_ACCEPT (line 436) | pub const SYS_ACCEPT: usize = 43; constant SYS_SENDTO (line 437) | pub const SYS_SENDTO: usize = 44; constant SYS_RECVFROM (line 438) | pub const SYS_RECVFROM: usize = 45; constant SYS_SHUTDOWN (line 439) | pub const SYS_SHUTDOWN: usize = 48; constant SYS_BIND (line 440) | pub const SYS_BIND: usize = 49; constant SYS_LISTEN (line 441) | pub const SYS_LISTEN: usize = 50; constant SYS_GETSOCKNAME (line 442) | pub const SYS_GETSOCKNAME: usize = 51; constant SYS_GETPEERNAME (line 443) | pub const SYS_GETPEERNAME: usize = 52; constant SYS_GETSOCKOPT (line 444) | pub const SYS_GETSOCKOPT: usize = 55; constant SYS_CLONE (line 445) | pub const SYS_CLONE: usize = 56; constant SYS_FORK (line 446) | pub const SYS_FORK: usize = 57; constant SYS_EXECVE (line 447) | pub const SYS_EXECVE: usize = 59; constant SYS_EXIT (line 448) | pub const SYS_EXIT: usize = 60; constant SYS_WAIT4 (line 449) | pub const SYS_WAIT4: usize = 61; constant SYS_KILL (line 450) | pub const SYS_KILL: usize = 62; constant SYS_UNAME (line 451) | pub const SYS_UNAME: usize = 63; constant SYS_FCNTL (line 452) | pub const SYS_FCNTL: usize = 72; constant SYS_FSYNC (line 453) | pub const SYS_FSYNC: usize = 74; constant SYS_GETCWD (line 454) | pub const SYS_GETCWD: usize = 79; constant SYS_CHDIR (line 455) | pub const SYS_CHDIR: usize = 80; constant SYS_MKDIR (line 456) | pub const SYS_MKDIR: usize = 83; constant SYS_LINK (line 457) | pub const SYS_LINK: usize = 86; constant SYS_READLINK (line 458) | pub const SYS_READLINK: usize = 89; constant SYS_CHMOD (line 459) | pub const SYS_CHMOD: usize = 90; constant SYS_CHOWN (line 460) | pub const SYS_CHOWN: usize = 92; constant SYS_GETUID (line 461) | pub const SYS_GETUID: usize = 102; constant SYS_SYSLOG (line 462) | pub const SYS_SYSLOG: usize = 103; constant SYS_SETUID (line 463) | pub const SYS_SETUID: usize = 105; constant SYS_SETGID (line 464) | pub const SYS_SETGID: usize = 106; constant SYS_GETEUID (line 465) | pub const SYS_GETEUID: usize = 107; constant SYS_SETPGID (line 466) | pub const SYS_SETPGID: usize = 109; constant SYS_GETPPID (line 467) | pub const SYS_GETPPID: usize = 110; constant SYS_GETPGRP (line 468) | pub const SYS_GETPGRP: usize = 111; constant SYS_GETPGID (line 469) | pub const SYS_GETPGID: usize = 121; constant SYS_SETGROUPS (line 470) | pub const SYS_SETGROUPS: usize = 116; constant SYS_ARCH_PRCTL (line 471) | pub const SYS_ARCH_PRCTL: usize = 158; constant SYS_REBOOT (line 472) | pub const SYS_REBOOT: usize = 169; constant SYS_GETTID (line 473) | pub const SYS_GETTID: usize = 186; constant SYS_GETDENTS64 (line 474) | pub const SYS_GETDENTS64: usize = 217; constant SYS_SET_TID_ADDRESS (line 475) | pub const SYS_SET_TID_ADDRESS: usize = 218; constant SYS_CLOCK_GETTIME (line 476) | pub const SYS_CLOCK_GETTIME: usize = 228; constant SYS_EXIT_GROUP (line 477) | pub const SYS_EXIT_GROUP: usize = 231; constant SYS_UTIMES (line 478) | pub const SYS_UTIMES: usize = 235; constant SYS_LINKAT (line 479) | pub const SYS_LINKAT: usize = 265; constant SYS_GETRANDOM (line 480) | pub const SYS_GETRANDOM: usize = 318; FILE: userland/kados_syscall/src/lib.rs function syscall0 (line 10) | pub extern "C" fn syscall0(n: usize) -> isize { function syscall1 (line 21) | pub extern "C" fn syscall1(n: usize, a1: usize) -> isize { function syscall2 (line 32) | pub extern "C" fn syscall2(n: usize, a1: usize, a2: usize) -> isize { function syscall3 (line 43) | pub extern "C" fn syscall3(n: usize, a1: usize, a2: usize, a3: usize) ->... function syscall4 (line 54) | pub extern "C" fn syscall4(n: usize, a1: usize, a2: usize, a3: usize, a4... function syscall5 (line 65) | pub extern "C" fn syscall5( function syscall6 (line 83) | pub extern "C" fn syscall6( function sys_arch_prctl (line 99) | pub fn sys_arch_prctl(code: i32, address: usize) -> SyscallResult { function sys_set_tid_address (line 103) | pub fn sys_set_tid_address(address: usize) -> SyscallResult { function sys_write (line 107) | pub fn sys_write(fd: i32, address: usize, len: usize) -> SyscallResult { function sys_writev (line 111) | pub fn sys_writev(fd: i32, iov_base: usize, iov_count: usize) -> Syscall... function sys_read (line 115) | pub fn sys_read(fd: i32, address: usize, len: usize) -> SyscallResult { function sys_fork (line 119) | pub fn sys_fork() -> SyscallResult { function sys_wait4 (line 123) | pub fn sys_wait4(pid: i32, status_addr: usize, options: i32, rusage_addr... function sys_execve (line 133) | pub fn sys_execve(path_addr: usize, argv_addr: usize, envp_addr: usize) ... function sys_getcwd (line 137) | pub fn sys_getcwd(buf_addr: usize, buf_len: usize) -> SyscallResult {