/barrelfish-master/lib/barrelfish/include/pmap_array/ |
H A D | pmap_ds.h | 19 //#define INIT_SLAB_BUFFER_SIZE SLAB_STATIC_SIZE(INIT_SLAB_COUNT, sizeof(struct vnode)) 20 //#define PTSLAB_SLABSIZE (sizeof(struct vnode *)*PTABLE_ENTRIES) 28 static inline int pmap_next_child(struct vnode *root, int i, struct vnode **n) 31 struct vnode *tmp; 34 tmp = root->v.u.vnode.children[i]; 43 * through the non-null children of the vnode `root`. 46 * Note: this macro requires both root and iter to be 'struct vnode *'.
|
/barrelfish-master/include/target/arm/barrelfish/ |
H A D | pmap_target.h | 24 struct vnode { struct 27 struct vnode *next; ///< Next entry in list of siblings 28 struct capref mapping; ///< Mapping cap for this vnode 33 struct vnode *children; ///< Children of this VNode 36 } vnode; // for non-leaf node member in union:vnode::__anon50 47 #define INIT_SLAB_BUFFER_BYTES SLAB_STATIC_SIZE(32, sizeof(struct vnode)) 53 struct vnode root; ///< Root of the vnode tree 54 struct slab_allocator slab; ///< Slab allocator for the vnode lists
|
/barrelfish-master/lib/barrelfish/include/ |
H A D | pmap_priv.h | 33 set_mapping_cap(struct pmap *pmap, struct vnode *vnode, argument 34 struct vnode *root, uint16_t entry) 39 vnode->v.mapping.cnode = root->u.vnode.mcnode[entry / L2_CNODE_SLOTS]; 40 vnode->v.mapping.slot = entry % L2_CNODE_SLOTS; 41 assert(!cnoderef_is_null(vnode->v.mapping.cnode)); 42 assert(!capref_is_null(vnode->v.mapping)); 46 err = pmap->slot_alloc->alloc(pmap->slot_alloc, &vnode->v.mapping);
|
/barrelfish-master/lib/barrelfish/include/target/x86/ |
H A D | pmap_x86.h | 28 * \brief check whether vnode `root` has children in [entry .. entry+len). 34 bool has_vnode(struct vnode *root, uint32_t entry, size_t len, 37 * \return vnode at `entry` in `root`. NULL if no vnode there. 39 struct vnode *find_vnode(struct vnode *root, uint16_t entry); 44 bool inside_region(struct vnode *root, uint32_t entry, uint32_t npages); 47 * \brief remove vnode `item` from list of children of `root`. 49 void remove_vnode(struct vnode *root, struct vnode *ite [all...] |
/barrelfish-master/lib/barrelfish/ |
H A D | pmap_ll.c | 23 * \brief Starting at a given root, return the vnode with entry equal to #entry 25 struct vnode *pmap_find_vnode(struct vnode *root, uint16_t entry) 30 struct vnode *n; 32 for(n = root->v.u.vnode.children; n != NULL; n = n->v.meta.next) { 44 // return n if n is a vnode and the indices match 51 bool pmap_inside_region(struct vnode *root, uint16_t entry, uint16_t npages) 56 struct vnode *n; 58 for (n = root->v.u.vnode.children; n; n = n->v.meta.next) { 70 void pmap_remove_vnode(struct vnode *roo [all...] |
H A D | pmap_array.c | 23 * \brief Starting at a given root, return the vnode with entry equal to #entry 25 struct vnode *pmap_find_vnode(struct vnode *root, uint16_t entry) 31 if (root->v.u.vnode.children) { 32 return root->v.u.vnode.children[entry]; 38 bool pmap_inside_region(struct vnode *root, uint16_t entry, uint16_t npages) 43 struct vnode *n = root->v.u.vnode.children[entry]; 58 void pmap_remove_vnode(struct vnode *root, struct vnode *ite [all...] |
/barrelfish-master/include/arch/x86_32/barrelfish/ |
H A D | pmap_arch.h | 23 struct capref vnode, 26 return pmap_x86_32_init(pmap, vspace, vnode, opt_slot_alloc); 22 pmap_init(struct pmap *pmap, struct vspace *vspace, struct capref vnode, struct slot_allocator *opt_slot_alloc) argument
|
/barrelfish-master/include/arch/x86_64/barrelfish/ |
H A D | pmap_arch.h | 23 struct capref vnode, 26 return pmap_x86_64_init(pmap, vspace, vnode, opt_slot_alloc); 22 pmap_init(struct pmap *pmap, struct vspace *vspace, struct capref vnode, struct slot_allocator *opt_slot_alloc) argument
|
/barrelfish-master/include/target/x86/barrelfish/ |
H A D | pmap_target.h | 26 struct vnode { // NB: misnomer :) struct 27 struct vnode_public v; ///< public part of vnode 28 bool is_pinned; ///< is this a pinned vnode (do not reclaim automatically) 30 // still have to clone this vnode 31 struct vnode *orig; ///< vnode from which this one is cloned, for copy-on-write 39 } vnode; // for non-leaf node (maps another vnode) member in union:vnode::__anon60 47 STATIC_ASSERT(sizeof(struct vnode) <= VNODE_SLAB_SIZE, "vnode sla [all...] |
/barrelfish-master/lib/barrelfish/include/pmap_ll/ |
H A D | pmap_ds.h | 21 * through the non-null children of the vnode `root`. 23 * Note: this macro requires both root and iter to be 'struct vnode *'. 26 for (iter = (root)->v.u.vnode.children; iter; iter = iter->v.meta.next)
|
/barrelfish-master/usr/bench/cow/ |
H A D | pmap_cow.c | 16 static struct vnode *cow_root_pte = NULL; 125 static errval_t alloc_vnode_noalloc(struct pmap_x86 *pmap, struct vnode *root, 127 struct vnode **retvnode) 131 struct vnode *newvnode = slab_alloc(&pmap->p.m.slab); 152 newvnode->v.meta.next = root->v.u.vnode.children; 153 root->v.u.vnode.children = newvnode; 154 newvnode->v.u.vnode.children = NULL; 156 memset(newvnode->v.u.vnode.children, 0, sizeof(struct vode *)*PTABLE_SIZE); 157 root->v.u.vnode.children[entry] = newvnode; 166 static errval_t alloc_vnode(struct pmap_x86 *pmap, struct vnode *roo [all...] |
/barrelfish-master/include/barrelfish/ |
H A D | pmap_ds.h | 27 // 128 bytes is a rough estimate of sizeof(struct vnode) 33 typedef struct vnode pmap_ds_child_t; 36 struct vnode *next; ///< Pointer to next vnode in linked list 51 typedef struct vnode* pmap_ds_child_t;
|
H A D | pmap.h | 78 * Public part of struct vnode -- this should be the first member of 79 * arch-specific vnode definitions. 83 bool is_vnode; ///< Is this a vnode, or a (leaf) page mapping 84 enum objtype type; ///< Type of cap in the vnode 85 struct capref cap; ///< capability which is managed by this vnode 92 } vnode; // for non-leaf node (maps another vnode) member in union:vnode_public::__anon14 119 * \brief Pmap traversal: return the vnode with entry equal to #entry in vnode `root`. 121 struct vnode *pmap_find_vnod [all...] |
/barrelfish-master/include/target/aarch64/barrelfish/ |
H A D | pmap_target.h | 25 struct vnode { struct 26 struct vnode_public v; ///< Public part of struct vnode 31 } vnode; // for non-leaf node member in union:vnode::__anon47 40 struct vnode root; ///< Root of the vnode tree
|
/barrelfish-master/include/vm/ |
H A D | vnode_pager.h | 43 int vnode_pager_generic_getpages(struct vnode *vp, vm_page_t *m, 46 int vnode_pager_generic_putpages(struct vnode *vp, vm_page_t *m,
|
/barrelfish-master/include/target/x86_64/barrelfish/ |
H A D | pmap_target.h | 31 struct capref vnode, 34 struct capref vnode,
|
/barrelfish-master/include/arch/aarch64/barrelfish/ |
H A D | pmap_arch.h | 23 errval_t pmap_init(struct pmap *p, struct vspace *v, struct capref vnode,
|
/barrelfish-master/lib/barrelfish/arch/x86_64/ |
H A D | pmap.c | 91 static inline bool is_large_page(struct vnode *p) 96 static inline bool is_huge_page(struct vnode *p) 102 * \brief Returns the vnode for the pdpt mapping a given vspace address 105 struct vnode **pdpt); 107 struct vnode **pdpt) 110 struct vnode *root = &pmap->root; 136 * \brief Returns the vnode for the page directory mapping a given vspace 140 struct vnode **pdir); 142 struct vnode **pdir) 145 struct vnode *pdp 1142 struct vnode *vnode; local 1313 pmap_x86_64_init(struct pmap *pmap, struct vspace *vspace, struct capref vnode, struct slot_allocator *opt_slot_alloc) argument 1384 pmap_x86_64_init_ept(struct pmap *pmap, struct vspace *vspace, struct capref vnode, struct slot_allocator *opt_slot_alloc) argument [all...] |
/barrelfish-master/usr/tests/nkm/ |
H A D | map_offset.c | 25 struct capref vnode; local 26 err = slot_alloc(&vnode); 37 err = vnode_create(vnode, vntype); 59 err = vnode_map(vnode, frame, 0, FLAGS, 0, 128, mapping); 66 err = vnode_map(vnode, frame, 0, FLAGS, 0, 1, mapping); 80 err = vnode_map(vnode, frame, 1, FLAGS, 0, 1, mapping);
|
H A D | vnode_inherit.c | 24 struct vnode **ptable); 63 /* get struct vnode for ptable for our region */ 64 struct vnode *ptable = NULL; 76 struct vnode *cloned = NULL; 82 debug_printf("calling vnode inherit\n"); 83 err = vnode_inherit(cloned->v.u.vnode.invokable, ptable->v.u.vnode.invokable, 84 0, PTABLE_SIZE, ptable->u.vnode.mcn, cloned->u.vnode.mcn);
|
/barrelfish-master/lib/barrelfish/arch/arm/ |
H A D | pmap.c | 21 * single 1kB vnode from a 4kB frame, so we currently waste 3kB when creating 69 set_mapping_capref(struct capref *mapping, struct vnode *root, uint32_t entry) 72 mapping->cnode = root->u.vnode.mcnode[entry / L2_CNODE_SLOTS]; 101 * \brief Check whether vnode `root' has entries in between [entry .. 103 * \param root the vnode to look at 113 static bool has_vnode(struct vnode *root, uint32_t entry, size_t len, 118 struct vnode *n; 126 for (n = root->u.vnode.children; n; n = n->next) { 141 // not vnode 159 * \brief Starting at a given root, return the vnode wit 1217 pmap_init(struct pmap *pmap, struct vspace *vspace, struct capref vnode, struct slot_allocator *opt_slot_alloc) argument [all...] |
/barrelfish-master/include/arch/arm/barrelfish/ |
H A D | pmap_arch.h | 32 errval_t pmap_init(struct pmap *p, struct vspace *v, struct capref vnode,
|
/barrelfish-master/lib/barrelfish/arch/x86/ |
H A D | pmap.c | 28 * starting from `entry` in vnode `root`, if `only_pages` is set, page table 31 bool has_vnode(struct vnode *root, uint32_t entry, size_t len, 36 struct vnode *n; 100 errval_t alloc_vnode(struct pmap_x86 *pmap, struct vnode *root, 102 struct vnode **retvnode, genvaddr_t base) 106 struct vnode *newvnode = slab_alloc(&pmap->p.m.slab); 123 // XXX: need to make sure that vnode cap that we will invoke is in our cspace! 125 // debug_printf("%s: creating vnode for another domain in that domain's cspace; need to copy vnode cap to our cspace to make it invokable\n", __FUNCTION__); 126 err = slot_alloc(&newvnode->v.u.vnode [all...] |
/barrelfish-master/usr/tests/pagetable/ |
H A D | pagetable.c | 16 static void print_vnodes(struct vnode* current, int depth); 17 static void print_vnode(struct vnode *current, int depth) 28 printf("vnode:%p { entry: %d is_vnode: %d\n", current, current->v.entry, current->v.is_vnode); 32 printf("vnode: cap=%s\n", capbuffer); 34 print_vnodes(current->v.u.vnode.children, depth+1); 36 print_vnodes(current->v.u.vnode.children[0], depth+1); 52 static void print_vnodes(struct vnode* current, int depth) { 60 struct vnode **currentp = ¤t; 71 static void find_pagetables(struct vnode* current) { 88 USER_PANIC_ERR(err, "Invoke vnode identif [all...] |
/barrelfish-master/lib/barrelfish/arch/aarch64/ |
H A D | pmap.c | 89 static bool has_vnode(struct vnode *root, uint16_t entry, size_t len) 93 struct vnode *n; 118 static errval_t alloc_vnode(struct pmap_aarch64 *pmap_aarch64, struct vnode *root, 120 struct vnode **retvnode) 131 struct vnode *newvnode = slab_alloc(&pmap_aarch64->p.m.slab); 152 // XXX: need to make sure that vnode cap that we will invoke is in our cspace! 154 // debug_printf("%s: creating vnode for another domain in that domain's cspace; need to copy vnode cap to our cspace to make it invokable\n", __FUNCTION__); 156 err = slot_alloc(&newvnode->v.u.vnode.invokable); 160 err = cap_copy(newvnode->v.u.vnode 743 pmap_init(struct pmap *pmap, struct vspace *vspace, struct capref vnode, struct slot_allocator *opt_slot_alloc) argument [all...] |