提交 b6a87fd8 创建 作者: Frans Kaashoek's avatar Frans Kaashoek

From user-space:

- working crange_search - crange_search takes sz as argument - better for deciding when a node can be delayed freed
上级 dbc11d57
差异被折叠。
......@@ -72,7 +72,7 @@ struct crange* crange_alloc(int nlevel);
void crange_free(struct crange *cr);
void crange_del(struct crange *cr, u64 k, u64 sz);
void crange_add(struct crange *cr, u64 k, u64 sz, void *v);
struct clist_range* crange_search(struct crange *cr, u64 k);
struct clist_range* crange_search(struct crange *cr, u64 k, u64 sz);
int crange_foreach(struct crange *crk, int (*f)(struct clist_range *r, void *st), void *st);
void crange_print(struct crange *cr, int);
......
......@@ -345,7 +345,7 @@ vmap_lookup(struct vmap *m, uptr start, uptr len)
if(start + len < start)
panic("vmap_lookup bad len");
struct clist_range *r = crange_search(m->cr, start);
struct clist_range *r = crange_search(m->cr, start, len);
if (r != 0) {
struct vma *e = (struct vma *) (r->value);
if (e->va_end <= e->va_start)
......@@ -446,7 +446,7 @@ vmap_remove(struct vmap *m, uptr va_start, u64 len)
{
acquire(&m->lock);
uptr va_end = va_start + len;
struct clist_range *r = crange_search(m->cr, va_start);
struct clist_range *r = crange_search(m->cr, va_start, len);
if (r == 0)
panic("no vma?");
struct vma *e = (struct vma *) r->value;
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论