Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/kernel.hfa

    r431cd4f r8cd5434  
    4949
    5050// 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
    5852
    5953coroutine processorCtx_t {
     
    6357// Wrapper around kernel threads
    6458struct __attribute__((aligned(128))) processor {
    65         // Main state
    66         inline __processor_id_t;
    67 
    6859        // Cluster from which to get threads
    6960        struct cluster * cltr;
     
    9081        pthread_t kernel_thread;
    9182
     83        // Unique id for the processor (not per cluster)
     84        unsigned unique_id;
     85
    9286        struct {
    9387                $io_context * ctx;
     
    123117        } init;
    124118
     119        struct KernelThreadData * local_data;
     120
    125121        #if !defined(__CFA_NO_STATISTICS__)
    126122                int print_stats;
     
    152148
    153149// 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);
     150struct __attribute__((aligned(128))) __timestamp_t {
     151        volatile unsigned long long tv;
     152};
     153
     154static inline void  ?{}(__timestamp_t & this) { this.tv = 0; }
     155static inline void ^?{}(__timestamp_t & this) {}
    157156
    158157//TODO adjust cache size to ARCHITECTURE
     
    177176void  ?{}(__ready_queue_t & this);
    178177void ^?{}(__ready_queue_t & this);
     178#if !defined(__CFA_NO_STATISTICS__)
     179        unsigned cnt(const __ready_queue_t & this, unsigned idx);
     180#endif
    179181
    180182// Idle Sleep
Note: See TracChangeset for help on using the changeset viewer.