42#include <rtems/score/cpuopts.h>
43#include <rtems/score/x86_64.h>
56#ifndef __USER_LABEL_PREFIX__
65#define __USER_LABEL_PREFIX__ _
68#undef __REGISTER_PREFIX__
69#define __REGISTER_PREFIX__ %
74#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
77#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x)
116#define BEGIN_CODE_DCL .text
120#define BEGIN_DATA_DCL .data
124#define BEGIN_CODE .text
146#define PUBLIC(sym) .globl SYM (sym)
154#define EXTERN(sym) .globl SYM (sym)
158.macro GET_CPU_INDEX REG REG32
160 .set LAPIC_ID_SHIFT, 24
161 movq amd64_lapic_base, \REG
162 movl LAPIC_ID(\REG), \REG32
163 shrq $LAPIC_ID_SHIFT, \REG
164 movzbq amd64_lapic_to_cpu_map(\REG), \REG
168.macro GET_SELF_CPU_CONTROL REG REG32
169 GET_CPU_INDEX \REG \REG32
170 shlq $PER_CPU_CONTROL_SIZE_LOG2, \REG
174.macro GET_CPU_INDEX REG REG32
178.macro GET_SELF_CPU_CONTROL REG REG32
184.macro GET_SELF_CPU_CONTROL_RAX
185 GET_SELF_CPU_CONTROL rax,%eax
187.macro GET_SELF_CPU_CONTROL_RBX
188 GET_SELF_CPU_CONTROL rbx,%ebx
190.macro GET_SELF_CPU_CONTROL_RCX
191 GET_SELF_CPU_CONTROL rcx,%ecx
193.macro GET_SELF_CPU_CONTROL_RDX
194 GET_SELF_CPU_CONTROL rdx,%edx
196.macro GET_SELF_CPU_CONTROL_RDI
197 GET_SELF_CPU_CONTROL rdi,%edi
199.macro GET_SELF_CPU_CONTROL_RSI
200 GET_SELF_CPU_CONTROL rsi,%esi
202.macro GET_SELF_CPU_CONTROL_R8
203 GET_SELF_CPU_CONTROL r8,%r8d
205.macro GET_SELF_CPU_CONTROL_R9
206 GET_SELF_CPU_CONTROL r9,%r9d
208.macro GET_SELF_CPU_CONTROL_R10
209 GET_SELF_CPU_CONTROL r10,%r10d
211.macro GET_SELF_CPU_CONTROL_R11
212 GET_SELF_CPU_CONTROL r11,%r11d
214.macro GET_SELF_CPU_CONTROL_R12
215 GET_SELF_CPU_CONTROL r12,%r12d
217.macro GET_SELF_CPU_CONTROL_R13
218 GET_SELF_CPU_CONTROL r13,%r13d
220.macro GET_SELF_CPU_CONTROL_R14
221 GET_SELF_CPU_CONTROL r14,%r14d
223.macro GET_SELF_CPU_CONTROL_R15
224 GET_SELF_CPU_CONTROL r15,%r15d
CPU_STRUCTURE_ALIGNMENT Per_CPU_Control_envelope _Per_CPU_Information[]
Set of Per CPU Core Information.
Definition: asm.h:171
This header file provides the interfaces of the Per-CPU Information.