47#ifndef XT_CONFIG_INTERNAL_H
48#define XT_CONFIG_INTERNAL_H
134#define XT_CONFIG_GET_FORCE_NOSORT(config) \
135 (((config)->flags & xt_force_nosort) != UINT32_C(0))
136#define XT_CONFIG_SET_FORCE_NOSORT(config) \
137 do { (config)->flags |= (uint32_t)xt_force_nosort; } while (0)
138#define XT_CONFIG_UNSET_FORCE_NOSORT(config) \
139 do { (config)->flags &= ~(uint32_t)xt_force_nosort; } while (0)
140#define XT_CONFIG_SET_FORCE_NOSORT_BIT(config, val) \
141 do { (config)->flags = ((config)->flags & \
142 ~(uint32_t)xt_force_nosort) \
143 | ((uint32_t)(val != 0) << xt_force_nosort_bit_ofs); } while (0)
145#define XT_CONFIG_GET_XMAP_STRIPING(config) \
146 (((config)->flags >> xt_force_xmap_striping_bit_ofs) & 3U)
147#define XT_CONFIG_SET_XMAP_STRIPING(config, v) \
148 do { (config)->flags \
149 = ((config)->flags & ~(uint32_t)xt_force_xmap_striping_mask) \
150 | (uint32_t)((v&3) << xt_force_xmap_striping_bit_ofs); } \
153#define XT_CONFIG_BUCKET_DESTROY(config, bucket_gen_state) \
154 do { if ((config)->xmdd_bucket_gen->destroy) \
155 (config)->xmdd_bucket_gen->destroy((bucket_gen_state)); \
struct idxpos_struct idxpos_type
const struct Xt_sort_algo_funcptr * sort_funcs
Xt_exchanger_new exchanger_new
const struct Xt_xmdd_bucket_gen_ * xmdd_bucket_gen
void * exchanger_team_share
void(* sort_int)(int *a, size_t n)
void(* sort_xt_int_permutation)(Xt_int a[], size_t n, int permutation[])
void(* sort_idxpos)(idxpos_type *v, size_t n)
void(* sort_index)(Xt_int *restrict a, int n, int *restrict idx, int reset_index)
void(* sort_xt_int)(Xt_int *a, size_t n)
void(* sort_int_permutation)(int a[], size_t n, int permutation[])
struct Xt_config_ xt_default_config
opaque configuration object for settings where the default needs to be overridden
struct Xt_config_ * Xt_config
@ xt_force_xmap_striping_bit_ofs
@ xt_force_xmap_striping_num_bits
@ xt_mthread_mode_num_bits
@ xt_force_xmap_striping_mask
@ xt_mthread_mode_bit_ofs
@ xt_force_nosort_bit_ofs
int xt_sort_algo_id_by_name(const char *name)
PPM_DSO_INTERNAL void xt_config_defaults_init(void)
PPM_DSO_INTERNAL Xt_exchanger_new xt_config_get_exchange_new_by_comm(Xt_config config, MPI_Comm comm)
exchanging of data based on information provided by redist's
Xt_exchanger(* Xt_exchanger_new)(int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset, Xt_config config)