# lists parameters that used in MPIX_ functions that are not part of MPI standard
# TODO: add Fortran type mappings

LIS_KIND_MAP:
    GPU_TYPE: integer
    GREQUEST_CLASS: None
    STREAM: handle
    IOVEC: None
    ASYNC_THING: None
    INTEGER: integer

SMALL_F90_KIND_MAP:
    GPU_TYPE: INTEGER
    GREQUEST_CLASS: INTEGER
    STREAM: INTEGER
    IOVEC: None
    ASYNC_THING: INTEGER(KIND=MPI_ADDRESS_KIND)

BIG_F90_KIND_MAP:
    GPU_TYPE: INTEGER
    GREQUEST_CLASS: INTEGER
    STREAM: INTEGER
    IOVEC: None
    ASYNC_THING: INTEGER(KIND=MPI_ADDRESS_KIND)

SMALL_F08_KIND_MAP:
    GPU_TYPE: INTEGER
    GREQUEST_CLASS: INTEGER
    STREAM: TYPE(MPIX_Stream)
    IOVEC: None
    ASYNC_THING: INTEGER(KIND=MPI_ADDRESS_KIND)

BIG_F08_KIND_MAP:
    GPU_TYPE: INTEGER
    GREQUEST_CLASS: INTEGER
    STREAM: TYPE(MPIX_Stream)
    IOVEC: None
    ASYNC_THING: INTEGER(KIND=MPI_ADDRESS_KIND)

SMALL_C_KIND_MAP:
    GPU_TYPE: int
    GREQUEST_CLASS: MPIX_Grequest_class
    STREAM: MPIX_Stream
    IOVEC: MPIX_Iov
    ASYNC_THING: MPIX_Async_thing
    INTEGER: int

BIG_C_KIND_MAP:
    GPU_TYPE: int
    GREQUEST_CLASS: MPIX_Grequest_class
    STREAM: MPIX_Stream
    IOVEC: MPIX_Iov
    ASYNC_THING: MPIX_Async_thing
    INTEGER: int
