- File:
-
- 1 edited
-
libcfa/src/concurrency/kernel.hfa (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel.hfa
r431cd4f r8cd5434 49 49 50 50 // Processor id, required for scheduling threads 51 struct __processor_id_t { 52 unsigned id:24; 53 54 #if !defined(__CFA_NO_STATISTICS__) 55 struct __stats_t * stats; 56 #endif 57 }; 51 58 52 59 53 coroutine processorCtx_t { … … 63 57 // Wrapper around kernel threads 64 58 struct __attribute__((aligned(128))) processor { 65 // Main state66 inline __processor_id_t;67 68 59 // Cluster from which to get threads 69 60 struct cluster * cltr; … … 90 81 pthread_t kernel_thread; 91 82 83 // Unique id for the processor (not per cluster) 84 unsigned unique_id; 85 92 86 struct { 93 87 $io_context * ctx; … … 123 117 } init; 124 118 119 struct KernelThreadData * local_data; 120 125 121 #if !defined(__CFA_NO_STATISTICS__) 126 122 int print_stats; … … 152 148 153 149 // Aligned timestamps which are used by the relaxed ready queue 154 struct __attribute__((aligned(128))) __timestamp_t; 155 void ?{}(__timestamp_t & this); 156 void ^?{}(__timestamp_t & this); 150 struct __attribute__((aligned(128))) __timestamp_t { 151 volatile unsigned long long tv; 152 }; 153 154 static inline void ?{}(__timestamp_t & this) { this.tv = 0; } 155 static inline void ^?{}(__timestamp_t & this) {} 157 156 158 157 //TODO adjust cache size to ARCHITECTURE … … 177 176 void ?{}(__ready_queue_t & this); 178 177 void ^?{}(__ready_queue_t & this); 178 #if !defined(__CFA_NO_STATISTICS__) 179 unsigned cnt(const __ready_queue_t & this, unsigned idx); 180 #endif 179 181 180 182 // Idle Sleep
Note:
See TracChangeset
for help on using the changeset viewer.