Skip to content

How to access a capability from an AbsoluteCPtr #271

@samledden04

Description

@samledden04

I have a project where the number of capabilities created exceeds the number of root CNode slots. Therefore, I need to create nested CNodes to store more caps. I'm unsure how to get from an AbsoluteCPtr pointing to a specific slot in a nested CNode to the Cap itself. I tried the following,

`let cnode = root.create_variable_size_capability::sel4::cap_type::CNode(4); // this is essentially the same as an ObjectAllocator

cnode.relative_bits_with_depth(0, 4).mint(
&sel4::init_thread::slot::CNODE.cap().relative(test_endpoint),
sel4::CapRights::all(),
0,
).unwrap();

let endpoint = sel4::cap::Endpoint::from_bits(cnode.relative_bits_with_depth(0, 4).path().bits());

endpoint.send(sel4::MessageInfo::new(0, 0, 0, 0));`

However, this throws back a null cap warning. I am looking through the documentation and I cannot find a way. How could I achieve this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions