2022-04-24 06:49:23 +04:00
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "utf-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < meta name = "generator" content = "rustdoc" > < meta name = "description" content = "Implementation of syscalls" > < meta name = "keywords" content = "rust, rustlang, rust-lang, syscall" > < title > os::syscall - Rust< / title > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../../SourceSerif4-Regular.ttf.woff2" > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../../FiraSans-Regular.woff2" > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../../FiraSans-Medium.woff2" > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../../SourceCodePro-Regular.ttf.woff2" > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../../SourceSerif4-Bold.ttf.woff2" > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../../SourceCodePro-Semibold.ttf.woff2" > < link rel = "stylesheet" type = "text/css" href = "../../normalize.css" > < link rel = "stylesheet" type = "text/css" href = "../../rustdoc.css" id = "mainThemeStyle" > < link rel = "stylesheet" type = "text/css" href = "../../ayu.css" disabled > < link rel = "stylesheet" type = "text/css" href = "../../dark.css" disabled > < link rel = "stylesheet" type = "text/css" href = "../../light.css" id = "themeStyle" > < script id = "default-settings" > < / script > < script src = "../../storage.js" > < / script > < script src = "../../crates.js" > < / script > < script defer src = "../../main.js" > < / script >
2022-04-17 02:47:48 +04:00
< noscript > < link rel = "stylesheet" href = "../../noscript.css" > < / noscript > < link rel = "alternate icon" type = "image/png" href = "../../favicon-16x16.png" > < link rel = "alternate icon" type = "image/png" href = "../../favicon-32x32.png" > < link rel = "icon" type = "image/svg+xml" href = "../../favicon.svg" > < / head > < body class = "rustdoc mod" > <!-- [if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif] --> < nav class = "mobile-topbar" > < button class = "sidebar-menu-toggle" > ☰ < / button > < a class = "sidebar-logo" href = "../../os/index.html" > < div class = "logo-container" > < img class = "rust-logo" src = "../../rust-logo.svg" alt = "logo" > < / div >
< / a > < h2 class = "location" > < / h2 >
< / nav >
< nav class = "sidebar" > < a class = "sidebar-logo" href = "../../os/index.html" > < div class = "logo-container" > < img class = "rust-logo" src = "../../rust-logo.svg" alt = "logo" > < / div >
< / a > < h2 class = "location" > < a href = "#" > Module syscall< / a > < / h2 > < div class = "sidebar-elems" > < section > < div class = "block" > < ul > < li > < a href = "#modules" > Modules< / a > < / li > < li > < a href = "#constants" > Constants< / a > < / li > < li > < a href = "#functions" > Functions< / a > < / li > < / ul > < / div > < / section > < div id = "sidebar-vars" data-name = "syscall" data-ty = "mod" data-relpath = "./" > < / div > < script defer src = "./sidebar-items.js" > < / script > < / div > < / nav > < main > < div class = "width-limiter" > < div class = "sub-container" > < a class = "sub-logo-container" href = "../../os/index.html" > < img class = "rust-logo" src = "../../rust-logo.svg" alt = "logo" > < / a > < nav class = "sub" > < div class = "theme-picker hidden" > < button id = "theme-picker" aria-label = "Pick another theme!" aria-haspopup = "menu" title = "themes" > < img width = "22" height = "22" alt = "Pick another theme!" src = "../../brush.svg" > < / button > < div id = "theme-choices" role = "menu" > < / div > < / div > < form class = "search-form" > < div class = "search-container" > < span > < / span > < input class = "search-input" name = "search" autocomplete = "off" spellcheck = "false" placeholder = "Click or press ‘ S’ to search, ‘ ?’ for more options…" type = "search" > < button type = "button" id = "help-button" title = "help" > ?< / button > < a id = "settings-menu" href = "../../settings.html" title = "settings" > < img width = "22" height = "22" alt = "Change settings" src = "../../wheel.svg" > < / a > < / div > < / form > < / nav > < / div > < section id = "main-content" class = "content" > < div class = "main-heading" >
2022-04-24 06:49:23 +04:00
< h1 class = "fqn" > < span class = "in-band" > Module < a href = "../index.html" > os< / a > ::< wbr > < a class = "mod" href = "#" > syscall< / a > < button id = "copy-path" onclick = "copy_path(this)" title = "Copy item path to clipboard" > < img src = "../../clipboard.svg" width = "19" height = "18" alt = "Copy item path" > < / button > < / span > < / h1 > < span class = "out-of-band" > < a class = "srclink" href = "../../src/os/syscall/mod.rs.html#1-41" > source< / a > · < a id = "toggle-all-docs" href = "javascript:void(0)" title = "collapse all docs" > [< span class = "inner" > − < / span > ]< / a > < / span > < / div > < details class = "rustdoc-toggle top-doc" open > < summary class = "hideme" > < span > Expand description< / span > < / summary > < div class = "docblock" > < p > Implementation of syscalls< / p >
< p > The single entry point to all system calls, < a href = "fn.syscall.html" title = "syscall()" > < code > syscall()< / code > < / a > , is called
whenever userspace wishes to perform a system call using the < code > ecall< / code >
instruction. In this case, the processor raises an ‘ Environment call from
U-mode’ exception, which is handled as one of the cases in
< a href = "../trap/fn.trap_handler.html" title = "crate::trap::trap_handler" > < code > crate::trap::trap_handler< / code > < / a > .< / p >
< p > For clarity, each single syscall is implemented as its own function, named
< code > sys_< / code > then the name of the syscall. You can find functions like this in
submodules, and you should also implement syscalls this way.< / p >
< / div > < / details > < h2 id = "modules" class = "small-section-header" > < a href = "#modules" > Modules< / a > < / h2 >
< div class = "item-table" > < div class = "item-row" > < div class = "item-left module-item" > < a class = "mod" href = "fs/index.html" title = "os::syscall::fs mod" > fs< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < p > File and filesystem-related syscalls< / p >
< / div > < / div > < div class = "item-row" > < div class = "item-left module-item" > < a class = "mod" href = "process/index.html" title = "os::syscall::process mod" > process< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < / div > < / div > < / div > < h2 id = "constants" class = "small-section-header" > < a href = "#constants" > Constants< / a > < / h2 >
2022-04-17 02:47:48 +04:00
< div class = "item-table" > < div class = "item-row" > < div class = "item-left module-item" > < a class = "constant" href = "constant.SYSCALL_EXEC.html" title = "os::syscall::SYSCALL_EXEC constant" > SYSCALL_EXEC< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < / div > < / div > < div class = "item-row" > < div class = "item-left module-item" > < a class = "constant" href = "constant.SYSCALL_EXIT.html" title = "os::syscall::SYSCALL_EXIT constant" > SYSCALL_EXIT< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < / div > < / div > < div class = "item-row" > < div class = "item-left module-item" > < a class = "constant" href = "constant.SYSCALL_FORK.html" title = "os::syscall::SYSCALL_FORK constant" > SYSCALL_FORK< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < / div > < / div > < div class = "item-row" > < div class = "item-left module-item" > < a class = "constant" href = "constant.SYSCALL_GETPID.html" title = "os::syscall::SYSCALL_GETPID constant" > SYSCALL_GETPID< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < / div > < / div > < div class = "item-row" > < div class = "item-left module-item" > < a class = "constant" href = "constant.SYSCALL_GET_TIME.html" title = "os::syscall::SYSCALL_GET_TIME constant" > SYSCALL_GET_TIME< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < / div > < / div > < div class = "item-row" > < div class = "item-left module-item" > < a class = "constant" href = "constant.SYSCALL_READ.html" title = "os::syscall::SYSCALL_READ constant" > SYSCALL_READ< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < / div > < / div > < div class = "item-row" > < div class = "item-left module-item" > < a class = "constant" href = "constant.SYSCALL_WAITPID.html" title = "os::syscall::SYSCALL_WAITPID constant" > SYSCALL_WAITPID< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < / div > < / div > < div class = "item-row" > < div class = "item-left module-item" > < a class = "constant" href = "constant.SYSCALL_WRITE.html" title = "os::syscall::SYSCALL_WRITE constant" > SYSCALL_WRITE< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < / div > < / div > < div class = "item-row" > < div class = "item-left module-item" > < a class = "constant" href = "constant.SYSCALL_YIELD.html" title = "os::syscall::SYSCALL_YIELD constant" > SYSCALL_YIELD< / a > < span title = "Restricted Visibility" > 🔒< / span > < / div > < div class = "item-right docblock-short" > < / div > < / div > < / div > < h2 id = "functions" class = "small-section-header" > < a href = "#functions" > Functions< / a > < / h2 >
2022-04-24 06:49:23 +04:00
< div class = "item-table" > < div class = "item-row" > < div class = "item-left module-item" > < a class = "fn" href = "fn.syscall.html" title = "os::syscall::syscall fn" > syscall< / a > < / div > < div class = "item-right docblock-short" > < p > handle syscall exception with < code > syscall_id< / code > and other arguments< / p >
< / div > < / div > < / div > < / section > < section id = "search" class = "content hidden" > < / section > < / div > < / main > < div id = "rustdoc-vars" data-root-path = "../../" data-current-crate = "os" data-themes = "ayu,dark,light" data-resource-suffix = "" data-rustdoc-version = "1.62.0-nightly (1f7fb6413 2022-04-10)" > < / div >
2022-03-20 17:39:30 +04:00
< / body > < / html >