Skip to content

Commit a52b079

Browse files
committed
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 e500ea2 commit a52b079

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
@@ -253,17 +253,17 @@ OSHMEM_DECLSPEC int pshmem_test_lock(long *lock);
253253
/*
254254
* P2P sync routines
255255
*/
256-
OSHMEM_DECLSPEC void pshmem_short_wait(short *addr, short value);
257-
OSHMEM_DECLSPEC void pshmem_int_wait(int *addr, int value);
258-
OSHMEM_DECLSPEC void pshmem_long_wait(long *addr, long value);
259-
OSHMEM_DECLSPEC void pshmem_longlong_wait(long long *addr, long long value);
260-
OSHMEM_DECLSPEC void pshmem_wait(long *addr, long value);
261-
262-
OSHMEM_DECLSPEC void pshmem_short_wait_until(short *addr, int cmp, short value);
263-
OSHMEM_DECLSPEC void pshmem_int_wait_until(int *addr, int cmp, int value);
264-
OSHMEM_DECLSPEC void pshmem_long_wait_until(long *addr, int cmp, long value);
265-
OSHMEM_DECLSPEC void pshmem_longlong_wait_until(long long *addr, int cmp, long long value);
266-
OSHMEM_DECLSPEC void pshmem_wait_until(long *addr, int cmp, long value);
256+
OSHMEM_DECLSPEC void pshmem_short_wait(volatile short *addr, short value);
257+
OSHMEM_DECLSPEC void pshmem_int_wait(volatile int *addr, int value);
258+
OSHMEM_DECLSPEC void pshmem_long_wait(volatile long *addr, long value);
259+
OSHMEM_DECLSPEC void pshmem_longlong_wait(volatile long long *addr, long long value);
260+
OSHMEM_DECLSPEC void pshmem_wait(volatile long *addr, long value);
261+
262+
OSHMEM_DECLSPEC void pshmem_short_wait_until(volatile short *addr, int cmp, short value);
263+
OSHMEM_DECLSPEC void pshmem_int_wait_until(volatile int *addr, int cmp, int value);
264+
OSHMEM_DECLSPEC void pshmem_long_wait_until(volatile long *addr, int cmp, long value);
265+
OSHMEM_DECLSPEC void pshmem_longlong_wait_until(volatile long long *addr, int cmp, long long value);
266+
OSHMEM_DECLSPEC void pshmem_wait_until(volatile long *addr, int cmp, long value);
267267

268268
/*
269269
* Barrier sync routines

oshmem/include/shmem.h.in

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -316,17 +316,17 @@ OSHMEM_DECLSPEC int shmem_test_lock(long *lock);
316316
/*
317317
* P2P sync routines
318318
*/
319-
OSHMEM_DECLSPEC void shmem_short_wait(short *addr, short value);
320-
OSHMEM_DECLSPEC void shmem_int_wait(int *addr, int value);
321-
OSHMEM_DECLSPEC void shmem_long_wait(long *addr, long value);
322-
OSHMEM_DECLSPEC void shmem_longlong_wait(long long *addr, long long value);
323-
OSHMEM_DECLSPEC void shmem_wait(long *addr, long value);
324-
325-
OSHMEM_DECLSPEC void shmem_short_wait_until(short *addr, int cmp, short value);
326-
OSHMEM_DECLSPEC void shmem_int_wait_until(int *addr, int cmp, int value);
327-
OSHMEM_DECLSPEC void shmem_long_wait_until(long *addr, int cmp, long value);
328-
OSHMEM_DECLSPEC void shmem_longlong_wait_until(long long *addr, int cmp, long long value);
329-
OSHMEM_DECLSPEC void shmem_wait_until(long *addr, int cmp, long value);
319+
OSHMEM_DECLSPEC void shmem_short_wait(volatile short *addr, short value);
320+
OSHMEM_DECLSPEC void shmem_int_wait(volatile int *addr, int value);
321+
OSHMEM_DECLSPEC void shmem_long_wait(volatile long *addr, long value);
322+
OSHMEM_DECLSPEC void shmem_longlong_wait(volatile long long *addr, long long value);
323+
OSHMEM_DECLSPEC void shmem_wait(volatile long *addr, long value);
324+
325+
OSHMEM_DECLSPEC void shmem_short_wait_until(volatile short *addr, int cmp, short value);
326+
OSHMEM_DECLSPEC void shmem_int_wait_until(volatile int *addr, int cmp, int value);
327+
OSHMEM_DECLSPEC void shmem_long_wait_until(volatile long *addr, int cmp, long value);
328+
OSHMEM_DECLSPEC void shmem_longlong_wait_until(volatile long long *addr, int cmp, long long value);
329+
OSHMEM_DECLSPEC void shmem_wait_until(volatile long *addr, int cmp, long value);
330330

331331
/*
332332
* 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)