diff --git a/oshmem/include/pshmem.h b/oshmem/include/pshmem.h index 8c510c8de4d..57bc797794c 100644 --- a/oshmem/include/pshmem.h +++ b/oshmem/include/pshmem.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Mellanox Technologies, Inc. + * Copyright (c) 2014-2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2014 Intel, Inc. All rights reserved * Copyright (c) 2016 Research Organization for Information Science @@ -74,7 +74,7 @@ OSHMEM_DECLSPEC int pshmem_my_pe(void); * Accessability routines */ OSHMEM_DECLSPEC int pshmem_pe_accessible(int pe); -OSHMEM_DECLSPEC int pshmem_addr_accessible(void *addr, int pe); +OSHMEM_DECLSPEC int pshmem_addr_accessible(const void *addr, int pe); /* * Symmetric heap routines @@ -87,7 +87,7 @@ OSHMEM_DECLSPEC void pshmem_free(void* ptr); /* * Remote pointer operations */ -OSHMEM_DECLSPEC void *pshmem_ptr(void *ptr, int pe); +OSHMEM_DECLSPEC void *pshmem_ptr(const void *ptr, int pe); /* * Elemental put routines @@ -151,14 +151,14 @@ OSHMEM_DECLSPEC void pshmem_put128_nbi(void *target, const void *source, size_t /* * Elemental get routines */ -OSHMEM_DECLSPEC char pshmem_char_g(char* addr, int pe); -OSHMEM_DECLSPEC short pshmem_short_g(short* addr, int pe); -OSHMEM_DECLSPEC int pshmem_int_g(int* addr, int pe); -OSHMEM_DECLSPEC long pshmem_long_g(long* addr, int pe); -OSHMEM_DECLSPEC float pshmem_float_g(float* addr, int pe); -OSHMEM_DECLSPEC double pshmem_double_g(double* addr, int pe); -OSHMEM_DECLSPEC long long pshmem_longlong_g(long long* addr, int pe); -OSHMEM_DECLSPEC long double pshmem_longdouble_g(long double* addr, int pe); +OSHMEM_DECLSPEC char pshmem_char_g(const char* addr, int pe); +OSHMEM_DECLSPEC short pshmem_short_g(const short* addr, int pe); +OSHMEM_DECLSPEC int pshmem_int_g(const int* addr, int pe); +OSHMEM_DECLSPEC long pshmem_long_g(const long* addr, int pe); +OSHMEM_DECLSPEC float pshmem_float_g(const float* addr, int pe); +OSHMEM_DECLSPEC double pshmem_double_g(const double* addr, int pe); +OSHMEM_DECLSPEC long long pshmem_longlong_g(const long long* addr, int pe); +OSHMEM_DECLSPEC long double pshmem_longdouble_g(const long double* addr, int pe); /* * Block data get routines @@ -246,24 +246,24 @@ OSHMEM_DECLSPEC void pshmem_longlong_inc(long long *target, int pe); /* * Lock functions */ -OSHMEM_DECLSPEC void pshmem_set_lock(long *lock); -OSHMEM_DECLSPEC void pshmem_clear_lock(long *lock); -OSHMEM_DECLSPEC int pshmem_test_lock(long *lock); +OSHMEM_DECLSPEC void pshmem_set_lock(volatile long *lock); +OSHMEM_DECLSPEC void pshmem_clear_lock(volatile long *lock); +OSHMEM_DECLSPEC int pshmem_test_lock(volatile long *lock); /* * P2P sync routines */ -OSHMEM_DECLSPEC void pshmem_short_wait(short *addr, short value); -OSHMEM_DECLSPEC void pshmem_int_wait(int *addr, int value); -OSHMEM_DECLSPEC void pshmem_long_wait(long *addr, long value); -OSHMEM_DECLSPEC void pshmem_longlong_wait(long long *addr, long long value); -OSHMEM_DECLSPEC void pshmem_wait(long *addr, long value); - -OSHMEM_DECLSPEC void pshmem_short_wait_until(short *addr, int cmp, short value); -OSHMEM_DECLSPEC void pshmem_int_wait_until(int *addr, int cmp, int value); -OSHMEM_DECLSPEC void pshmem_long_wait_until(long *addr, int cmp, long value); -OSHMEM_DECLSPEC void pshmem_longlong_wait_until(long long *addr, int cmp, long long value); -OSHMEM_DECLSPEC void pshmem_wait_until(long *addr, int cmp, long value); +OSHMEM_DECLSPEC void pshmem_short_wait(volatile short *addr, short value); +OSHMEM_DECLSPEC void pshmem_int_wait(volatile int *addr, int value); +OSHMEM_DECLSPEC void pshmem_long_wait(volatile long *addr, long value); +OSHMEM_DECLSPEC void pshmem_longlong_wait(volatile long long *addr, long long value); +OSHMEM_DECLSPEC void pshmem_wait(volatile long *addr, long value); + +OSHMEM_DECLSPEC void pshmem_short_wait_until(volatile short *addr, int cmp, short value); +OSHMEM_DECLSPEC void pshmem_int_wait_until(volatile int *addr, int cmp, int value); +OSHMEM_DECLSPEC void pshmem_long_wait_until(volatile long *addr, int cmp, long value); +OSHMEM_DECLSPEC void pshmem_longlong_wait_until(volatile long long *addr, int cmp, long long value); +OSHMEM_DECLSPEC void pshmem_wait_until(volatile long *addr, int cmp, long value); /* * Barrier sync routines @@ -291,56 +291,56 @@ OSHMEM_DECLSPEC void pshmem_alltoalls64(void *target, const void *source, ptrdif /* * Reduction routines */ -OSHMEM_DECLSPEC void pshmem_short_and_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_int_and_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_long_and_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longlong_and_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); - -OSHMEM_DECLSPEC void pshmem_short_or_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_int_or_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_long_or_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longlong_or_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); - -OSHMEM_DECLSPEC void pshmem_short_xor_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_int_xor_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_long_xor_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longlong_xor_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); - -OSHMEM_DECLSPEC void pshmem_short_max_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_int_max_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_long_max_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longlong_max_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_float_max_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_double_max_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longdouble_max_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); - -OSHMEM_DECLSPEC void pshmem_short_min_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_int_min_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_long_min_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longlong_min_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_float_min_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_double_min_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longdouble_min_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); - -OSHMEM_DECLSPEC void pshmem_short_sum_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_int_sum_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_long_sum_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longlong_sum_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_float_sum_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_double_sum_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longdouble_sum_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_complexf_sum_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_complexd_sum_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync); - -OSHMEM_DECLSPEC void pshmem_short_prod_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_int_prod_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_long_prod_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longlong_prod_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_float_prod_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_double_prod_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_longdouble_prod_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_complexf_prod_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmem_complexd_prod_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_short_and_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_int_and_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_long_and_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longlong_and_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); + +OSHMEM_DECLSPEC void pshmem_short_or_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_int_or_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_long_or_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longlong_or_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); + +OSHMEM_DECLSPEC void pshmem_short_xor_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_int_xor_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_long_xor_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longlong_xor_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); + +OSHMEM_DECLSPEC void pshmem_short_max_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_int_max_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_long_max_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longlong_max_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_float_max_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_double_max_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longdouble_max_to_all(long double *target, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); + +OSHMEM_DECLSPEC void pshmem_short_min_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_int_min_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_long_min_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longlong_min_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_float_min_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_double_min_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longdouble_min_to_all(long double *target, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); + +OSHMEM_DECLSPEC void pshmem_short_sum_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_int_sum_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_long_sum_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longlong_sum_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_float_sum_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_double_sum_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longdouble_sum_to_all(long double *target, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_complexf_sum_to_all(OSHMEM_COMPLEX_TYPE(float) *target, const OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_complexd_sum_to_all(OSHMEM_COMPLEX_TYPE(double) *target, const OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync); + +OSHMEM_DECLSPEC void pshmem_short_prod_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_int_prod_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_long_prod_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longlong_prod_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_float_prod_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_double_prod_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_longdouble_prod_to_all(long double *target, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_complexf_prod_to_all(OSHMEM_COMPLEX_TYPE(float) *target, const OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmem_complexd_prod_to_all(OSHMEM_COMPLEX_TYPE(double) *target, const OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync); /* * Platform specific cache management routines diff --git a/oshmem/include/pshmemx.h b/oshmem/include/pshmemx.h index dfc91537405..28644b58358 100644 --- a/oshmem/include/pshmemx.h +++ b/oshmem/include/pshmemx.h @@ -60,9 +60,9 @@ OSHMEM_DECLSPEC void pshmemx_iput16(void* target, const void* source, ptrdiff_t /* * Elemental get routines */ -OSHMEM_DECLSPEC int16_t pshmemx_int16_g(int16_t* addr, int pe); -OSHMEM_DECLSPEC int32_t pshmemx_int32_g(int32_t* addr, int pe); -OSHMEM_DECLSPEC int64_t pshmemx_int64_g(int64_t* addr, int pe); +OSHMEM_DECLSPEC int16_t pshmemx_int16_g(const int16_t* addr, int pe); +OSHMEM_DECLSPEC int32_t pshmemx_int32_g(const int32_t* addr, int pe); +OSHMEM_DECLSPEC int64_t pshmemx_int64_g(const int64_t* addr, int pe); /* * Block data get routines @@ -113,33 +113,33 @@ OSHMEM_DECLSPEC void pshmemx_int64_wait_until(int64_t *addr, int cmp, int64_t v /* * Reduction routines */ -OSHMEM_DECLSPEC void pshmemx_int16_and_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int32_and_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int64_and_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int16_and_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int32_and_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int64_and_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int16_or_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int32_or_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int64_or_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int16_or_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int32_or_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int64_or_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int16_xor_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int32_xor_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int64_xor_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int16_xor_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int32_xor_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int64_xor_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int16_max_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int32_max_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int64_max_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int16_max_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int32_max_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int64_max_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int16_min_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int32_min_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int64_min_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int16_min_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int32_min_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int64_min_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int16_sum_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int32_sum_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int64_sum_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int16_sum_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int32_sum_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int64_sum_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int16_prod_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int32_prod_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void pshmemx_int64_prod_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int16_prod_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int32_prod_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void pshmemx_int64_prod_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); /* * Backward compatibility section diff --git a/oshmem/include/shmem.h.in b/oshmem/include/shmem.h.in index 831bfdc33f0..a0e959e005e 100644 --- a/oshmem/include/shmem.h.in +++ b/oshmem/include/shmem.h.in @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2015 Mellanox Technologies, Inc. + * Copyright (c) 2014-2016 Mellanox Technologies, Inc. * All rights reserved. * Copyright (c) 2014 Intel, Inc. All rights reserved * $COPYRIGHT$ @@ -137,7 +137,7 @@ OSHMEM_DECLSPEC void shmem_info_get_name(char *name); * Accessability routines */ OSHMEM_DECLSPEC int shmem_pe_accessible(int pe); -OSHMEM_DECLSPEC int shmem_addr_accessible(void *addr, int pe); +OSHMEM_DECLSPEC int shmem_addr_accessible(const void *addr, int pe); /* * Symmetric heap routines @@ -150,7 +150,7 @@ OSHMEM_DECLSPEC void shmem_free(void* ptr); /* * Remote pointer operations */ -OSHMEM_DECLSPEC void *shmem_ptr(void *ptr, int pe); +OSHMEM_DECLSPEC void *shmem_ptr(const void *ptr, int pe); /* * Elemental put routines @@ -214,14 +214,14 @@ OSHMEM_DECLSPEC void shmem_put128_nbi(void *target, const void *source, size_t /* * Elemental get routines */ -OSHMEM_DECLSPEC char shmem_char_g(char* addr, int pe); -OSHMEM_DECLSPEC short shmem_short_g(short* addr, int pe); -OSHMEM_DECLSPEC int shmem_int_g(int* addr, int pe); -OSHMEM_DECLSPEC long shmem_long_g(long* addr, int pe); -OSHMEM_DECLSPEC float shmem_float_g(float* addr, int pe); -OSHMEM_DECLSPEC double shmem_double_g(double* addr, int pe); -OSHMEM_DECLSPEC long long shmem_longlong_g(long long* addr, int pe); -OSHMEM_DECLSPEC long double shmem_longdouble_g(long double* addr, int pe); +OSHMEM_DECLSPEC char shmem_char_g(const char* addr, int pe); +OSHMEM_DECLSPEC short shmem_short_g(const short* addr, int pe); +OSHMEM_DECLSPEC int shmem_int_g(const int* addr, int pe); +OSHMEM_DECLSPEC long shmem_long_g(const long* addr, int pe); +OSHMEM_DECLSPEC float shmem_float_g(const float* addr, int pe); +OSHMEM_DECLSPEC double shmem_double_g(const double* addr, int pe); +OSHMEM_DECLSPEC long long shmem_longlong_g(const long long* addr, int pe); +OSHMEM_DECLSPEC long double shmem_longdouble_g(const long double* addr, int pe); /* * Block data get routines @@ -309,24 +309,24 @@ OSHMEM_DECLSPEC void shmem_longlong_inc(long long *target, int pe); /* * Lock functions */ -OSHMEM_DECLSPEC void shmem_set_lock(long *lock); -OSHMEM_DECLSPEC void shmem_clear_lock(long *lock); -OSHMEM_DECLSPEC int shmem_test_lock(long *lock); +OSHMEM_DECLSPEC void shmem_set_lock(volatile long *lock); +OSHMEM_DECLSPEC void shmem_clear_lock(volatile long *lock); +OSHMEM_DECLSPEC int shmem_test_lock(volatile long *lock); /* * P2P sync routines */ -OSHMEM_DECLSPEC void shmem_short_wait(short *addr, short value); -OSHMEM_DECLSPEC void shmem_int_wait(int *addr, int value); -OSHMEM_DECLSPEC void shmem_long_wait(long *addr, long value); -OSHMEM_DECLSPEC void shmem_longlong_wait(long long *addr, long long value); -OSHMEM_DECLSPEC void shmem_wait(long *addr, long value); - -OSHMEM_DECLSPEC void shmem_short_wait_until(short *addr, int cmp, short value); -OSHMEM_DECLSPEC void shmem_int_wait_until(int *addr, int cmp, int value); -OSHMEM_DECLSPEC void shmem_long_wait_until(long *addr, int cmp, long value); -OSHMEM_DECLSPEC void shmem_longlong_wait_until(long long *addr, int cmp, long long value); -OSHMEM_DECLSPEC void shmem_wait_until(long *addr, int cmp, long value); +OSHMEM_DECLSPEC void shmem_short_wait(volatile short *addr, short value); +OSHMEM_DECLSPEC void shmem_int_wait(volatile int *addr, int value); +OSHMEM_DECLSPEC void shmem_long_wait(volatile long *addr, long value); +OSHMEM_DECLSPEC void shmem_longlong_wait(volatile long long *addr, long long value); +OSHMEM_DECLSPEC void shmem_wait(volatile long *addr, long value); + +OSHMEM_DECLSPEC void shmem_short_wait_until(volatile short *addr, int cmp, short value); +OSHMEM_DECLSPEC void shmem_int_wait_until(volatile int *addr, int cmp, int value); +OSHMEM_DECLSPEC void shmem_long_wait_until(volatile long *addr, int cmp, long value); +OSHMEM_DECLSPEC void shmem_longlong_wait_until(volatile long long *addr, int cmp, long long value); +OSHMEM_DECLSPEC void shmem_wait_until(volatile long *addr, int cmp, long value); /* * Barrier sync routines @@ -355,56 +355,56 @@ OSHMEM_DECLSPEC void shmem_alltoalls64(void *target, const void *source, ptrdiff /* * Reduction routines */ -OSHMEM_DECLSPEC void shmem_short_and_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_int_and_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_long_and_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longlong_and_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); - -OSHMEM_DECLSPEC void shmem_short_or_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_int_or_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_long_or_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longlong_or_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); - -OSHMEM_DECLSPEC void shmem_short_xor_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_int_xor_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_long_xor_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longlong_xor_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); - -OSHMEM_DECLSPEC void shmem_short_max_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_int_max_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_long_max_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longlong_max_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_float_max_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_double_max_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longdouble_max_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); - -OSHMEM_DECLSPEC void shmem_short_min_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_int_min_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_long_min_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longlong_min_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_float_min_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_double_min_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longdouble_min_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); - -OSHMEM_DECLSPEC void shmem_short_sum_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_int_sum_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_long_sum_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longlong_sum_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_float_sum_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_double_sum_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longdouble_sum_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_complexf_sum_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_complexd_sum_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync); - -OSHMEM_DECLSPEC void shmem_short_prod_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_int_prod_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_long_prod_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longlong_prod_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_float_prod_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_double_prod_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_longdouble_prod_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_complexf_prod_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmem_complexd_prod_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_short_and_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_int_and_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_long_and_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longlong_and_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); + +OSHMEM_DECLSPEC void shmem_short_or_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_int_or_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_long_or_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longlong_or_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); + +OSHMEM_DECLSPEC void shmem_short_xor_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_int_xor_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_long_xor_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longlong_xor_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); + +OSHMEM_DECLSPEC void shmem_short_max_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_int_max_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_long_max_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longlong_max_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_float_max_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_double_max_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longdouble_max_to_all(long double *target, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); + +OSHMEM_DECLSPEC void shmem_short_min_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_int_min_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_long_min_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longlong_min_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_float_min_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_double_min_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longdouble_min_to_all(long double *target, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); + +OSHMEM_DECLSPEC void shmem_short_sum_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_int_sum_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_long_sum_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longlong_sum_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_float_sum_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_double_sum_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longdouble_sum_to_all(long double *target, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_complexf_sum_to_all(OSHMEM_COMPLEX_TYPE(float) *target, const OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_complexd_sum_to_all(OSHMEM_COMPLEX_TYPE(double) *target, const OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync); + +OSHMEM_DECLSPEC void shmem_short_prod_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_int_prod_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_long_prod_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longlong_prod_to_all(long long *target, const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_float_prod_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_double_prod_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_longdouble_prod_to_all(long double *target, const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_complexf_prod_to_all(OSHMEM_COMPLEX_TYPE(float) *target, const OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmem_complexd_prod_to_all(OSHMEM_COMPLEX_TYPE(double) *target, const OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync); /* * Platform specific cache management routines diff --git a/oshmem/include/shmemx.h b/oshmem/include/shmemx.h index c9539f5e472..7f4352db7a3 100644 --- a/oshmem/include/shmemx.h +++ b/oshmem/include/shmemx.h @@ -45,9 +45,9 @@ OSHMEM_DECLSPEC void shmemx_iput16(void* target, const void* source, ptrdiff_t t /* * Elemental get routines */ -OSHMEM_DECLSPEC int16_t shmemx_int16_g(int16_t* addr, int pe); -OSHMEM_DECLSPEC int32_t shmemx_int32_g(int32_t* addr, int pe); -OSHMEM_DECLSPEC int64_t shmemx_int64_g(int64_t* addr, int pe); +OSHMEM_DECLSPEC int16_t shmemx_int16_g(const int16_t* addr, int pe); +OSHMEM_DECLSPEC int32_t shmemx_int32_g(const int32_t* addr, int pe); +OSHMEM_DECLSPEC int64_t shmemx_int64_g(const int64_t* addr, int pe); /* * Block data get routines @@ -98,33 +98,33 @@ OSHMEM_DECLSPEC void shmemx_int64_wait_until(int64_t *addr, int cmp, int64_t va /* * Reduction routines */ -OSHMEM_DECLSPEC void shmemx_int16_and_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int32_and_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int64_and_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int16_and_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int32_and_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int64_and_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int16_or_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int32_or_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int64_or_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int16_or_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int32_or_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int64_or_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int16_xor_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int32_xor_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int64_xor_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int16_xor_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int32_xor_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int64_xor_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int16_max_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int32_max_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int64_max_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int16_max_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int32_max_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int64_max_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int16_min_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int32_min_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int64_min_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int16_min_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int32_min_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int64_min_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int16_sum_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int32_sum_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int64_sum_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int16_sum_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int32_sum_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int64_sum_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int16_prod_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int32_prod_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); -OSHMEM_DECLSPEC void shmemx_int64_prod_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int16_prod_to_all(int16_t *target, const int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int32_prod_to_all(int32_t *target, const int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync); +OSHMEM_DECLSPEC void shmemx_int64_prod_to_all(int64_t *target, const int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync); /* * Backward compatibility section diff --git a/oshmem/shmem/c/shmem_addr_accessible.c b/oshmem/shmem/c/shmem_addr_accessible.c index 8fc8ff60767..7d1a2486f86 100644 --- a/oshmem/shmem/c/shmem_addr_accessible.c +++ b/oshmem/shmem/c/shmem_addr_accessible.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Mellanox Technologies, Inc. + * Copyright (c) 2013-2016 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ * @@ -22,14 +22,14 @@ #include "oshmem/shmem/c/profile/defines.h" #endif -int shmem_addr_accessible(void *addr, int pe) +int shmem_addr_accessible(const void *addr, int pe) { void* rva; sshmem_mkey_t *mkey; RUNTIME_CHECK_INIT(); - mkey = mca_memheap_base_get_cached_mkey(pe, addr, oshmem_get_transport_id(pe), &rva); + mkey = mca_memheap_base_get_cached_mkey(pe, (void *)addr, oshmem_get_transport_id(pe), &rva); return mkey ? 1 : 0; } diff --git a/oshmem/shmem/c/shmem_clear_lock.c b/oshmem/shmem/c/shmem_clear_lock.c index e3e31e4c41a..328b4c7a610 100644 --- a/oshmem/shmem/c/shmem_clear_lock.c +++ b/oshmem/shmem/c/shmem_clear_lock.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Mellanox Technologies, Inc. + * Copyright (c) 2013-2016 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ * @@ -25,7 +25,7 @@ #include "oshmem/shmem/c/profile/defines.h" #endif -void shmem_clear_lock(long *lock) +void shmem_clear_lock(volatile long *lock) { - _shmem_clear_lock(lock, sizeof(long)); + _shmem_clear_lock((void *)lock, sizeof(long)); } diff --git a/oshmem/shmem/c/shmem_g.c b/oshmem/shmem/c/shmem_g.c index bbe5d3be469..6427a479cd1 100644 --- a/oshmem/shmem/c/shmem_g.c +++ b/oshmem/shmem/c/shmem_g.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Mellanox Technologies, Inc. + * Copyright (c) 2013-2016 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ * @@ -22,7 +22,7 @@ * Retrieves the value at the symmetric address addr of the remote PE pe. */ #define SHMEM_TYPE_G(type_name, type, prefix) \ - type prefix##type_name##_g(type *addr, int pe) \ + type prefix##type_name##_g(const type *addr, int pe) \ { \ int rc = OSHMEM_SUCCESS; \ size_t size = 0; \ diff --git a/oshmem/shmem/c/shmem_ptr.c b/oshmem/shmem/c/shmem_ptr.c index 19ac26317c4..12413b29b9f 100644 --- a/oshmem/shmem/c/shmem_ptr.c +++ b/oshmem/shmem/c/shmem_ptr.c @@ -26,7 +26,7 @@ #include "oshmem/shmem/c/profile/defines.h" #endif -void *shmem_ptr(void *ptr, int pe) +void *shmem_ptr(const void *ptr, int pe) { SHMEM_API_VERBOSE(10, "*************** WARNING!!! NOT SUPPORTED FUNCTION **********************\n" diff --git a/oshmem/shmem/c/shmem_reduce.c b/oshmem/shmem/c/shmem_reduce.c index 6781fc580d1..72c8ea9abb9 100644 --- a/oshmem/shmem/c/shmem_reduce.c +++ b/oshmem/shmem/c/shmem_reduce.c @@ -34,7 +34,7 @@ static bool __group_cache_enabled = true; */ #define SHMEM_TYPE_REDUCE_OP(name, type_name, type, prefix) \ void prefix##type_name##_##name##_to_all( type *target, \ - type *source, \ + const type *source, \ int nreduce, \ int PE_start, \ int logPE_stride, \ diff --git a/oshmem/shmem/c/shmem_set_lock.c b/oshmem/shmem/c/shmem_set_lock.c index 9cb7e555816..3d259a92ee6 100644 --- a/oshmem/shmem/c/shmem_set_lock.c +++ b/oshmem/shmem/c/shmem_set_lock.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Mellanox Technologies, Inc. + * Copyright (c) 2013-2016 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ * @@ -25,7 +25,7 @@ #include "oshmem/shmem/c/profile/defines.h" #endif -void shmem_set_lock(long *lock) +void shmem_set_lock(volatile long *lock) { - _shmem_set_lock(lock, sizeof(long)); + _shmem_set_lock((void *)lock, sizeof(long)); } diff --git a/oshmem/shmem/c/shmem_test_lock.c b/oshmem/shmem/c/shmem_test_lock.c index ab031c4ad2c..6c48dd0ab20 100644 --- a/oshmem/shmem/c/shmem_test_lock.c +++ b/oshmem/shmem/c/shmem_test_lock.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Mellanox Technologies, Inc. + * Copyright (c) 2013-2016 Mellanox Technologies, Inc. * All rights reserved. * $COPYRIGHT$ * @@ -26,7 +26,7 @@ #include "oshmem/shmem/c/profile/defines.h" #endif -int shmem_test_lock(long *lock) +int shmem_test_lock(volatile long *lock) { - return _shmem_test_lock(lock, sizeof(long)); + return _shmem_test_lock((void *)lock, sizeof(long)); } diff --git a/oshmem/shmem/c/shmem_wait.c b/oshmem/shmem/c/shmem_wait.c index 7d1b64f1710..8af76e24383 100644 --- a/oshmem/shmem/c/shmem_wait.c +++ b/oshmem/shmem/c/shmem_wait.c @@ -57,11 +57,11 @@ #include "oshmem/shmem/c/profile/defines.h" #endif -SHMEM_TYPE_WAIT(, long, SHMEM_LONG, shmem) -SHMEM_TYPE_WAIT(_short, short, SHMEM_SHORT, shmem) -SHMEM_TYPE_WAIT(_int, int, SHMEM_INT, shmem) -SHMEM_TYPE_WAIT(_long, long, SHMEM_LONG, shmem) -SHMEM_TYPE_WAIT(_longlong, long long, SHMEM_LLONG, shmem) +SHMEM_TYPE_WAIT(, volatile long, SHMEM_LONG, shmem) +SHMEM_TYPE_WAIT(_short, volatile short, SHMEM_SHORT, shmem) +SHMEM_TYPE_WAIT(_int, volatile int, SHMEM_INT, shmem) +SHMEM_TYPE_WAIT(_long, volatile long, SHMEM_LONG, shmem) +SHMEM_TYPE_WAIT(_longlong, volatile long long, SHMEM_LLONG, shmem) SHMEM_TYPE_WAIT(_int32, int32_t, SHMEM_INT32_T, shmemx) SHMEM_TYPE_WAIT(_int64, int64_t, SHMEM_INT64_T, shmemx) @@ -82,10 +82,10 @@ SHMEM_TYPE_WAIT(_int64, int64_t, SHMEM_INT64_T, shmemx) return ; \ } -SHMEM_TYPE_WAIT_UNTIL(, long, SHMEM_LONG, shmem) -SHMEM_TYPE_WAIT_UNTIL(_short, short, SHMEM_SHORT, shmem) -SHMEM_TYPE_WAIT_UNTIL(_int, int, SHMEM_INT, shmem) -SHMEM_TYPE_WAIT_UNTIL(_long, long, SHMEM_LONG, shmem) -SHMEM_TYPE_WAIT_UNTIL(_longlong, long long, SHMEM_LLONG, shmem) +SHMEM_TYPE_WAIT_UNTIL(, volatile long, SHMEM_LONG, shmem) +SHMEM_TYPE_WAIT_UNTIL(_short, volatile short, SHMEM_SHORT, shmem) +SHMEM_TYPE_WAIT_UNTIL(_int, volatile int, SHMEM_INT, shmem) +SHMEM_TYPE_WAIT_UNTIL(_long, volatile long, SHMEM_LONG, shmem) +SHMEM_TYPE_WAIT_UNTIL(_longlong, volatile long long, SHMEM_LLONG, shmem) SHMEM_TYPE_WAIT_UNTIL(_int32, int32_t, SHMEM_INT32_T, shmemx) SHMEM_TYPE_WAIT_UNTIL(_int64, int64_t, SHMEM_INT64_T, shmemx) diff --git a/oshmem/shmem/man/man3/shmem_addr_accessible.3in b/oshmem/shmem/man/man3/shmem_addr_accessible.3in index bfc6e9d78ef..d04b6d5cea1 100644 --- a/oshmem/shmem/man/man3/shmem_addr_accessible.3in +++ b/oshmem/shmem/man/man3/shmem_addr_accessible.3in @@ -22,7 +22,7 @@ C or C++: .Vb #include -int shmem_addr_accessible(void *addr, int pe); +int shmem_addr_accessible(const void *addr, int pe); .Ve Fortran: .Vb diff --git a/oshmem/shmem/man/man3/shmem_char_g.3in b/oshmem/shmem/man/man3/shmem_char_g.3in index 722a79c6408..512444a1638 100644 --- a/oshmem/shmem/man/man3/shmem_char_g.3in +++ b/oshmem/shmem/man/man3/shmem_char_g.3in @@ -29,21 +29,21 @@ C or C++: #include -char shmem_char_g(char *addr, int pe); +char shmem_char_g(const char *addr, int pe); -short shmem_short_g(short *addr, int pe); +short shmem_short_g(const short *addr, int pe); -int shmem_int_g(int *addr, int pe); +int shmem_int_g(const int *addr, int pe); -long shmem_long_g(long *addr, int pe); +long shmem_long_g(const long *addr, int pe); -long shmem_longlong_g(long long *addr, int pe); +long shmem_longlong_g(const long long *addr, int pe); -float shmem_float_g(float *addr, int pe); +float shmem_float_g(const float *addr, int pe); -double shmem_double_g(double *addr, int pe); +double shmem_double_g(const double *addr, int pe); -long shmem_longdouble_g(long double *addr, int pe); +long shmem_longdouble_g(const long double *addr, int pe); .Ve .SH DESCRIPTION diff --git a/oshmem/shmem/man/man3/shmem_ptr.3in b/oshmem/shmem/man/man3/shmem_ptr.3in index 6663375a1f7..6c6240ef110 100644 --- a/oshmem/shmem/man/man3/shmem_ptr.3in +++ b/oshmem/shmem/man/man3/shmem_ptr.3in @@ -23,7 +23,7 @@ C or C++: .Vb #include -void *shmem_ptr(void *target, int pe); +void *shmem_ptr(const void *target, int pe); .Ve Fortran: .Vb diff --git a/oshmem/shmem/man/man3/shmem_set_lock.3in b/oshmem/shmem/man/man3/shmem_set_lock.3in index 750e83a21b6..d3b57361ea3 100644 --- a/oshmem/shmem/man/man3/shmem_set_lock.3in +++ b/oshmem/shmem/man/man3/shmem_set_lock.3in @@ -24,11 +24,11 @@ C or C++: .Vb #include -void shmem_clear_lock(long *lock); +void shmem_clear_lock(volatile long *lock); -void shmem_set_lock(long *lock); +void shmem_set_lock(volatile long *lock); -int shmem_test_lock(long *lock); +int shmem_test_lock(volatile long *lock); .Ve Fortran: .Vb diff --git a/oshmem/shmem/man/man3/shmem_short_and_to_all.3in b/oshmem/shmem/man/man3/shmem_short_and_to_all.3in index d9204fcfe28..065ee57fdc3 100644 --- a/oshmem/shmem/man/man3/shmem_short_and_to_all.3in +++ b/oshmem/shmem/man/man3/shmem_short_and_to_all.3in @@ -1,6 +1,6 @@ .\" -*- nroff -*- .\" Copyright (c) 2015 University of Houston. All rights reserved. -.\" Copyright (c) 2015 Mellanox Technologies, Inc. +.\" Copyright (c) 2014-2016 Mellanox Technologies, Inc. .\" $COPYRIGHT$ .de Vb .ft CW @@ -28,19 +28,19 @@ C or C++: .Vb #include -void shmem_int_and_to_all(int *target, int *source, +void shmem_int_and_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -void shmem_long_and_to_all(long *target, long *source, +void shmem_long_and_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); void shmem_longlong_and_to_all(long long *target, - long long *source, int nreduce, int PE_start, int logPE_stride, + const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -void shmem_short_and_to_all(short *target, short *source, +void shmem_short_and_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); diff --git a/oshmem/shmem/man/man3/shmem_short_max_to_all.3in b/oshmem/shmem/man/man3/shmem_short_max_to_all.3in index 760dd45eec0..a522c3e7c2e 100644 --- a/oshmem/shmem/man/man3/shmem_short_max_to_all.3in +++ b/oshmem/shmem/man/man3/shmem_short_max_to_all.3in @@ -1,6 +1,6 @@ .\" -*- nroff -*- .\" Copyright (c) 2015 University of Houston. All rights reserved. -.\" Copyright (c) 2015 Mellanox Technologies, Inc. +.\" Copyright (c) 2014-2016 Mellanox Technologies, Inc. .\" $COPYRIGHT$ .de Vb .ft CW @@ -33,31 +33,31 @@ C or C++: .Vb #include -void shmem_double_max_to_all(double *target, double *source, +void shmem_double_max_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -void shmem_float_max_to_all(float *target, float *source, +void shmem_float_max_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -void shmem_int_max_to_all(int *target, int *source, +void shmem_int_max_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -void shmem_long_max_to_all(long *target, long *source, +void shmem_long_max_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); void shmem_longdouble_max_to_all(long double *target, - long double *source, int nreduce, int PE_start, + const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); void shmem_longlong_max_to_all(long long *target, - long long *source, int nreduce, int PE_start, + const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); - void shmem_short_max_to_all(short *target, short *source, + void shmem_short_max_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); .Ve diff --git a/oshmem/shmem/man/man3/shmem_short_min_to_all.3in b/oshmem/shmem/man/man3/shmem_short_min_to_all.3in index 8bdaae4e9b2..6b0e3c4a0c5 100644 --- a/oshmem/shmem/man/man3/shmem_short_min_to_all.3in +++ b/oshmem/shmem/man/man3/shmem_short_min_to_all.3in @@ -1,6 +1,6 @@ .\" -*- nroff -*- .\" Copyright (c) 2015 University of Houston. All rights reserved. -.\" Copyright (c) 2015 Mellanox Technologies, Inc. +.\" Copyright (c) 2014-2016 Mellanox Technologies, Inc. .\" $COPYRIGHT$ .de Vb .ft CW @@ -33,32 +33,32 @@ C or C++: .Vb #include -void shmem_double_min_to_all(double *target, double *source, +void shmem_double_min_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -void shmem_float_min_to_all(float *target, float *source, +void shmem_float_min_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -void shmem_int_min_to_all(int *target, int *source, +void shmem_int_min_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -void shmem_long_min_to_all(long *target, long *source, +void shmem_long_min_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); void shmem_longdouble_min_to_all(long double *target, - long double *source, int nreduce, int PE_start, + const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); void shmem_longlong_min_to_all(long long *target, - long long *source, int nreduce, int PE_start, int logPE_stride, + const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -void shmem_short_min_to_all(short *target, short *source, +void shmem_short_min_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); .Ve diff --git a/oshmem/shmem/man/man3/shmem_short_or_to_all.3in b/oshmem/shmem/man/man3/shmem_short_or_to_all.3in index 77ebef68893..bcb5a2c0c53 100644 --- a/oshmem/shmem/man/man3/shmem_short_or_to_all.3in +++ b/oshmem/shmem/man/man3/shmem_short_or_to_all.3in @@ -1,6 +1,6 @@ .\" -*- nroff -*- .\" Copyright (c) 2015 University of Houston. All rights reserved. -.\" Copyright (c) 2015 Mellanox Technologies, Inc. +.\" Copyright (c) 2014-2016 Mellanox Technologies, Inc. .\" $COPYRIGHT$ .de Vb .ft CW @@ -27,19 +27,19 @@ C or C++: .Vb #include -void shmem_int_or_to_all(int *target, int *source, +void shmem_int_or_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -void shmem_long_or_to_all(long *target, long *source, +void shmem_long_or_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); void shmem_longlong_or_to_all(long long *target, - long long *source, int nreduce, int PE_start, int logPE_stride, + const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -void shmem_short_or_to_all(short *target, short *source, +void shmem_short_or_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); .Ve diff --git a/oshmem/shmem/man/man3/shmem_short_prod_to_all.3in b/oshmem/shmem/man/man3/shmem_short_prod_to_all.3in index b7544a9af84..b03b3dc18e1 100644 --- a/oshmem/shmem/man/man3/shmem_short_prod_to_all.3in +++ b/oshmem/shmem/man/man3/shmem_short_prod_to_all.3in @@ -1,6 +1,6 @@ .\" -*- nroff -*- .\" Copyright (c) 2015 University of Houston. All rights reserved. -.\" Copyright (c) 2015 Mellanox Technologies, Inc. +.\" Copyright (c) 2014-2016 Mellanox Technologies, Inc. .\" $COPYRIGHT$ .de Vb .ft CW @@ -39,42 +39,42 @@ C or C++: #include void shmem_complexd_prod_to_all(double complex *target, - double complex *source, int nreduce, int PE_start, + const double complex *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double complex *pWrk, long *pSync); void shmem_complexf_prod_to_all(float complex *target, - float complex *source, int nreduce, int PE_start, + const float complex *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float complex *pWrk, long *pSync); -void shmem_double_prod_to_all(double *target, double *source, +void shmem_double_prod_to_all(double *target, const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -void shmem_float_prod_to_all(float *target, float *source, +void shmem_float_prod_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -void shmem_int_prod_to_all(int *target, int *source, +void shmem_int_prod_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -void shmem_long_prod_to_all(long *target, long *source, +void shmem_long_prod_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); void shmem_longdouble_prod_to_all(long double *target, - long double *source, int nreduce, int PE_start, + const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); void shmem_longlong_prod_to_all(long long *target, - long long *source, int nreduce, int PE_start, + const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -void shmem_short_prod_to_all(short *target, short *source, +void shmem_short_prod_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); .Ve diff --git a/oshmem/shmem/man/man3/shmem_short_sum_to_all.3in b/oshmem/shmem/man/man3/shmem_short_sum_to_all.3in index 3467a882fea..d94c72c1c67 100644 --- a/oshmem/shmem/man/man3/shmem_short_sum_to_all.3in +++ b/oshmem/shmem/man/man3/shmem_short_sum_to_all.3in @@ -1,6 +1,6 @@ .\" -*- nroff -*- .\" Copyright (c) 2015 University of Houston. All rights reserved. -.\" Copyright (c) 2015 Mellanox Technologies, Inc. +.\" Copyright (c) 2014-2016 Mellanox Technologies, Inc. .\" $COPYRIGHT$ .de Vb .ft CW @@ -39,41 +39,41 @@ C or C++: #include void shmem_complexd_sum_to_all(double complex *target, - double complex *source, int nreduce, int PE_start, + const double complex *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double complex *pWrk, long *pSync); void shmem_complexf_sum_to_all(float complex *target, - float complex *source, int nreduce, int PE_start, + const float complex *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float complex *pWrk, long *pSync); void shmem_double_sum_to_all(double *target, - double *source, int nreduce, int PE_start, int logPE_stride, + const double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync); -void shmem_float_sum_to_all(float *target, float *source, +void shmem_float_sum_to_all(float *target, const float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync); -void shmem_int_sum_to_all(int *target, int *source, +void shmem_int_sum_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -void shmem_long_sum_to_all(long *target, long *source, +void shmem_long_sum_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); void shmem_longdouble_sum_to_all(long double *target, - long double *source, int nreduce, int PE_start, int + const long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync); void shmem_longlong_sum_to_all(long long *target, - long long *source, int nreduce, int PE_start, + const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -void shmem_short_sum_to_all(short *target, short *source, +void shmem_short_sum_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); .Ve diff --git a/oshmem/shmem/man/man3/shmem_short_xor_to_all.3in b/oshmem/shmem/man/man3/shmem_short_xor_to_all.3in index 7d02702a878..be88b2c4d2e 100644 --- a/oshmem/shmem/man/man3/shmem_short_xor_to_all.3in +++ b/oshmem/shmem/man/man3/shmem_short_xor_to_all.3in @@ -1,6 +1,6 @@ .\" -*- nroff -*- .\" Copyright (c) 2015 University of Houston. All rights reserved. -.\" Copyright (c) 2015 Mellanox Technologies, Inc. +.\" Copyright (c) 2014-2016 Mellanox Technologies, Inc. .\" $COPYRIGHT$ .de Vb .ft CW @@ -29,19 +29,19 @@ C or C++: .Vb #include -void shmem_int_xor_to_all(int *target, int *source, +void shmem_int_xor_to_all(int *target, const int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync); -void shmem_long_xor_to_all(long *target, long *source, +void shmem_long_xor_to_all(long *target, const long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync); void shmem_longlong_xor_to_all(long long *target, - long long *source, int nreduce, int PE_start, int logPE_stride, + const long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync); -void shmem_short_xor_to_all(short *target, short *source, +void shmem_short_xor_to_all(short *target, const short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync); .Ve diff --git a/oshmem/shmem/man/man3/shmem_wait.3in b/oshmem/shmem/man/man3/shmem_wait.3in index f1c6aa57691..c664ae4c1ac 100644 --- a/oshmem/shmem/man/man3/shmem_wait.3in +++ b/oshmem/shmem/man/man3/shmem_wait.3in @@ -35,27 +35,27 @@ C or C++: .Vb #include -void shmem_int_wait(int *var, int value); +void shmem_int_wait(volatile int *var, int value); -void shmem_int_wait_until(int *var, int cond, int value); +void shmem_int_wait_until(volatile int *var, int cond, int value); -void shmem_long_wait(long *var, long value); +void shmem_long_wait(volatile long *var, long value); -void shmem_long_wait_until(long *var, int cond, long value); +void shmem_long_wait_until(volatile long *var, int cond, long value); -void shmem_longlong_wait(long long *var, long long value); +void shmem_longlong_wait(volatile long long *var, long long value); -void shmem_longlong_wait_until(long long *var, int cond, +void shmem_longlong_wait_until(volatile long long *var, int cond, long long value); -void shmem_short_wait(short *var, short value); +void shmem_short_wait(volatile short *var, short value); -void shmem_short_wait_until(short *var, int cond, +void shmem_short_wait_until(volatile short *var, int cond, short value); -void shmem_wait(long *ivar, long cmp_value); +void shmem_wait(volatile long *ivar, long cmp_value); -void shmem_wait_until(long *ivar, int cmp, long value); +void shmem_wait_until(volatile long *ivar, int cmp, long value); .Ve Fortran: .Vb