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 int omp_is_initial_device (void);
00056 #if 0
00057 int omp_in_final (void);
00058 #endif
00059
00060
00061 void omp_init_lock (omp_lock_t* lock);
00062 void omp_destroy_lock (omp_lock_t *lock);
00063 void omp_set_lock (omp_lock_t* lock);
00064 int omp_test_lock (omp_lock_t* lock);
00065 void omp_unset_lock (omp_lock_t* lock);
00066
00067 void omp_init_nest_lock (omp_nest_lock_t* lock);
00068 void omp_destroy_nest_lock (omp_nest_lock_t *lock);
00069 void omp_set_nest_lock (omp_nest_lock_t* lock);
00070 int omp_test_nest_lock (omp_nest_lock_t* lock);
00071 void omp_unset_nest_lock (omp_nest_lock_t* lock);
00072
00073
00074 double omp_get_wtime (void);
00075 double omp_get_wtick (void);
00076
00077
00078 void __TI_omp_configure(void);
00079 void __TI_omp_config_thread_stack(char from_heap, unsigned int size);
00080
00081 void __TI_omp_reset(void);
00082
00083 void __TI_omp_configure_caches(void);
00084 void __TI_omp_enable_caching(unsigned int start, unsigned int length);
00085 void __TI_omp_disable_caching(unsigned int start, unsigned int length);
00086
00087 void __TI_setMPAX(unsigned int mpax_id, unsigned int base_addr,
00088 unsigned long long replacement_addr,
00089 unsigned int seg_size_encoding);
00090
00091 void __TI_omp_config_cores (unsigned char master_core_idx,
00092 unsigned char num_cores);
00093
00094 void __TI_omp_config_hw_queues (char init_qmss,
00095 int hw_queue_base_idx,
00096 int first_desc_idx_in_linking_ram,
00097 int first_memory_region_idx);
00098
00099 void __TI_omp_config_hw_semaphores(unsigned char hw_sem_base_idx);
00100
00101 void __TI_omp_config_clock_freq_in_mhz(unsigned int clock_freq);
00102
00103 void __TI_omp_wait_at_core_barrier(void);
00104
00105
00106 #include <stdlib.h>
00107
00108 void __heap_init_ddr (void *ptr, size_t size);
00109 void *__malloc_ddr (size_t size);
00110 void *__calloc_ddr (size_t num, size_t size);
00111 void *__realloc_ddr (void *ptr, size_t size);
00112 void __free_ddr (void *ptr);
00113 void *__memalign_ddr (size_t alignment, size_t size);
00114
00115 void __heap_init_msmc (void *ptr, size_t size);
00116 void *__malloc_msmc (size_t size);
00117 void *__calloc_msmc (size_t num, size_t size);
00118 void *__realloc_msmc (void *ptr, size_t size);
00119 void __free_msmc (void *ptr);
00120 void *__memalign_msmc (size_t alignment, size_t size);
00121
00122 void __heap_init_l2 (void *ptr, size_t size);
00123 void *__malloc_l2 (size_t size);
00124
00125 #ifdef __cplusplus
00126 }
00127 #endif
00128
00129 #endif