##### 8.5.4.5 Location Declaration

There are several kinds of location in the configuration language. We shall present them in the next subsections, but here is a short overview of these locations:

- Boot_Location defines the network locations to use to communicate with the the boot server during the boot phase
- Self_Location defines the network locations to use by others to communicate with the current partition
- Data_Location defines the data storage location used by the current partition to map its shared passive units

A location is composed of a support name and a specific data for this support. For instance, a network location is composed of a protocol name like tcp and a protocol data like <machine>:<port>. A storage location is composed of a storage support name like dfs (for Distributed File System) and a storage support data like a directory /dfs/glade.

         LOCATION      ::= ([Support_Name =>] STRING_LITERAL,
                            [Support_Data =>] STRING_LITERAL)

         LOCATION_LIST ::= (LOCATION [,LOCATION)])

Note that a location may have an undefined or incomplete support data. In this case, the support is free to compute a support data. For instance, ("tcp", "") specifies that the protocol is used but that the protocol data <machine>:<port> is to be determined by the protocol itself.

A location or a list of locations can be can be concatenated into a single string to be used as a command line option or an environment variable (see Partition Runtime Parameters).

If a partition wants to communicate with another partition once the location list of the latter is known, the caller will use the first location of the callee whose protocol is locally available. For instance, if a callee exports three locations ("N1", "D1"), ("N2", "D2") and ("N3", "D3"), a caller with protocols N2 and N3 locally available will try to communicate with the callee using the protocol of name N2 and of specific data D2.