|
35 | 35 | #define OPDI_ADJOINT_ACCESS_ATOMIC 1 |
36 | 36 | #define OPDI_ADJOINT_ACCESS_CLASSICAL 2 |
37 | 37 |
|
| 38 | +#define OPDI_SCOPE_ENDPOINT_BEGIN 1 |
| 39 | +#define OPDI_SCOPE_ENDPOINT_END 2 |
| 40 | +#define OPDI_SCOPE_ENDPOINT_BOTH 3 |
| 41 | + |
38 | 42 | /* ------------------ configuration ------------------ */ |
39 | 43 |
|
40 | 44 | /* logic options */ |
|
51 | 55 | #define OPDI_DEFAULT_ADJOINT_ACCESS_MODE OPDI_ADJOINT_ACCESS_ATOMIC |
52 | 56 | #endif |
53 | 57 |
|
| 58 | +static_assert(0 < OPDI_DEFAULT_ADJOINT_ACCESS_MODE); |
| 59 | +static_assert(OPDI_DEFAULT_ADJOINT_ACCESS_MODE <= 2); |
| 60 | + |
| 61 | +/* sync region behaviour */ |
| 62 | + |
| 63 | +#ifndef OPDI_SYNC_REGION_BARRIER_BEHAVIOUR |
| 64 | + #define OPDI_SYNC_REGION_BARRIER_BEHAVIOUR OPDI_SCOPE_ENDPOINT_BEGIN |
| 65 | +#endif |
| 66 | + |
| 67 | +static_assert(0 < OPDI_SYNC_REGION_BARRIER_BEHAVIOUR); |
| 68 | +static_assert(OPDI_SYNC_REGION_BARRIER_BEHAVIOUR <= 3); |
| 69 | + |
| 70 | +#ifndef OPDI_SYNC_REGION_BARRIER_IMPLICIT_BEHAVIOUR |
| 71 | + #define OPDI_SYNC_REGION_BARRIER_IMPLICIT_BEHAVIOUR OPDI_SCOPE_ENDPOINT_BEGIN |
| 72 | +#endif |
| 73 | + |
| 74 | +static_assert(0 < OPDI_SYNC_REGION_BARRIER_IMPLICIT_BEHAVIOUR); |
| 75 | +static_assert(OPDI_SYNC_REGION_BARRIER_IMPLICIT_BEHAVIOUR <= 3); |
| 76 | + |
| 77 | +#ifndef OPDI_SYNC_REGION_BARRIER_EXPLICIT_BEHAVIOUR |
| 78 | + #define OPDI_SYNC_REGION_BARRIER_EXPLICIT_BEHAVIOUR OPDI_SCOPE_ENDPOINT_BEGIN |
| 79 | +#endif |
| 80 | + |
| 81 | +static_assert(0 < OPDI_SYNC_REGION_BARRIER_EXPLICIT_BEHAVIOUR); |
| 82 | +static_assert(OPDI_SYNC_REGION_BARRIER_EXPLICIT_BEHAVIOUR <= 3); |
| 83 | + |
| 84 | +#ifndef OPDI_SYNC_REGION_BARRIER_IMPLEMENTATION_BEHAVIOUR |
| 85 | + #define OPDI_SYNC_REGION_BARRIER_IMPLEMENTATION_BEHAVIOUR OPDI_SCOPE_ENDPOINT_BOTH |
| 86 | +#endif |
| 87 | + |
| 88 | +static_assert(0 < OPDI_SYNC_REGION_BARRIER_IMPLEMENTATION_BEHAVIOUR); |
| 89 | +static_assert(OPDI_SYNC_REGION_BARRIER_IMPLEMENTATION_BEHAVIOUR <= 3); |
| 90 | + |
| 91 | +#ifndef OPDI_SYNC_REGION_BARRIER_REVERSE_BEHAVIOUR |
| 92 | + #define OPDI_SYNC_REGION_BARRIER_REVERSE_BEHAVIOUR OPDI_SCOPE_ENDPOINT_BEGIN |
| 93 | +#endif |
| 94 | + |
| 95 | +static_assert(0 < OPDI_SYNC_REGION_BARRIER_REVERSE_BEHAVIOUR); |
| 96 | +static_assert(OPDI_SYNC_REGION_BARRIER_REVERSE_BEHAVIOUR <= 3); |
| 97 | + |
54 | 98 | /* error handling options */ |
55 | 99 |
|
56 | 100 | #ifndef OPDI_ENABLE_WARNINGS |
|
0 commit comments