ARGOBOTS  dce6e727ffc4ca5b3ffc04cb9517c6689be51ec5
abti_stream.h
Go to the documentation of this file.
1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
2 /*
3  * See COPYRIGHT in top-level directory.
4  */
5 
6 #ifndef ABTI_XSTREAM_H_INCLUDED
7 #define ABTI_XSTREAM_H_INCLUDED
8 
9 /* Inlined functions for Execution Stream (ES) */
10 
11 static inline ABTI_xstream *ABTI_xstream_get_ptr(ABT_xstream xstream)
12 {
13 #ifndef ABT_CONFIG_DISABLE_ERROR_CHECK
14  ABTI_xstream *p_xstream;
15  if (xstream == ABT_XSTREAM_NULL) {
16  p_xstream = NULL;
17  } else {
18  p_xstream = (ABTI_xstream *)xstream;
19  }
20  return p_xstream;
21 #else
22  return (ABTI_xstream *)xstream;
23 #endif
24 }
25 
26 static inline ABT_xstream ABTI_xstream_get_handle(ABTI_xstream *p_xstream)
27 {
28 #ifndef ABT_CONFIG_DISABLE_ERROR_CHECK
29  ABT_xstream h_xstream;
30  if (p_xstream == NULL) {
31  h_xstream = ABT_XSTREAM_NULL;
32  } else {
33  h_xstream = (ABT_xstream)p_xstream;
34  }
35  return h_xstream;
36 #else
37  return (ABT_xstream)p_xstream;
38 #endif
39 }
40 
41 /* Get the first pool of the main scheduler. */
42 static inline ABTI_pool *ABTI_xstream_get_main_pool(ABTI_xstream *p_xstream)
43 {
44  ABT_pool pool = p_xstream->p_main_sched->pools[0];
45  return ABTI_pool_get_ptr(pool);
46 }
47 
48 static inline ABTI_local *ABTI_xstream_get_local(ABTI_xstream *p_xstream)
49 {
50  return (ABTI_local *)p_xstream;
51 }
52 
53 #endif /* ABTI_XSTREAM_H_INCLUDED */
ABT_pool
struct ABT_pool_opaque * ABT_pool
Pool handle type.
Definition: abt.h:878
ABT_xstream
struct ABT_xstream_opaque * ABT_xstream
Execution stream handle type.
Definition: abt.h:826
ABT_XSTREAM_NULL
#define ABT_XSTREAM_NULL
Definition: abt.h:1098