##
## Copyright (C) by Argonne National Laboratory
##     See COPYRIGHT in top-level directory
##
#
# This file defines ch4 netmod/shm API. It is used by maint/gen_ch4_api.py
# to generate a sets of boilerplate headers, including
#   - src/mpid/ch4/netmod/{ofi,ucx,stubnm}/func_table.c
#   - src/mpid/ch4/netmod/{ofi,ucx,stubnm}/{ofi,ucx,stubnm}_noinline.h.c
#   - src/mpid/ch4/shm/src/shm_noinline.h
#   - src/mpid/ch4/shm/posix/posix_noinline.h
#   - src/mpid/ch4/shm/stubshm/shm_noinline.h
# It also gnerates the stub codes in 
#   - src/mpid/ch4/netmod/stubnm
#   - src/mpid/ch4/shm/stubshm
#
# There are 3 parts, "Non Native API", "Native API", and "PARAM".
# The API part format follows the following pattern:
#   api_name: return_type
#      NM or SHM [*] : parameter list
# Note:
#  - The leading space is necessary, but the number of spaces are insignificant.
#  - Parameters just lists name, its type is specified in the "PARAM" section.
#  - Either SHM or NM may be omitted, and they don't have to have the same parameters.
#  - Use a '*' to note the inline functions, e.g.  "  NM*: param list"
#
# The PARAM section lists type as a dictionary to parameter names. If the same name
# is used in different APIs with different types, differentiate them with suffix
# such as "-x". The suffixes are not part of the name and is only used to differentiate
# parameters. As a guideline, try use unique name for different types.
#

Non Native API:
  init_local: int
      NM : tag_bits
     SHM : tag_bits
  init_world: int
      NM : void
     SHM : void
  mpi_finalize_hook : int
      NM : void
     SHM : void
  init_vcis: int
      NM : num_vcis, num_vcis_actual
  post_init : int
      NM : void
     SHM : void
  progress : int
      NM*: vci, made_progress
     SHM*: vci, made_progress
  comm_set_hints : int
      NM : comm_ptr, info
     SHM : comm_ptr, info
  am_send_hdr : int
      NM*: rank, comm, handler_id, am_hdr, am_hdr_sz, src_vci, dst_vci
     SHM*: rank, comm, handler_id, am_hdr, am_hdr_sz, src_vci, dst_vci
  am_isend : int
      NM*: rank, comm, handler_id, am_hdr, am_hdr_sz, data, count, datatype, src_vci, dst_vci, sreq
     SHM*: rank, comm, handler_id, am_hdr, am_hdr_sz, data, count, datatype, src_vci, dst_vci, sreq
  am_send_hdr_reply : int
      NM*: comm, src_rank, handler_id, am_hdr, am_hdr_sz, src_vci, dst_vci
     SHM*: comm, src_rank, handler_id, am_hdr, am_hdr_sz, src_vci, dst_vci
  am_isend_reply : int
      NM*: comm, src_rank, handler_id, am_hdr, am_hdr_sz, data, count, datatype, src_vci, dst_vci, sreq
     SHM*: comm, src_rank, handler_id, am_hdr, am_hdr_sz, data, count, datatype, src_vci, dst_vci, sreq
  am_get_data_copy_cb : MPIDIG_recv_data_copy_cb
      NM*: attr
     SHM*: attr
  am_hdr_max_sz : MPI_Aint
      NM*: void
     SHM*: void
  am_eager_limit : MPI_Aint
      NM*: void
     SHM*: void
  am_eager_buf_limit : MPI_Aint
      NM*: void
     SHM*: void
  am_check_eager: bool
      NM*: am_hdr_sz, data_sz, data, count, datatype, sreq
     SHM*: am_hdr_sz, data_sz, data, count, datatype, sreq
  comm_get_gpid : int
      NM*: comm_ptr, idx, gpid_ptr, is_remote
  get_local_upids : int
      NM : comm, local_upid_size, local_upids
  upids_to_gpids : int
      NM : size, remote_upid_size, remote_upids, remote_gpids
  dynamic_send : int
      NM : remote_gpid, tag, buf, size, timeout
  dynamic_recv : int
      NM : tag, buf-2, size, timeout
  mpi_comm_commit_pre_hook : int
      NM : comm
     SHM : comm
  mpi_comm_commit_post_hook : int
      NM : comm
     SHM : comm
  mpi_comm_free_hook : int
      NM : comm
     SHM : comm
  mpi_win_create_hook : int
      NM : win
     SHM : win
  mpi_win_allocate_hook : int
      NM : win
     SHM : win
  mpi_win_allocate_shared_hook : int
      NM : win
     SHM : win
  mpi_win_create_dynamic_hook : int
      NM : win
     SHM : win
  mpi_win_attach_hook : int
      NM : win, base, size-2
     SHM : win, base, size-2
  mpi_win_detach_hook : int
      NM : win, base-2
     SHM : win, base-2
  mpi_win_free_hook : int
      NM : win
     SHM : win
  rma_win_cmpl_hook : int
      NM*: win
     SHM*: win
  rma_win_local_cmpl_hook : int
      NM*: win
     SHM*: win
  rma_target_cmpl_hook : int
      NM*: rank, win
     SHM*: rank, win
  rma_target_local_cmpl_hook : int
      NM*: rank, win
     SHM*: rank, win
  am_request_init : void
      NM*: req
     SHM*: req
  am_request_finalize : void
      NM*: req
     SHM*: req

Native API:
  mpi_isend : int
      NM*: buf, count, datatype, rank, tag, comm, attr-2, addr, req_p
     SHM*: buf, count, datatype, rank, tag, comm, attr-2, addr, req_p
  mpi_cancel_send : int
      NM*: sreq
     SHM*: sreq
  mpi_irecv : int
      NM*: buf-2, count, datatype, rank, tag, comm, attr-2, addr, req_p, partner
     SHM*: buf-2, count, datatype, rank, tag, comm, attr-2, req_p
  mpi_imrecv : int
      NM*: buf-2, count, datatype, message
     SHM*: buf-2, count, datatype, message
  mpi_cancel_recv : int
      NM*: rreq, is_blocking
     SHM*: rreq
  mpi_psend_init : int
      NM: buf, partitions, count, datatype, rank, tag, comm, info, av, req_p
     SHM: buf, partitions, count, datatype, rank, tag, comm, info, av, req_p
  mpi_precv_init : int
      NM: buf-2, partitions, count, datatype, rank, tag, comm, info, av, req_p
     SHM: buf-2, partitions, count, datatype, rank, tag, comm, info, av, req_p
  part_start : int
      NM*: req
      SHM*: req
  mpi_pready_range : int
      NM*: partition_low, partition_high, sreq
     SHM*: partition_low, partition_high, sreq
  mpi_pready_list : int
      NM*: length-2, array_of_partitions, sreq
     SHM*: length-2, array_of_partitions, sreq
  mpi_parrived : int
      NM*: rreq, partition, flag
     SHM*: rreq, partition, flag
  mpi_alloc_mem : void *
      NM : size-2, info
     SHM : size-2, info
  mpi_free_mem : int
      NM : ptr
     SHM : ptr
  mpi_improbe : int
      NM*: source, tag, comm, attr-2, addr, flag, message_p, status
     SHM*: source, tag, comm, attr-2, flag, message_p, status
  mpi_iprobe : int
      NM*: source, tag, comm, attr-2, addr, flag, status
     SHM*: source, tag, comm, attr-2, flag, status
  mpi_win_set_info : int
      NM : win, info
     SHM : win, info
  mpi_win_shared_query : int
      NM*: win, rank, size_p, disp_unit_p, baseptr
  mpi_put : int
      NM*: origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, addr, winattr
     SHM*: origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, winattr
  mpi_win_start : int
      NM*: group, assert, win
  mpi_win_complete : int
      NM*: win
  mpi_win_post : int
      NM*: group, assert, win
  mpi_win_wait : int
      NM*: win
  mpi_win_test : int
      NM*: win, flag
  mpi_win_lock : int
      NM*: lock_type, rank, assert, win, addr
  mpi_win_unlock : int
      NM*: rank, win, addr
  mpi_win_get_info : int
      NM : win, info_p
     SHM : win, info_p
  mpi_get : int
      NM*: origin_addr-2, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, addr, winattr
     SHM*: origin_addr-2, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, winattr
  mpi_win_free : int
      NM : win_p
     SHM : win_p
  mpi_win_fence : int
      NM*: assert, win
  mpi_win_create : int
      NM : base, length, disp_unit, info, comm_ptr, win_p
     SHM : base, length, disp_unit, info, comm_ptr, win_p
  mpi_accumulate : int
      NM*: origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, op, win, addr, winattr
     SHM*: origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, op, win, winattr
  mpi_win_attach : int
      NM : win, base, size-2
     SHM : win, base, size-2
  mpi_win_allocate_shared : int
      NM : size-2, disp_unit, info, comm_ptr, baseptr_p, win_p
     SHM : size-2, disp_unit, info, comm_ptr, baseptr_p, win_p
  mpi_rput : int
      NM*: origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, addr, winattr, req_p
     SHM*: origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, winattr, req_p
  mpi_win_flush_local : int
      NM*: rank, win, addr
  mpi_win_detach : int
      NM : win, base-2
     SHM : win, base-2
  mpi_compare_and_swap : int
      NM*: origin_addr, compare_addr, result_addr, datatype, target_rank, target_disp, win, addr, winattr
     SHM*: origin_addr, compare_addr, result_addr, datatype, target_rank, target_disp, win, winattr
  mpi_raccumulate : int
      NM*: origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, op, win, addr, winattr, req_p
     SHM*: origin_addr, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, op, win, winattr, req_p
  mpi_rget_accumulate : int
      NM*: origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, target_rank, target_disp, target_count, target_datatype, op, win, addr, winattr, req_p
     SHM*: origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, target_rank, target_disp, target_count, target_datatype, op, win, winattr, req_p
  mpi_fetch_and_op : int
      NM*: origin_addr, result_addr, datatype, target_rank, target_disp, op, win, addr, winattr
     SHM*: origin_addr, result_addr, datatype, target_rank, target_disp, op, win, winattr
  mpi_win_allocate : int
      NM : size-2, disp_unit, info, comm, baseptr, win_p
     SHM : size-2, disp_unit, info, comm, baseptr, win_p
  mpi_win_flush : int
      NM*: rank, win, addr
  mpi_win_flush_local_all : int
      NM*: win
  mpi_win_unlock_all : int
      NM*: win
  mpi_win_create_dynamic : int
      NM : info, comm, win_p
     SHM : info, comm, win_p
  mpi_rget : int
      NM*: origin_addr-2, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, addr, winattr, req_p
     SHM*: origin_addr-2, origin_count, origin_datatype, target_rank, target_disp, target_count, target_datatype, win, winattr, req_p
  mpi_win_sync : int
      NM*: win
  mpi_win_flush_all : int
      NM*: win
  mpi_get_accumulate : int
      NM*: origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, target_rank, target_disp, target_count, target_datatype, op, win, addr, winattr
     SHM*: origin_addr, origin_count, origin_datatype, result_addr, result_count, result_datatype, target_rank, target_disp, target_count, target_datatype, op, win, winattr
  mpi_win_lock_all : int
      NM*: assert, win
  rank_is_local : int
      NM*: target, comm
  mpi_barrier : int
      NM*: comm, errflag
     SHM*: comm, errflag
  mpi_bcast : int
      NM*: buffer, count, datatype, root, comm, errflag
     SHM*: buffer, count, datatype, root, comm, errflag
  mpi_allreduce : int
      NM*: sendbuf, recvbuf, count, datatype, op, comm, errflag
     SHM*: sendbuf, recvbuf, count, datatype, op, comm, errflag
  mpi_allgather : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, errflag
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, errflag
  mpi_allgatherv : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, errflag
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, errflag
  mpi_scatter : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm, errflag
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm, errflag
  mpi_scatterv : int
      NM*: sendbuf, sendcounts, displs, sendtype, recvbuf, recvcount, recvtype, root, comm_ptr, errflag
     SHM*: sendbuf, sendcounts, displs, sendtype, recvbuf, recvcount, recvtype, root, comm_ptr, errflag
  mpi_gather : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm, errflag
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm, errflag
  mpi_gatherv : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, root, comm, errflag
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, root, comm, errflag
  mpi_alltoall : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, errflag
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, errflag
  mpi_alltoallv : int
      NM*: sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm, errflag
     SHM*: sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm, errflag
  mpi_alltoallw : int
      NM*: sendbuf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes, comm, errflag
     SHM*: sendbuf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes, comm, errflag
  mpi_reduce : int
      NM*: sendbuf, recvbuf, count, datatype, op, root, comm_ptr, errflag
     SHM*: sendbuf, recvbuf, count, datatype, op, root, comm_ptr, errflag
  mpi_reduce_scatter : int
      NM*: sendbuf, recvbuf, recvcounts, datatype, op, comm_ptr, errflag
     SHM*: sendbuf, recvbuf, recvcounts, datatype, op, comm_ptr, errflag
  mpi_reduce_scatter_block : int
      NM*: sendbuf, recvbuf, recvcount, datatype, op, comm_ptr, errflag
     SHM*: sendbuf, recvbuf, recvcount, datatype, op, comm_ptr, errflag
  mpi_scan : int
      NM*: sendbuf, recvbuf, count, datatype, op, comm, errflag
     SHM*: sendbuf, recvbuf, count, datatype, op, comm, errflag
  mpi_exscan : int
      NM*: sendbuf, recvbuf, count, datatype, op, comm, errflag
     SHM*: sendbuf, recvbuf, count, datatype, op, comm, errflag
  mpi_neighbor_allgather : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm
  mpi_neighbor_allgatherv : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm
  mpi_neighbor_alltoallv : int
      NM*: sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm
     SHM*: sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm
  mpi_neighbor_alltoallw : int
      NM*: sendbuf, sendcounts, sdispls-2, sendtypes, recvbuf, recvcounts, rdispls-2, recvtypes, comm
     SHM*: sendbuf, sendcounts, sdispls-2, sendtypes, recvbuf, recvcounts, rdispls-2, recvtypes, comm
  mpi_neighbor_alltoall : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm
  mpi_ineighbor_allgather : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, req_p
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, req_p
  mpi_ineighbor_allgatherv : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, req_p
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, req_p
  mpi_ineighbor_alltoall : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, req_p
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, req_p
  mpi_ineighbor_alltoallv : int
      NM*: sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm, req_p
     SHM*: sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm, req_p
  mpi_ineighbor_alltoallw : int
      NM*: sendbuf, sendcounts, sdispls-2, sendtypes, recvbuf, recvcounts, rdispls-2, recvtypes, comm, req_p
     SHM*: sendbuf, sendcounts, sdispls-2, sendtypes, recvbuf, recvcounts, rdispls-2, recvtypes, comm, req_p
  mpi_ibarrier : int
      NM*: comm, req_p
     SHM*: comm, req_p
  mpi_ibcast : int
      NM*: buffer, count, datatype, root, comm, req_p
     SHM*: buffer, count, datatype, root, comm, req_p
  mpi_iallgather : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, req_p
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, req_p
  mpi_iallgatherv : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, req_p
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, req_p
  mpi_iallreduce : int
      NM*: sendbuf, recvbuf, count, datatype, op, comm, req_p
     SHM*: sendbuf, recvbuf, count, datatype, op, comm, req_p
  mpi_ialltoall : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, req_p
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm, req_p
  mpi_ialltoallv : int
      NM*: sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm, req_p
     SHM*: sendbuf, sendcounts, sdispls, sendtype, recvbuf, recvcounts, rdispls, recvtype, comm, req_p
  mpi_ialltoallw : int
      NM*: sendbuf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes, comm, req_p
     SHM*: sendbuf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes, comm, req_p
  mpi_iexscan : int
      NM*: sendbuf, recvbuf, count, datatype, op, comm, req_p
     SHM*: sendbuf, recvbuf, count, datatype, op, comm, req_p
  mpi_igather : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm, req_p
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm, req_p
  mpi_igatherv : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, root, comm, req_p
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, root, comm, req_p
  mpi_ireduce_scatter_block : int
      NM*: sendbuf, recvbuf, recvcount, datatype, op, comm, req_p
     SHM*: sendbuf, recvbuf, recvcount, datatype, op, comm, req_p
  mpi_ireduce_scatter : int
      NM*: sendbuf, recvbuf, recvcounts, datatype, op, comm, req_p
     SHM*: sendbuf, recvbuf, recvcounts, datatype, op, comm, req_p
  mpi_ireduce : int
      NM*: sendbuf, recvbuf, count, datatype, op, root, comm_ptr, req_p
     SHM*: sendbuf, recvbuf, count, datatype, op, root, comm_ptr, req_p
  mpi_iscan : int
      NM*: sendbuf, recvbuf, count, datatype, op, comm, req_p
     SHM*: sendbuf, recvbuf, count, datatype, op, comm, req_p
  mpi_iscatter : int
      NM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm, req_p
     SHM*: sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm, req_p
  mpi_iscatterv : int
      NM*: sendbuf, sendcounts, displs, sendtype, recvbuf, recvcount, recvtype, root, comm_ptr, req_p
     SHM*: sendbuf, sendcounts, displs, sendtype, recvbuf, recvcount, recvtype, root, comm_ptr, req_p
  mpi_type_commit_hook : int
      NM : datatype_p
     SHM : type
  mpi_type_free_hook : int
      NM : datatype_p
     SHM : type
  mpi_op_commit_hook : int
      NM : op_p
     SHM : op_p
  mpi_op_free_hook : int
      NM : op_p
     SHM : op_p
  rma_op_cs_enter_hook : int
     SHM*: win
  rma_op_cs_exit_hook : int
     SHM*: win

PARAM:
    addr: MPIDI_av_entry_t *
    am_hdr: const void *
    am_hdr_sz: MPI_Aint
    am_hdrs: struct iovec *
    appnum: int
    assert: int
    attr: uint32_t
    attr-2: int
    av: MPIDI_av_entry_t *
    base: void *
    base-2: const void *
    baseptr: void *
    baseptr_p: void **
    buf: const void *
    buf-2: void *
    buffer: void *
    comm: MPIR_Comm *
    comm_ptr: MPIR_Comm *
    compare_addr: const void *
    context_id: MPIR_Context_id_t
    count: MPI_Aint
    data: const void *
    data_sz: MPI_Aint
    datatype: MPI_Datatype
    datatype_p: MPIR_Datatype *
    disp_unit: int
    disp_unit_p: int *
    displs: const MPI_Aint *
    dst_vci: int
    errflag: MPIR_Errflag_t
    flag: int *
    group: MPIR_Group *
    handler_id: int
    idx: int
    info: MPIR_Info *
    info_p: MPIR_Info **
    iov_len: size_t
    is_blocking: bool
    is_remote: bool
    length: MPI_Aint
    length-2: int
    local_upid_size: int **
    local_upids: char **
    lock_type: int
    gpid_ptr: uint64_t *
    lpids: const int[]
    made_progress: int *
    message: MPIR_Request *
    message_p: MPIR_Request **
    newcomm_ptr: MPIR_Comm **
    num_vcis: int
    num_vcis_actual: int *
    op: MPI_Op
    op_p: MPIR_Op *
    origin_addr: const void *
    origin_addr-2: void *
    origin_count: MPI_Aint
    origin_datatype: MPI_Datatype
    partner: MPIR_Request *
    port_name: const char *
    port_name-2: char *
    ptr: void *
    rank: int
    rdispls: const MPI_Aint *
    rdispls-2: const MPI_Aint *
    recvbuf: void *
    recvcount: MPI_Aint
    recvcounts: const MPI_Aint *
    recvtype: MPI_Datatype
    recvtypes: const MPI_Datatype[]
    remote_gpid: uint64_t
    remote_gpids: uint64_t *
    remote_upid_size: int *
    remote_upids: char *
    req: MPIR_Request *
    req_p: MPIR_Request **
    result_addr: void *
    result_count: MPI_Aint
    result_datatype: MPI_Datatype
    root: int
    rreq: MPIR_Request *
    sdispls: const MPI_Aint *
    sdispls-2: const MPI_Aint *
    sendbuf: const void *
    sendcount: MPI_Aint
    sendcounts: const MPI_Aint *
    sendtype: MPI_Datatype
    sendtypes: const MPI_Datatype[]
    size: int
    size_p: MPI_Aint *
    size-2: MPI_Aint
    source: int
    src_rank: int
    src_vci: int
    sreq: MPIR_Request *
    status: MPI_Status *
    tag: int
    tag_bits: int *
    target: int
    target_count: MPI_Aint
    target_datatype: MPI_Datatype
    target_disp: MPI_Aint
    target_rank: int
    timeout: int
    type: MPIR_Datatype *
    vci: int
    void: 
    win: MPIR_Win *
    win_p: MPIR_Win **
    winattr: MPIDI_winattr_t
    partitions: int
    partition: int
    partition_low: int
    partition_high: int
    array_of_partitions: const int[]
