Rev 4663 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4663 | Rev 4679 | ||
---|---|---|---|
Line 41... | Line 41... | ||
41 | /** Maximum number of logical processors in a processor core */ |
41 | /** Maximum number of logical processors in a processor core */ |
42 | #define MAX_CORE_STRANDS 8 |
42 | #define MAX_CORE_STRANDS 8 |
43 | 43 | ||
44 | #ifndef __ASM__ |
44 | #ifndef __ASM__ |
45 | 45 | ||
- | 46 | struct cpu; |
|
- | 47 | ||
46 | typedef struct { |
48 | typedef struct { |
- | 49 | uint64_t exec_unit_id; |
|
- | 50 | uint8_t strand_count; |
|
- | 51 | uint64_t cpuids[MAX_CORE_STRANDS]; |
|
- | 52 | struct cpu *cpus[MAX_CORE_STRANDS]; |
|
- | 53 | atomic_t nrdy; |
|
- | 54 | SPINLOCK_DECLARE(proposed_nrdy_lock); |
|
- | 55 | } exec_unit_t; |
|
- | 56 | ||
- | 57 | typedef struct cpu_arch { |
|
47 | uint64_t id; /**< virtual processor ID */ |
58 | uint64_t id; /**< virtual processor ID */ |
48 | uint32_t clock_frequency; /**< Processor frequency in Hz. */ |
59 | uint32_t clock_frequency; /**< Processor frequency in Hz. */ |
49 | uint64_t next_tick_cmpr; /**< Next clock interrupt should be |
60 | uint64_t next_tick_cmpr; /**< Next clock interrupt should be |
50 | generated when the TICK register |
61 | generated when the TICK register |
51 | matches this value. */ |
62 | matches this value. */ |
- | 63 | exec_unit_t *exec_unit; /**< Physical core. */ |
|
- | 64 | unsigned long proposed_nrdy; /**< Proposed No. of ready threads |
|
- | 65 | so that cores are equally balanced. */ |
|
52 | } cpu_arch_t; |
66 | } cpu_arch_t; |
53 | 67 | ||
54 | typedef struct { |
- | |
55 | uint64_t exec_unit_id; |
- | |
56 | uint8_t strand_count; |
- | |
57 | uint64_t cpuids[MAX_CORE_STRANDS]; |
- | |
58 | } exec_unit_t; |
- | |
59 | - | ||
60 | #endif |
68 | #endif |
61 | 69 | ||
62 | #ifdef __ASM__ |
70 | #ifdef __ASM__ |
63 | 71 | ||
64 | #endif |
72 | #endif |