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