📄 grequest.h
字号:
/* * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. * Copyright (c) 2004-2005 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2006 Cisco Systems, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */#ifndef OMPI_GEN_REQUEST_H#define OMPI_GEN_REQUEST_H#include "ompi_config.h"#include "ompi/request/request.h"#if defined(c_plusplus) || defined(__cplusplus)extern "C" {#endifOMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_grequest_t);/** * Fortran type for generalized request query function */typedef void (MPI_F_Grequest_query_function)(MPI_Aint *extra_state, MPI_Fint *status, MPI_Fint *ierr);/** * Fortran type for generalized request free function */typedef void (MPI_F_Grequest_free_function)(MPI_Aint *extra_state, MPI_Fint *ierr);/** * Fortran type for generalized request cancel function */typedef void (MPI_F_Grequest_cancel_function)(MPI_Aint *extra_state, MPI_Flogical *complete, MPI_Fint *ierr);/** * Union for query function for use in ompi_grequest_t */typedef union { MPI_Grequest_query_function* c_query; MPI_F_Grequest_query_function* f_query;} MPI_Grequest_query_fct_t;/** * Union for free function for use in ompi_grequest_t */typedef union { MPI_Grequest_free_function* c_free; MPI_F_Grequest_free_function* f_free;} MPI_Grequest_free_fct_t;/** * Union for cancel function for use in ompi_grequest_t */typedef union { MPI_Grequest_cancel_function* c_cancel; MPI_F_Grequest_cancel_function* f_cancel;} MPI_Grequest_cancel_fct_t;/** * Main structure for MPI generalized requests */struct ompi_grequest_t { ompi_request_t greq_base; MPI_Grequest_query_fct_t greq_query; MPI_Grequest_free_fct_t greq_free; MPI_Grequest_cancel_fct_t greq_cancel; void *greq_state; bool greq_funcs_are_c;};/** * Convenience typedef */typedef struct ompi_grequest_t ompi_grequest_t;/** * Start a generalized request (back end for MPI_GREQUEST_START) */OMPI_DECLSPEC int ompi_grequest_start( MPI_Grequest_query_function *gquery, MPI_Grequest_free_function *gfree, MPI_Grequest_cancel_function *gcancel, void* gstate, ompi_request_t** request);/** * Complete a generalized request (back end for MPI_GREQUEST_COMPLETE) */OMPI_DECLSPEC int ompi_grequest_complete(ompi_request_t *req);/** * Invoke the query function on a generalized request */OMPI_DECLSPEC int ompi_grequest_invoke_query(ompi_request_t *request, ompi_status_public_t *status);#if defined(c_plusplus) || defined(__cplusplus)}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -