System Call Interface
and the Elan hardware context numbers to be used.
typedef struct elan_capability
{ELAN_USERKEY UserKey; /* User defined protection */
int Version; /* Version number */
short Type; /* Type */
short Generation; /* Generation number */
int LowContext; /* low context number in block */
int HighContext; /* high context number in block */
int MyContext; /* my context number */
int LowNode; /* low elan id of group */
int HighNode; /* high elan id of group */
int Entries; /* number of processes */
int RouteTable; /* route table name to use */
unsigned int RailMask; /* rails this capability is valid for */
bitmap_t Bitmap[ELAN_BITMAPSIZE]; /* Bitmap of process to node translation */
} ELAN_CAPABILITY;
Elan capabilities are created on each node allocated to a parallel program and passed to
its processes through the RMS kernel module.
C.3 System Call Interface
The RMS kernel module is accessed through its system call interface. This interface
allows processes with administrator privileges to create program descriptions, add Elan
capabilities to them, collect resource utilization statistics from them and destroy them
when their processes have exited. It also allows them to suspend or resume the
processes and deliver signals to them.
The RMS system call interface allows user processes to determine how many nodes,
CPUs, rails and contexts they have been allocated. This information is primarily (but not
exclusively) for use by parallel programming libraries.
C-2 RMS Kernel Module