8.0 Grid library

The CLegionLib.h file contains the declarations for the C Library interface to the Legion system. This library is specifically designed to allow ease of use in many languages (including Fortran, C, C++). For additional functionality, the CError.h header file contains all necessary declarations to doing some small amount of error handling.

/* Change Log:	*/
#ifndef CLEGION_LIB_H
#define CLEGION_LIB_H

#ifdef __cplusplus
extern "C" {
#endif

#include <stdio.h>

Note that anytime this header file talks about freeing memory, it is referring to using the C-language's free() function to return memory to the heap, NOT the C++ language's delete operators.

/* LOID Parameters */
#define LOID_PARAM	   0					/* These defines give the	*/
#define CONTEXT_PARAM	   1					/* two valid values for 	*/
								/* LegionIdType variables	*/
								/* parameters.			*/

typedef		int	   LegionIdType;			/* This type is used in	*/
								/* function calls to indicate */
								/* whether or note the 	*/
								/* parameter is a LOID. The 	*/
								/* valid values are LOID_PARAM */
								/* and CONTEXT_PARAM.		*/
	
typedef		int	   CLegionBinding;			/* These typedefs are used to */
typedef		int	   CLegionHostReservation;		/* represent all of the	*/
typedef		int	   CLegionHostReservationRecord;	/* necessary C++ classes that */
typedef		int	   CLegionVaultReservation;		/* would normally be used in	*/
typedef		int	   CLegionVaultReservationRecord;	/* their place. In all cases	*/
typedef		int	   CLegionReservation;		/* these are actually pointers */
typedef		int	   CLegionHostObjectStatus;		/* to LRefs to the actual	*/
typedef		int	   CLegionOPRAddress;			/* class type. This double	*/
typedef		int	   CUVaL_InstanceRecord;		/* level of pointer		*/
typedef		int	   CInstancePlacementInfo;		/* indirection was done to 	*/
typedef		int	   CLegionCollection Data;		/* allow for some small measure */
								/* of reference counting.	*/

The following section contains all of the valid Legion architectures.

#define LEGION_ARCH_linux		1
#define LEGION_ARCH_solaris		2
#define LEGION_ARCH_sun4		3
#define LEGION_ARCH_alpha_linux	4
#define LEGION_ARCH_alpha_DEC	5
#define LEGION_ARCH_sgi		6
#define LEGION_ARCH_rs6000		7
#define LEGION_ARCH_hp		8
#define LEGION_ARCH_t90		9
#define LEGION_ARCH_c90		10
#define LEGION_ARCH_t3e		11
#define LEGION_ARCH_x86_freebsd	12
#define LEGION_ARCH_winnt_x86 	13

All programs that use the CLegionLib library contain some small amount of state which determines how the CLegionLib library interacts with certain Legion functions.

The following section gives the declarations for the functions that allow the user to interface with this state.

void	SetTimeOutValue	(int Seconds);		/* These functions set and clear	*/
void	ClearTimeOutValue	();			/* the default timeout value for	*/
							/* most Legion method invocations.	*/
void	SetForceActivation	();			/* In some small number of calls,	*/
void	ClearForceActivation	();			/* a target Legion object may not	*/ 
							/* not yet be active. The force	*/
							/* activation flag indicates		*/
							/* whether the call should 		*/
							/* activate the object or fail.	*/

All programs that use the CLegionLib library contain some small amount of state which determines how the CLegionLib library interacts with certain Legion functions. The following section gives the declarations for the functions that allow the user to interface with this state.

8.1 Legion Library interface

8.2 Exceptions

8.3 Legion context space

8.4 Legion object management

8.5 Legion attributes

8.6 Interfaces to Legion objects

8.7 Legion C++ type manipulation

8.8 Legion host object

8.9 Vault object

8.10 Class object

8.11 Legion implicit parameters

8.12 Collections

Directory of Legion 1.8 Manuals
[Home] [General] [Documentation] [Software]
[Testbeds] [Et Cetera] [Map/Search]

Free JavaScripts provided by The JavaScript Source

legion@Virginia.edu
http://legion.virginia.edu/