next up previous contents index
Next: 16.2 Addresses and attributes Up: 16 Address Map Manager: Previous: 16 Address Map Manager:

16.1 Introduction

The Address Map Manager (AMM) library manages collections of resources where each element of a collection has a name (address) and some set of attributes. These collections are described by address maps. Examples of resources which might be managed by address maps include:

Logically, an address map is an array of attribute values indexed by address. However, such an implementation would be impractical for all but the smallest address ranges so the AMM coalesces ranges of contiguous addresses with identical attributes and describes each such range with an address map entry. Hence address maps are collections of map entries with every possible address contained in exactly one entry.

The AMM library includes routines to create and destroy address maps, lookup addresses within a map, modify the attributes of addresses within a map, and iterate over all entries in a map. The library is responsible for maintaining a consistent and efficient representation of the map. The complete set of routines is described in section 16.8.

The AMM is a pure component: it uses no static or global variables, so clients can freely make concurrent AMM calls on different address maps without synchronization. However, in interruptible or multithreaded environments, the client is responsible for synchronizing calls that manipulate a single AMM pool. Section 2.2 describes the pure execution environment supported by the AMM in more detail.


next up previous contents index
Next: 16.2 Addresses and attributes Up: 16 Address Map Manager: Previous: 16 Address Map Manager:

University of Utah Flux Research Group