static int is_valid_base_atomic_op(enum fi_op op) { int ret; ret = fi_atomicvalid(ep, datatype, op, count); if (ret) { fprintf(stderr, "Provider doesn't support %s" " base atomic operation\n", get_fi_op_name(op)); return 0; } return 1; }
static inline int atomicvalid_DTxOP(int DT_MAX, int OPS_MAX, int DT[], int OPS[], atomic_support_lv atomic_sup) { int i, j, ret = 0; size_t atomic_size; for(i=0; i<DT_MAX; i++) { for(j=0; j<OPS_MAX; j++) { ret = fi_atomicvalid(shmem_transport_ofi_epfd, DT[i], OPS[j], &atomic_size); if(atomicvalid_rtncheck(ret, atomic_size, atomic_sup, SHMEM_OpName[OPS[j]], SHMEM_DtName[DT[i]])) return ret; } } return 0; }