[Teton] Move console/shell to rust. WIP
This commit is contained in:
parent
76f8795a46
commit
18e512cf1f
17 changed files with 409 additions and 5 deletions
|
|
@ -89,6 +89,31 @@ pub fn memory_object_create(size: u64) -> Result<z_cap_t, ZError> {
|
|||
Ok(vmmo_cap)
|
||||
}
|
||||
|
||||
pub fn memory_object_direct_physical(paddr: u64, size: u64) -> Result<z_cap_t, ZError> {
|
||||
let mut vmmo_cap = 0;
|
||||
syscall(
|
||||
zion::kZionMemoryObjectCreatePhysical,
|
||||
&zion::ZMemoryObjectCreatePhysicalReq {
|
||||
paddr,
|
||||
size,
|
||||
vmmo_cap: &mut vmmo_cap,
|
||||
},
|
||||
)?;
|
||||
Ok(vmmo_cap)
|
||||
}
|
||||
|
||||
pub fn memory_object_inspect(mem_cap: z_cap_t) -> Result<u64, ZError> {
|
||||
let mut mem_size = 0;
|
||||
syscall(
|
||||
zion::kZionMemoryObjectInspect,
|
||||
&zion::ZMemoryObjectInspectReq {
|
||||
vmmo_cap: mem_cap,
|
||||
size: &mut mem_size,
|
||||
},
|
||||
)?;
|
||||
Ok(mem_size)
|
||||
}
|
||||
|
||||
pub fn address_space_map(vmmo_cap: z_cap_t) -> Result<u64, ZError> {
|
||||
let mut vaddr: u64 = 0;
|
||||
// FIXME: Allow caller to pass these options.
|
||||
|
|
@ -104,6 +129,17 @@ pub fn address_space_map(vmmo_cap: z_cap_t) -> Result<u64, ZError> {
|
|||
Ok(vaddr)
|
||||
}
|
||||
|
||||
pub fn address_space_unmap(lower_addr: u64, upper_addr: u64) -> Result<(), ZError> {
|
||||
syscall(
|
||||
zion::kZionAddressSpaceUnmap,
|
||||
&zion::ZAddressSpaceUnmapReq {
|
||||
vmas_cap: unsafe { crate::init::SELF_VMAS_CAP },
|
||||
lower_addr,
|
||||
upper_addr,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
pub fn port_poll(
|
||||
port_cap: z_cap_t,
|
||||
bytes: &mut [u8],
|
||||
|
|
@ -211,3 +247,7 @@ pub fn reply_port_recv(
|
|||
|
||||
Ok((num_bytes, num_caps))
|
||||
}
|
||||
|
||||
pub fn cap_release(cap: z_cap_t) -> Result<(), ZError> {
|
||||
syscall(zion::kZionCapRelease, &zion::ZCapReleaseReq { cap })
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue