1
1
This commit was SVN r144.
Этот коммит содержится в:
Tim Woodall 2004-01-09 05:11:33 +00:00
родитель 273ed3ebf5
Коммит eee3abd2f9
2 изменённых файлов: 95 добавлений и 74 удалений

Просмотреть файл

@ -12,63 +12,85 @@
/*
* Types for each API function pointer.
*
* JMS: This is an example -- there will need to be a query function,
* but I have no idea what the arguments will be.
* PML module functions
*/
typedef int (*mca_pml_query_fn_t)(int *priority, int *thread_min,
int *thread_max);
/*
* Action functions
*
* JMS: Again, this is an example.
*/
typedef int (*mci_pml_addprocs_fn_t)(lam_proc_t **procs, int nprocs);
typedef const struct mca_pml_actions_1_0_0 *
(*mca_pml_init_1_0_0_fn_t)(struct _proc **procs, int nprocs,
int *max_tag, int *max_cid);
typedef int (*mca_pml_query_fn_t)(int *priority);
typedef struct mca_pml_1_0_0 * (*mca_pml_init_1_0_0_fn_t)(
struct lam_proc **procs,
int nprocs,
int *max_tag,
int *max_cid
);
/*
* Struct used to pass pml MCA information from the each pml instance
* back to the MCA framework.
* PML interface functions
*/
typedef struct mca_pml_1_0_0 {
typedef enum {
MCA_PTM_REQUEST_TYPE_RECV,
MCA_PTM_REQUEST_TYPE_SEND_STANDARD,
MCA_PTM_REQUEST_TYPE_SEND_BUFFERED,
MCA_PTM_REQUEST_TYPE_SEND_SYNCHRONOUS,
MCA_PTM_REQUEST_TYPE_SEND_READY
} mca_pml_request_type_t;
typedef int (*mca_pml_progress_fn_t)(lam_time_t);
typedef int (*mca_pml_isend_fn_t)(
void *buf,
size_t size,
lam_datatype_t *datatype,
int dest,
int tag,
lam_communicator_t* comm,
mca_pml_request_type_t req_type,
lam_request_t **request
);
typedef int (*mci_pma_addprocs_fn_t)(lam_proc_t **procs, int nprocs);
/*
* PML module definition.
*/
typedef struct mca_pml_module_1_0_0 {
mca_1_0_0_t mp_meta_info;
/* pml API function pointers */
mca_pml_query_fn_t mp_query;
mca_pml_init_1_0_0_fn_t mp_init;
} mca_pml_module_1_0_0_t;
/*
* Struct that represents the common state and interface functions
* provided by a PML.
*/
typedef struct mca_pml_1_0_0 {
mca_pml_addprocs_fn_t pml_addprocs;
mca_pml_isend_fn_t pml_isend;
mca_pml_progress_fn_t pml_progress;
} mca_pml_1_0_0_t;
typedef struct mca_pml_actions_1_0_0 {
/* pml API action function pointers */
mca_pml_addprocs_fn_t mpa_addprocs;
/* Flags */
bool mp_tv_queue_support;
} mca_pml_actions_1_0_0_t;
/*
* Set the default type to use version 1.1.0 of the SSI RPI struct
* Set the default type to use version 1.1.0 of the PML
*/
typedef mca_pml_module_1_1_0_t mca_pml_t;
typedef mca_pml_1_1_0_t mca_pml_t;
typedef mca_pml_actions_1_1_0_t mca_pml_actions_t;
/*
* Global functions for MCA: overall pml open and close
* Global functions for MCA: overall PML open and close
*/
#if defined(c_plusplus) || defined(__cplusplus)
@ -86,8 +108,8 @@ extern "C" {
* Public variables
*/
extern lam_list_t *lam_ssi_rpi_base_opened;
extern lam_list_t *lam_ssi_rpi_base_available;
extern lam_list_t *mca_base_opened;
extern lam_list_t *mca_base_available;
/*
* Global instance of array of pointers to lam_ssi_rpi_t. Will

Просмотреть файл

@ -12,63 +12,62 @@
/*
* Types for each API function pointer.
*
* JMS: This is an example -- there will need to be a query function,
* but I have no idea what the arguments will be.
* PTL module functions.
*/
typedef int (*mca_ptl_query_fn_t)(int *priority, int *thread_min,
int *thread_max);
typedef int (*mca_ptl_query_fn_t)(int *priority, int *thread_min, int *thread_max);
typedef struct mca_ptl_1_0_0* (*mca_ptl_init_1_0_0_fn_t)();
/*
* Action functions
*
* JMS: Again, this is an example.
* PTL action functions.
*/
typedef int (*mci_ptl_addprocs_fn_t)(lam_proc_t **procs, int nprocs);
typedef const struct mca_ptl_actions_1_0_0 *
(*mca_ptl_init_1_0_0_fn_t)(struct _proc **procs, int nprocs,
int *max_tag, int *max_cid);
typedef int (*mca_ptl_fragment_fn_t)(mca_ptl_send_request_t*, size_t);
typedef int (*mca_ptl_progress_fn_t)(mca_time_t);
/*
* Struct used to pass ptl MCA information from the each ptl instance
* back to the MCA framework.
* Struct used to pass PTL module information from the each PTL
* instance back to the MCA framework.
*/
typedef struct mca_ptl_module_1_0_0 {
mca_1_0_0_t mp_meta_info;
mca_ptl_query_fn_t mp_query;
mca_ptl_init_1_0_0_fn_t mp_init;
} mca_ptl_module_1_0_0_t;
/*
* Struct that represents the common state and interface functions
* provided by a PTL.
*/
typedef struct mca_ptl_1_0_0 {
mca_1_0_0_t mp_meta_info;
/* ptl API function pointers */
/* PTL common attributes */
size_t ptl_frag_first_size; /* maximum size of first fragment */
size_t ptl_frag_min_size; /* threshold below which the CDI will not fragment */
size_t ptl_frag_max_size; /* maximum fragment size supported by the CDI */
uint32_t ptl_endpoint_latency; /* relative/absolute measure of latency */
uint64_t ptl_endpoint_bandwidth; /* bandwidth (bytes/sec) supported by each endpoint */
size_t ptl_endpoint_count; /* number endpoints supported by this CDI */
/* PTL function table */
mca_ptl_fragment_fn_t ptl_fragment;
mca_ptl_progress_fn_t ptl_progress;
mca_ptl_query_fn_t mp_query;
mca_ptl_init_1_0_0_fn_t mp_init;
} mca_ptl_1_0_0_t;
typedef struct mca_ptl_actions_1_0_0 {
/* ptl API action function pointers */
mca_ptl_addprocs_fn_t mpa_addprocs;
/* Flags */
bool mp_tv_queue_support;
} mca_ptl_actions_1_0_0_t;
/*
* Set the default type to use version 1.1.0 of the SSI RPI struct
* Set the default type to use version 1.1.0 of the PTL
*/
typedef mca_ptl_module_1_1_0_t mca_ptl_module_t;
typedef mca_ptl_1_1_0_t mca_ptl_t;
typedef mca_ptl_actions_1_1_0_t mca_ptl_actions_t;
/*
* Global functions for MCA: overall ptl open and close
* Global functions for MCA: overall PTL open and close
*/
#if defined(c_plusplus) || defined(__cplusplus)
@ -86,11 +85,11 @@ extern "C" {
* Public variables
*/
extern lam_list_t *lam_ssi_rpi_base_opened;
extern lam_list_t *lam_ssi_rpi_base_available;
extern lam_list_t *mca_base_opened;
extern lam_list_t *mca_base_available;
/*
* Global instance of array of pointers to lam_ssi_rpi_t. Will
* Global instance of array of pointers to mca_t. Will
* effectively be filled in by configure.
*/