Next: 3.2 State
Up: 3 Task
Previous: 3 Task
Fluke task objects provide an address space which serves as a
rendezvous point for regions, mappings and threads.
Regions are associated with tasks to ``export'' part of the address space
to others (via region references).
Mappings are associated with tasks and regions to ``import'' part of another
task's address space into the current task.
Threads use the task address space as a context in which to execute.
The include file <fluke/machine/vm.h>
defines the following processor architecture-specific constants
indicating the layout and limits of a Fluke address space:
- FLUKE_VM_MIN
-
Minimum virtual address at which application code
may map memory using mapping objects
and export memory using region objects.
- FLUKE_VM_MAX
-
Maximum virtual address beyond which application code
may not map or export memory.
The usable address range is from FLUKE_VM_MIN
to FLUKE_VM_MAX-1 inclusive.
- FLUKE_ENTRY_MIN
-
Virtual address of the beginning of the Fluke entrypoint area,
which may be either inside or outside of the usable VM address range
described by the above symbols.
If the entrypoint area is within the user VM address range,
then application code may use addresses
both before and after the entrypoint area,
but must not create regions or mappings
within or overlapping the entrypoint area itself.
- FLUKE_ENTRY_MAX
-
Virtual address of the end of the Fluke entrypoint area.
The set of reserved addresses in this area
is from FLUKE_ENTRY_MIN to FLUKE_ENTRY_MAX-1 inclusive.
Utah Flux Research Group