source: CIVL/src/include/civl/omp.cvl@ 3af26ac

1.23 2.0 acw/focus-triggers main test-branch
Last change on this file since 3af26ac was 3af26ac, checked in by Manchun Zheng <zmanchun@…>, 11 years ago

make library names consistent; clean up stdlib library; fixed examples accordingly.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@1863 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 1.8 KB
Line 
1
2#include <omp.h>
3#include <civl-omp.cvh>
4#include <stdbool.h>
5
6// implementations of functions in omp.h go here...
7
8struct omp_lock_t{
9 $proc owner;
10 _Bool lock;
11};
12
13/********************************** State *****************************************/
14/* The number of times the omp_get_wtime function has been called */
15int OMP_time_count = 0;
16
17/************************** OMP LIB Implementations *******************************/
18
19void omp_init_lock(omp_lock_t *slock){
20 slock->owner = $proc_null;
21 slock->lock = true;
22}
23
24void omp_destroy_lock(omp_lock_t *slock){
25 omp_lock_t blank;
26 *slock = blank;
27}
28
29void omp_set_lock(omp_lock_t *slock){
30 $atomic{
31 $when(!slock->lock && slock->owner == $proc_null){
32 slock->lock = true;
33 slock->owner == $self;
34 }
35 }
36}
37
38void omp_unset_lock(omp_lock_t *slock){
39 $atomic{
40 slock->owner = $proc_null;
41 slock->lock = false;
42 }
43}
44
45$abstract double OMP_time(int i);
46
47double omp_get_wtime() {
48 double result;
49
50 result = OMP_time(OMP_time_count);
51 OMP_time_count++;
52 return result;
53}
54
55
56/*
57void omp_set_num_threads (int);
58int omp_get_num_threads (void);
59int omp_get_max_threads (void);
60int omp_get_thread_num (void);
61int omp_get_num_procs (void);
62int omp_in_parallel (void);
63void omp_set_dynamic (int);
64int omp_get_dynamic (void);
65void omp_set_nested (int);
66int omp_get_nested (void);
67void omp_init_lock (omp_lock_t *);
68void omp_destroy_lock (omp_lock_t *);
69void omp_set_lock (omp_lock_t *);
70void omp_unset_lock (omp_lock_t *);
71int omp_test_lock (omp_lock_t *);
72void omp_init_nest_lock (omp_nest_lock_t *);
73void omp_destroy_nest_lock (omp_nest_lock_t *);
74void omp_set_nest_lock (omp_nest_lock_t *);
75void omp_unset_nest_lock (omp_nest_lock_t *);
76int omp_test_nest_lock (omp_nest_lock_t *);
77double omp_get_wtime (void);
78double omp_get_wtick (void);
79*/
Note: See TracBrowser for help on using the repository browser.