strat9_kernel/shell/commands/sys/
silo_limit.rs1use super::*;
2
3pub(super) fn cmd_silo_limit(args: &[String]) -> Result<(), ShellError> {
9 if args.len() < 4 {
10 shell_println!("Usage: silo limit <id|label|name> <key> <value>");
11 shell_println!(" Keys: mem_max, mem_min, max_tasks, cpu_shares");
12 return Err(ShellError::InvalidArguments);
13 }
14 let selector = normalize_current_silo_selector(args[1].as_str());
15 let key = args[2].as_str();
16 let value: u64 = args[3].parse().map_err(|_| {
17 shell_println!("silo limit: invalid value '{}'", args[3]);
18 ShellError::InvalidArguments
19 })?;
20
21 match silo::kernel_limit_silo(selector.as_str(), key, value) {
22 Ok(sid) => {
23 shell_println!("silo limit: {}={} for sid={}", key, value, sid);
24 Ok(())
25 }
26 Err(e) => {
27 shell_println!("silo limit failed: {:?}", e);
28 Err(ShellError::ExecutionFailed)
29 }
30 }
31}