Skip to content
This repository was archived by the owner on Sep 30, 2022. It is now read-only.

Commit 89c1eae

Browse files
committed
v2.x: oshmem: Align OSHMEM API with spec v1.3 (shmem_wait change signature)
Annex G: Version 1.3 Added volatile to remotely accessible pointer argument in SHMEM_WAIT See Sections 8.7.1
1 parent ecfd296 commit 89c1eae

File tree

4 files changed

+42
-42
lines changed

4 files changed

+42
-42
lines changed

oshmem/include/pshmem.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -215,17 +215,17 @@ OSHMEM_DECLSPEC int pshmem_test_lock(long *lock);
215215
/*
216216
* P2P sync routines
217217
*/
218-
OSHMEM_DECLSPEC void pshmem_short_wait(short *addr, short value);
219-
OSHMEM_DECLSPEC void pshmem_int_wait(int *addr, int value);
220-
OSHMEM_DECLSPEC void pshmem_long_wait(long *addr, long value);
221-
OSHMEM_DECLSPEC void pshmem_longlong_wait(long long *addr, long long value);
222-
OSHMEM_DECLSPEC void pshmem_wait(long *addr, long value);
223-
224-
OSHMEM_DECLSPEC void pshmem_short_wait_until(short *addr, int cmp, short value);
225-
OSHMEM_DECLSPEC void pshmem_int_wait_until(int *addr, int cmp, int value);
226-
OSHMEM_DECLSPEC void pshmem_long_wait_until(long *addr, int cmp, long value);
227-
OSHMEM_DECLSPEC void pshmem_longlong_wait_until(long long *addr, int cmp, long long value);
228-
OSHMEM_DECLSPEC void pshmem_wait_until(long *addr, int cmp, long value);
218+
OSHMEM_DECLSPEC void pshmem_short_wait(volatile short *addr, short value);
219+
OSHMEM_DECLSPEC void pshmem_int_wait(volatile int *addr, int value);
220+
OSHMEM_DECLSPEC void pshmem_long_wait(volatile long *addr, long value);
221+
OSHMEM_DECLSPEC void pshmem_longlong_wait(volatile long long *addr, long long value);
222+
OSHMEM_DECLSPEC void pshmem_wait(volatile long *addr, long value);
223+
224+
OSHMEM_DECLSPEC void pshmem_short_wait_until(volatile short *addr, int cmp, short value);
225+
OSHMEM_DECLSPEC void pshmem_int_wait_until(volatile int *addr, int cmp, int value);
226+
OSHMEM_DECLSPEC void pshmem_long_wait_until(volatile long *addr, int cmp, long value);
227+
OSHMEM_DECLSPEC void pshmem_longlong_wait_until(volatile long long *addr, int cmp, long long value);
228+
OSHMEM_DECLSPEC void pshmem_wait_until(volatile long *addr, int cmp, long value);
229229

230230
/*
231231
* Barrier sync routines

oshmem/include/shmem.h.in

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -278,17 +278,17 @@ OSHMEM_DECLSPEC int shmem_test_lock(long *lock);
278278
/*
279279
* P2P sync routines
280280
*/
281-
OSHMEM_DECLSPEC void shmem_short_wait(short *addr, short value);
282-
OSHMEM_DECLSPEC void shmem_int_wait(int *addr, int value);
283-
OSHMEM_DECLSPEC void shmem_long_wait(long *addr, long value);
284-
OSHMEM_DECLSPEC void shmem_longlong_wait(long long *addr, long long value);
285-
OSHMEM_DECLSPEC void shmem_wait(long *addr, long value);
286-
287-
OSHMEM_DECLSPEC void shmem_short_wait_until(short *addr, int cmp, short value);
288-
OSHMEM_DECLSPEC void shmem_int_wait_until(int *addr, int cmp, int value);
289-
OSHMEM_DECLSPEC void shmem_long_wait_until(long *addr, int cmp, long value);
290-
OSHMEM_DECLSPEC void shmem_longlong_wait_until(long long *addr, int cmp, long long value);
291-
OSHMEM_DECLSPEC void shmem_wait_until(long *addr, int cmp, long value);
281+
OSHMEM_DECLSPEC void shmem_short_wait(volatile short *addr, short value);
282+
OSHMEM_DECLSPEC void shmem_int_wait(volatile int *addr, int value);
283+
OSHMEM_DECLSPEC void shmem_long_wait(volatile long *addr, long value);
284+
OSHMEM_DECLSPEC void shmem_longlong_wait(volatile long long *addr, long long value);
285+
OSHMEM_DECLSPEC void shmem_wait(volatile long *addr, long value);
286+
287+
OSHMEM_DECLSPEC void shmem_short_wait_until(volatile short *addr, int cmp, short value);
288+
OSHMEM_DECLSPEC void shmem_int_wait_until(volatile int *addr, int cmp, int value);
289+
OSHMEM_DECLSPEC void shmem_long_wait_until(volatile long *addr, int cmp, long value);
290+
OSHMEM_DECLSPEC void shmem_longlong_wait_until(volatile long long *addr, int cmp, long long value);
291+
OSHMEM_DECLSPEC void shmem_wait_until(volatile long *addr, int cmp, long value);
292292

293293
/*
294294
* Barrier sync routines

oshmem/shmem/c/shmem_wait.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@
5757
#include "oshmem/shmem/c/profile/defines.h"
5858
#endif
5959

60-
SHMEM_TYPE_WAIT(, long, SHMEM_LONG, shmem)
61-
SHMEM_TYPE_WAIT(_short, short, SHMEM_SHORT, shmem)
62-
SHMEM_TYPE_WAIT(_int, int, SHMEM_INT, shmem)
63-
SHMEM_TYPE_WAIT(_long, long, SHMEM_LONG, shmem)
64-
SHMEM_TYPE_WAIT(_longlong, long long, SHMEM_LLONG, shmem)
60+
SHMEM_TYPE_WAIT(, volatile long, SHMEM_LONG, shmem)
61+
SHMEM_TYPE_WAIT(_short, volatile short, SHMEM_SHORT, shmem)
62+
SHMEM_TYPE_WAIT(_int, volatile int, SHMEM_INT, shmem)
63+
SHMEM_TYPE_WAIT(_long, volatile long, SHMEM_LONG, shmem)
64+
SHMEM_TYPE_WAIT(_longlong, volatile long long, SHMEM_LLONG, shmem)
6565
SHMEM_TYPE_WAIT(_int32, int32_t, SHMEM_INT32_T, shmemx)
6666
SHMEM_TYPE_WAIT(_int64, int64_t, SHMEM_INT64_T, shmemx)
6767

@@ -82,10 +82,10 @@ SHMEM_TYPE_WAIT(_int64, int64_t, SHMEM_INT64_T, shmemx)
8282
return ; \
8383
}
8484

85-
SHMEM_TYPE_WAIT_UNTIL(, long, SHMEM_LONG, shmem)
86-
SHMEM_TYPE_WAIT_UNTIL(_short, short, SHMEM_SHORT, shmem)
87-
SHMEM_TYPE_WAIT_UNTIL(_int, int, SHMEM_INT, shmem)
88-
SHMEM_TYPE_WAIT_UNTIL(_long, long, SHMEM_LONG, shmem)
89-
SHMEM_TYPE_WAIT_UNTIL(_longlong, long long, SHMEM_LLONG, shmem)
85+
SHMEM_TYPE_WAIT_UNTIL(, volatile long, SHMEM_LONG, shmem)
86+
SHMEM_TYPE_WAIT_UNTIL(_short, volatile short, SHMEM_SHORT, shmem)
87+
SHMEM_TYPE_WAIT_UNTIL(_int, volatile int, SHMEM_INT, shmem)
88+
SHMEM_TYPE_WAIT_UNTIL(_long, volatile long, SHMEM_LONG, shmem)
89+
SHMEM_TYPE_WAIT_UNTIL(_longlong, volatile long long, SHMEM_LLONG, shmem)
9090
SHMEM_TYPE_WAIT_UNTIL(_int32, int32_t, SHMEM_INT32_T, shmemx)
9191
SHMEM_TYPE_WAIT_UNTIL(_int64, int64_t, SHMEM_INT64_T, shmemx)

oshmem/shmem/man/man3/shmem_wait.3in

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,27 +35,27 @@ C or C++:
3535
.Vb
3636
#include <mpp/shmem.h>
3737

38-
void shmem_int_wait(int *var, int value);
38+
void shmem_int_wait(volatile int *var, int value);
3939

40-
void shmem_int_wait_until(int *var, int cond, int value);
40+
void shmem_int_wait_until(volatile int *var, int cond, int value);
4141

42-
void shmem_long_wait(long *var, long value);
42+
void shmem_long_wait(volatile long *var, long value);
4343

44-
void shmem_long_wait_until(long *var, int cond, long value);
44+
void shmem_long_wait_until(volatile long *var, int cond, long value);
4545

46-
void shmem_longlong_wait(long long *var, long long value);
46+
void shmem_longlong_wait(volatile long long *var, long long value);
4747

48-
void shmem_longlong_wait_until(long long *var, int cond,
48+
void shmem_longlong_wait_until(volatile long long *var, int cond,
4949
long long value);
5050

51-
void shmem_short_wait(short *var, short value);
51+
void shmem_short_wait(volatile short *var, short value);
5252

53-
void shmem_short_wait_until(short *var, int cond,
53+
void shmem_short_wait_until(volatile short *var, int cond,
5454
short value);
5555

56-
void shmem_wait(long *ivar, long cmp_value);
56+
void shmem_wait(volatile long *ivar, long cmp_value);
5757

58-
void shmem_wait_until(long *ivar, int cmp, long value);
58+
void shmem_wait_until(volatile long *ivar, int cmp, long value);
5959
.Ve
6060
Fortran:
6161
.Vb

0 commit comments

Comments
 (0)