/SPARTAN/trunk/arch/amd64/include/cpuid.h |
---|
31,6 → 31,9 |
#include <arch/types.h> |
#define AMD_CPUID_EXTENDED 0x80000001 |
#define AMD_EXT_NOEXECUTE 20 |
struct cpu_info { |
__u32 cpuid_eax; |
__u32 cpuid_ebx; |
40,21 → 43,9 |
extern int has_cpuid(void); |
static inline void cpuid(__u32 cmd, cpu_info_t *info) |
{ |
__asm__ ( |
"movl %1, %eax" |
"cpuid" |
"movl %eax, 0(%0)" |
"movl %ebx, 4(%0)" |
"movl %ecx, 8(%0)" |
"movl %edx, 12(%0)" |
: "=m"(info) |
: "r"(cmd) |
: "%eax","%ebx","%ecx","%edx" |
); |
} |
extern void cpuid(__u32 cmd, cpu_info_t *info); |
extern __u64 rdtsc(void); |
#endif |
/SPARTAN/trunk/arch/amd64/include/mm/page.h |
---|
42,7 → 42,7 |
# define PA2KA(x) (((__address) (x)) - 0x80000000) |
#else |
# define KA2PA(x) ((x) + 0x80000000) |
//# define PA2KA(x) ((x)) - 0x80000000) |
# define PA2KA(x) ((x) - 0x80000000) |
#endif |
#define PTL0_INDEX_ARCH(vaddr) (((vaddr)>>39)&0x1ff) |
/SPARTAN/trunk/arch/amd64/include/cpu.h |
---|
29,11 → 29,18 |
#ifndef __amd64_CPU_H__ |
#define __amd64_CPU_H__ |
#include <config.h> |
#include <proc/thread.h> |
#define EFER_MSR_NUM 0xc0000080 |
#define AMD_SCE_FLAG 0 |
#define AMD_LME_FLAG 8 |
#define AMD_LMA_FLAG 10 |
#define AMD_FFXSR_FLAG 14 |
#define AMD_NXE_FLAG 11 |
#ifndef __ASM__ |
#include <typedefs.h> |
#include <arch/pm.h> |
#include <arch/asm.h> |
struct cpu_arch { |
int vendor; |
44,7 → 51,11 |
}; |
void set_TS_flag(void); |
void reset_TS_flag(void); |
extern void set_TS_flag(void); |
extern void reset_TS_flag(void); |
extern void set_efer_flag(int flag); |
extern __u64 read_efer_flag(void); |
#endif /* __ASM__ */ |
#endif |