next up previous contents
Next: 3.2 State Up: 3 Task Previous: 3 Task

3.1 Overview

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