Print this page
code review from Josh and Robert

*** 22,41 **** anything at all. For example, we could use an arena containing the integers minpid through maxpid to allocate process IDs. For uses of this nature, prefer id_space(9F) instead. vmem_create() and vmem_destroy() create and destroy vmem arenas. In ! order to differentiate between arenas used for adresses and arenas used for identifiers, the VMC_IDENTIFIER flag is passed to vmem_create(). This prevents identifier exhaustion from being diagnosed as general memory failure. Spans We represent the integers in an arena as a collection of spans, or contiguous ranges of integers. For example, the kernel heap consists of just one span: [kernelheap, ekernelheap). Spans can be added to an arena ! in two ways: explicitly, by vmem_add(), or implicitly, by importing, as described in Imported Memory below. Segments Spans are subdivided into segments, each of which is either allocated or free. A segment, like a span, is a contiguous range of integers. Each --- 22,41 ---- anything at all. For example, we could use an arena containing the integers minpid through maxpid to allocate process IDs. For uses of this nature, prefer id_space(9F) instead. vmem_create() and vmem_destroy() create and destroy vmem arenas. In ! order to differentiate between arenas used for addresses and arenas used for identifiers, the VMC_IDENTIFIER flag is passed to vmem_create(). This prevents identifier exhaustion from being diagnosed as general memory failure. Spans We represent the integers in an arena as a collection of spans, or contiguous ranges of integers. For example, the kernel heap consists of just one span: [kernelheap, ekernelheap). Spans can be added to an arena ! in two ways: explicitly, by vmem_add(); or implicitly, by importing, as described in Imported Memory below. Segments Spans are subdivided into segments, each of which is either allocated or free. A segment, like a span, is a contiguous range of integers. Each