Go to the documentation of this file.00001
00007 #ifndef OMP_H_
00008 #define OMP_H_
00009
00010 #ifdef __cplusplus
00011 extern "C"
00012 {
00013 #endif
00014
00015
00016 typedef struct _omp_lock
00017 {
00018 volatile int entered;
00019 void *owner_task;
00020 volatile int count;
00021 int hw_sem;
00022 } *omp_lock_t;
00023
00024 typedef struct _omp_lock *omp_nest_lock_t;
00025
00026
00027 typedef enum omp_sched_t
00028 {
00029 omp_sched_static = 1,
00030 omp_sched_dynamic = 2,
00031 omp_sched_guided = 3,
00032 omp_sched_auto = 4
00033 } omp_sched_t;
00034
00035
00036 void omp_set_num_threads (int nthreads);
00037 int omp_get_num_threads (void);
00038 int omp_get_max_threads (void);
00039 int omp_get_thread_num (void);
00040 int omp_get_num_procs(void);
00041 int omp_in_parallel(void);
00042 void omp_set_dynamic (int nthreads);
00043 int omp_get_dynamic (void);
00044 void omp_set_nested (int val);
00045 int omp_get_nested (void);
00046 void omp_set_schedule (omp_sched_t kind, int modifier);
00047 void omp_get_schedule (omp_sched_t *kind, int *modifier);
00048 int omp_get_thread_limit (void);
00049 void omp_set_max_active_levels(int val);
00050 int omp_get_max_active_levels(void);
00051 int omp_get_level (void);
00052 int omp_get_ancestor_thread_num (int level);
00053 int omp_get_team_size (int level);
00054 int omp_get_active_level (void);
00055 #if 0
00056 int omp_in_final (void);
00057 #endif
00058
00059
00060 void omp_init_lock (omp_lock_t* lock);
00061 void omp_destroy_lock (omp_lock_t *lock);
00062 void omp_set_lock (omp_lock_t* lock);
00063 int omp_test_lock (omp_lock_t* lock);
00064 void omp_unset_lock (omp_lock_t* lock);
00065
00066 void omp_init_nest_lock (omp_nest_lock_t* lock);
00067 void omp_destroy_nest_lock (omp_nest_lock_t *lock);
00068 void omp_set_nest_lock (omp_nest_lock_t* lock);
00069 int omp_test_nest_lock (omp_nest_lock_t* lock);
00070 void omp_unset_nest_lock (omp_nest_lock_t* lock);
00071
00072
00073 double omp_get_wtime (void);
00074 double omp_get_wtick (void);
00075
00076
00077 void __TI_omp_configure(void);
00078 void __TI_omp_config_thread_stack(char from_heap, unsigned int size);
00079
00080 void __TI_omp_reset(void);
00081
00082 void __TI_omp_configure_caches(void);
00083 void __TI_omp_enable_caching(unsigned int start, unsigned int length);
00084 void __TI_omp_disable_caching(unsigned int start, unsigned int length);
00085
00086 void __TI_setMPAX(unsigned int mpax_id, unsigned int base_addr,
00087 unsigned long long replacement_addr,
00088 unsigned int seg_size_encoding);
00089
00090 void __TI_omp_config_cores (unsigned char master_core_idx,
00091 unsigned char num_cores);
00092
00093 void __TI_omp_config_hw_queues (char init_qmss,
00094 int hw_queue_base_idx,
00095 int first_desc_idx_in_linking_ram,
00096 int first_memory_region_idx);
00097
00098 void __TI_omp_config_hw_semaphores(unsigned char hw_sem_base_idx);
00099
00100 void __TI_omp_config_clock_freq_in_mhz(unsigned int clock_freq);
00101
00102 void __TI_omp_wait_at_core_barrier(void);
00103
00104 #ifdef __cplusplus
00105 }
00106 #endif
00107
00108 #endif