1
1
openmpi/ompi/mca/ptl/gm/ptl_gm_priv.h
George Bosilca 13f4191334 Remove the gm_config.h file as now the GM defines are in the ompi_config.h.
Add some more header files for the next commit ... stay tuned ...

This commit was SVN r7315.
2005-09-12 19:55:21 +00:00

67 строки
2.6 KiB
C

/* -*- Mode: C; c-basic-offset:4 ; -*- */
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University.
* All rights reserved.
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
* All rights reserved.
* Copyright (c) 2004 The Ohio State University.
* 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$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "ompi_config.h"
#include "gm.h"
struct mca_ptl_gm_send_frag_t;
struct mca_ptl_gm_peer_t;
struct mca_ptl_gm_module_t;
/* Pinning down memory pages is a costly operation. We can avoid it by using a LRU list
* of pinned down memory, managed inside the GM PTL.
*/
gm_status_t mca_ptl_gm_register_memory( struct gm_port *port, void *ptr, unsigned len );
gm_status_t mca_ptl_gm_deregister_memory( struct gm_port *port, void *ptr, unsigned len );
#if OMPI_MCA_PTL_GM_CACHE_ENABLE
void mca_ptl_gm_regcache_init(void);
unsigned int gmpi_use_interval(struct gm_port *gmpi_gm_port, gm_up_t start, unsigned int length);
gm_status_t gmpi_unuse_interval(struct gm_port *gmpi_gm_port, gm_up_t start, unsigned int length);
void gmpi_clear_interval(struct gm_port *gmpi_gm_port, gm_up_t start, unsigned int length);
void gmpi_clear_all_intervals(void);
#endif /* OMPI_MCA_PTL_GM_CACHE_ENABLE */
/* Some flags that have to go in the header hdr_common.hdr_flags field */
#define PTL_FLAG_GM_HAS_FRAGMENT 0x04
#define PTL_FLAG_GM_LAST_FRAGMENT 0x08
#define PTL_FLAG_GM_REQUIRE_LOCK 0x10
/* Internal flags for handling long messages */
#define GM_PTL_REGISTER_MEMORY 0x01
#define GM_PTL_SEND_MESSAGE 0x02
int mca_ptl_gm_analyze_recv_event( struct mca_ptl_gm_module_t* ptl, gm_recv_event_t* event );
void mca_ptl_gm_outstanding_recv( struct mca_ptl_gm_module_t *ptl);
int mca_ptl_gm_peer_send( struct mca_ptl_base_module_t* ptl,
struct mca_ptl_base_peer_t* ptl_base_peer,
struct mca_ptl_base_send_request_t *sendreq,
size_t offset,
size_t size,
int flags );
int
mca_ptl_gm_peer_send_continue( struct mca_ptl_gm_peer_t *ptl_peer,
struct mca_ptl_gm_send_frag_t *fragment,
struct mca_ptl_base_send_request_t *sendreq,
size_t offset,
size_t *size,
int flags );