Hi all,

I’m trying to understand the code a little bit more. This is kind of a random question. I’m wondering that in a case where we call to allocate a frame using allocman library, where is the physical address of a certain region is stored?

In allocman_t there are multiple fields:

    size_t num_utspace_chunks;
    struct allocman_utspace_chunk *utspace_chunk;
    size_t *utspace_chunk_count;
    struct allocman_utspace_allocation **utspace_chunks;

struct allocman_utspace_chunk {
    size_t size_bits;
    seL4_Word type;
    size_t count;
};

struct allocman_utspace_allocation {
    seL4_Word cookie;
    cspacepath_t slot;
};

I didn’t find struct that hold the paddr, also after we create a frame where is that paddr stored? It is stored in slot.capPtr? Also What does the field cookie for?


Best Regards
-Daniel Wang