refactor: migrate all servers, apps, binaries to libkos
This commit is contained in:
42
Cargo.lock
generated
42
Cargo.lock
generated
@@ -57,11 +57,10 @@ dependencies = [
|
|||||||
"display-server",
|
"display-server",
|
||||||
"driver-framebuffer-mock",
|
"driver-framebuffer-mock",
|
||||||
"driver-framebuffer-virtio",
|
"driver-framebuffer-virtio",
|
||||||
|
"libkos",
|
||||||
"port-framebuffer",
|
"port-framebuffer",
|
||||||
"server-framework",
|
"server-framework",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
"userspace-rt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -127,9 +126,8 @@ dependencies = [
|
|||||||
name = "echo"
|
name = "echo"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"libkos",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
"userspace-rt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -148,7 +146,7 @@ version = "0.1.0"
|
|||||||
name = "hello"
|
name = "hello"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"userspace-rt",
|
"libkos",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -163,9 +161,8 @@ name = "init"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"elf",
|
"elf",
|
||||||
|
"libkos",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
"userspace-rt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -175,21 +172,19 @@ dependencies = [
|
|||||||
"driver-input-uart",
|
"driver-input-uart",
|
||||||
"driver-input-virtio",
|
"driver-input-virtio",
|
||||||
"input-server",
|
"input-server",
|
||||||
|
"libkos",
|
||||||
"server-framework",
|
"server-framework",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
"userspace-rt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "input-server"
|
name = "input-server"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"libkos",
|
||||||
"port-input-device",
|
"port-input-device",
|
||||||
"server-framework",
|
"server-framework",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
"userspace-rt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -205,14 +200,20 @@ dependencies = [
|
|||||||
name = "keychain-server"
|
name = "keychain-server"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libkos"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"types",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "log-server"
|
name = "log-server"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"libkos",
|
||||||
"server-framework",
|
"server-framework",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
"userspace-rt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -235,10 +236,9 @@ version = "0.1.0"
|
|||||||
name = "permission-manager"
|
name = "permission-manager"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"libkos",
|
||||||
"server-framework",
|
"server-framework",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
"userspace-rt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -276,18 +276,17 @@ version = "0.1.0"
|
|||||||
name = "server-framework"
|
name = "server-framework"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"libkos",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "session-server"
|
name = "session-server"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"libkos",
|
||||||
"server-framework",
|
"server-framework",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
"userspace-rt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -295,18 +294,17 @@ name = "snake"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"display-server",
|
"display-server",
|
||||||
|
"libkos",
|
||||||
"server-framework",
|
"server-framework",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
"userspace-rt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "storage-qemu"
|
name = "storage-qemu"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"libkos",
|
||||||
"storage-server",
|
"storage-server",
|
||||||
"userspace-rt",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -314,10 +312,10 @@ name = "storage-server"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"driver-block-virtio",
|
"driver-block-virtio",
|
||||||
|
"libkos",
|
||||||
"port-block-device",
|
"port-block-device",
|
||||||
"server-framework",
|
"server-framework",
|
||||||
"types",
|
"types",
|
||||||
"userspace",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
@@ -10,5 +10,5 @@ bench = false
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
types = { workspace = true }
|
types = { workspace = true }
|
||||||
userspace = { workspace = true }
|
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
use types::bounded::CapSlot;
|
use types::bounded::CapSlot;
|
||||||
use userspace::syscall;
|
use libkos::syscall;
|
||||||
|
|
||||||
#[unsafe(no_mangle)]
|
#[unsafe(no_mangle)]
|
||||||
extern "C" fn main() {
|
extern "C" fn main() {
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ test = false
|
|||||||
bench = false
|
bench = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
#[unsafe(no_mangle)]
|
#[unsafe(no_mangle)]
|
||||||
extern "C" fn main() {
|
extern "C" fn main() {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ bench = false
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
types = { workspace = true }
|
types = { workspace = true }
|
||||||
userspace = { workspace = true }
|
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
display-server = { workspace = true }
|
display-server = { workspace = true }
|
||||||
server-framework = { workspace = true }
|
server-framework = { workspace = true }
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
use snake::game::{Direction, GameState, Snake};
|
use snake::game::{Direction, GameState, Snake};
|
||||||
use snake::renderer::{self, RenderCommand};
|
use snake::renderer::{self, RenderCommand};
|
||||||
use types::bounded::CapSlot;
|
use types::bounded::CapSlot;
|
||||||
use types::display::{Color, Dimension, ScreenCoord};
|
use types::display::{Color, Dimension, ScreenCoord};
|
||||||
use types::time::Ticks;
|
use types::time::Ticks;
|
||||||
use userspace_rt::syscall;
|
use libkos::syscall;
|
||||||
use server_framework::Encode;
|
use server_framework::Encode;
|
||||||
use display_server::protocol::DisplayRequest;
|
use display_server::protocol::DisplayRequest;
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ bench = false
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
types = { workspace = true }
|
types = { workspace = true }
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
userspace = { workspace = true }
|
|
||||||
server-framework = { workspace = true }
|
server-framework = { workspace = true }
|
||||||
display-server = { workspace = true }
|
display-server = { workspace = true }
|
||||||
driver-framebuffer-virtio = { workspace = true }
|
driver-framebuffer-virtio = { workspace = true }
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
use types::bounded::CapSlot;
|
use types::bounded::CapSlot;
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ extern "C" fn main() {
|
|||||||
run_mock(ep);
|
run_mock(ep);
|
||||||
}
|
}
|
||||||
|
|
||||||
loop { userspace::syscall::yield_now(); }
|
loop { libkos::syscall::yield_now(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline(never)]
|
#[inline(never)]
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ bench = false
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
types = { workspace = true }
|
types = { workspace = true }
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
userspace = { workspace = true }
|
|
||||||
server-framework = { workspace = true }
|
server-framework = { workspace = true }
|
||||||
input-server = { workspace = true }
|
input-server = { workspace = true }
|
||||||
driver-input-uart = { workspace = true }
|
driver-input-uart = { workspace = true }
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
use types::bounded::CapSlot;
|
use types::bounded::CapSlot;
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ extern "C" fn main() {
|
|||||||
run_uart(ep);
|
run_uart(ep);
|
||||||
}
|
}
|
||||||
|
|
||||||
loop { userspace::syscall::yield_now(); }
|
loop { libkos::syscall::yield_now(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline(never)]
|
#[inline(never)]
|
||||||
|
|||||||
@@ -9,5 +9,5 @@ test = false
|
|||||||
bench = false
|
bench = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
storage-server = { workspace = true }
|
storage-server = { workspace = true }
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
#[unsafe(no_mangle)]
|
#[unsafe(no_mangle)]
|
||||||
extern "C" fn main() {
|
extern "C" fn main() {
|
||||||
|
|||||||
@@ -11,5 +11,5 @@ bench = false
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
elf = { workspace = true }
|
elf = { workspace = true }
|
||||||
types = { workspace = true }
|
types = { workspace = true }
|
||||||
userspace = { workspace = true }
|
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
use types::address::{EntryPoint, StackPointer, VirtualAddress};
|
use types::address::{EntryPoint, StackPointer, VirtualAddress};
|
||||||
use types::bounded::{CapSlot, PageCount};
|
use types::bounded::{CapSlot, PageCount};
|
||||||
use types::permission::{Permission, PermissionSet};
|
use types::permission::{Permission, PermissionSet};
|
||||||
use userspace::syscall;
|
use libkos::syscall;
|
||||||
|
|
||||||
const PAGE_SIZE: usize = 4096;
|
const PAGE_SIZE: usize = 4096;
|
||||||
const USER_CODE_BASE: usize = 0x10000;
|
const USER_CODE_BASE: usize = 0x10000;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
#[unsafe(no_mangle)]
|
#[unsafe(no_mangle)]
|
||||||
extern "C" fn main(shared_buf: usize) {
|
extern "C" fn main(shared_buf: usize) {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ qemu-virt = []
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
types = { workspace = true }
|
types = { workspace = true }
|
||||||
userspace = { workspace = true }
|
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
server-framework = { workspace = true }
|
server-framework = { workspace = true }
|
||||||
port-input-device = { workspace = true }
|
port-input-device = { workspace = true }
|
||||||
|
|||||||
@@ -18,5 +18,5 @@ pub fn run() -> ! {
|
|||||||
let mut srv = server::InputServer::new(device);
|
let mut srv = server::InputServer::new(device);
|
||||||
let ep = types::bounded::CapSlot::new(0).unwrap();
|
let ep = types::bounded::CapSlot::new(0).unwrap();
|
||||||
server_framework::serve(&mut srv, ep);
|
server_framework::serve(&mut srv, ep);
|
||||||
loop { userspace::syscall::yield_now(); }
|
loop { libkos::syscall::yield_now(); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
#[unsafe(no_mangle)]
|
#[unsafe(no_mangle)]
|
||||||
extern "C" fn main() {
|
extern "C" fn main() {
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ bench = false
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
types = { workspace = true }
|
types = { workspace = true }
|
||||||
userspace = { workspace = true }
|
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
server-framework = { workspace = true }
|
server-framework = { workspace = true }
|
||||||
|
|||||||
@@ -11,5 +11,5 @@ pub fn run() -> ! {
|
|||||||
let mut srv = server::LogServer::new();
|
let mut srv = server::LogServer::new();
|
||||||
let ep = types::bounded::CapSlot::new(0).unwrap();
|
let ep = types::bounded::CapSlot::new(0).unwrap();
|
||||||
server_framework::serve(&mut srv, ep);
|
server_framework::serve(&mut srv, ep);
|
||||||
loop { userspace::syscall::yield_now(); }
|
loop { libkos::syscall::yield_now(); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
#[unsafe(no_mangle)]
|
#[unsafe(no_mangle)]
|
||||||
extern "C" fn main() {
|
extern "C" fn main() {
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ bench = false
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
types = { workspace = true }
|
types = { workspace = true }
|
||||||
userspace = { workspace = true }
|
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
server-framework = { workspace = true }
|
server-framework = { workspace = true }
|
||||||
|
|||||||
@@ -11,5 +11,5 @@ pub fn run() -> ! {
|
|||||||
let mut srv = server::PermissionManager::new();
|
let mut srv = server::PermissionManager::new();
|
||||||
let ep = types::bounded::CapSlot::new(0).unwrap();
|
let ep = types::bounded::CapSlot::new(0).unwrap();
|
||||||
server_framework::serve(&mut srv, ep);
|
server_framework::serve(&mut srv, ep);
|
||||||
loop { userspace::syscall::yield_now(); }
|
loop { libkos::syscall::yield_now(); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
#[unsafe(no_mangle)]
|
#[unsafe(no_mangle)]
|
||||||
extern "C" fn main() {
|
extern "C" fn main() {
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ bench = false
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
types = { workspace = true }
|
types = { workspace = true }
|
||||||
userspace = { workspace = true }
|
|
||||||
userspace-rt = { workspace = true }
|
libkos = { workspace = true }
|
||||||
server-framework = { workspace = true }
|
server-framework = { workspace = true }
|
||||||
|
|||||||
@@ -13,5 +13,5 @@ pub fn run() -> ! {
|
|||||||
srv.register_app("snake", "/apps/snake.elf");
|
srv.register_app("snake", "/apps/snake.elf");
|
||||||
let ep = types::bounded::CapSlot::new(0).unwrap();
|
let ep = types::bounded::CapSlot::new(0).unwrap();
|
||||||
server_framework::serve(&mut srv, ep);
|
server_framework::serve(&mut srv, ep);
|
||||||
loop { userspace::syscall::yield_now(); }
|
loop { libkos::syscall::yield_now(); }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#![no_std]
|
#![no_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
extern crate userspace_rt;
|
extern crate libkos;
|
||||||
|
|
||||||
#[unsafe(no_mangle)]
|
#[unsafe(no_mangle)]
|
||||||
extern "C" fn main() {
|
extern "C" fn main() {
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ impl SessionServer {
|
|||||||
None => return SessionResponse::NotFound,
|
None => return SessionResponse::NotFound,
|
||||||
};
|
};
|
||||||
|
|
||||||
let process_cap = match userspace::syscall::create_process(self.create_cap) {
|
let process_cap = match libkos::syscall::create_process(self.create_cap) {
|
||||||
Some(cap) => cap,
|
Some(cap) => cap,
|
||||||
None => return SessionResponse::Error,
|
None => return SessionResponse::Error,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ edition = "2024"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
types = { workspace = true }
|
types = { workspace = true }
|
||||||
userspace = { workspace = true }
|
|
||||||
server-framework = { workspace = true }
|
server-framework = { workspace = true }
|
||||||
port-block-device = { workspace = true }
|
port-block-device = { workspace = true }
|
||||||
driver-block-virtio = { workspace = true }
|
driver-block-virtio = { workspace = true }
|
||||||
|
libkos = { workspace = true }
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ pub mod server;
|
|||||||
#[path = "tests/mod.rs"]
|
#[path = "tests/mod.rs"]
|
||||||
mod tests;
|
mod tests;
|
||||||
|
|
||||||
use userspace::syscall;
|
use libkos::syscall;
|
||||||
|
|
||||||
const CMD_READ_FILE: usize = 1;
|
const CMD_READ_FILE: usize = 1;
|
||||||
const SHARED_BUF_VA: usize = 0x30000;
|
const SHARED_BUF_VA: usize = 0x30000;
|
||||||
|
|||||||
Reference in New Issue
Block a user