Subversion Repositories HelenOS

Rev

Rev 2927 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2927 Rev 4346
Line 33... Line 33...
33
 */
33
 */
34
 
34
 
35
#ifndef KERN_amd64_CPU_H_
35
#ifndef KERN_amd64_CPU_H_
36
#define KERN_amd64_CPU_H_
36
#define KERN_amd64_CPU_H_
37
 
37
 
38
#define RFLAGS_IF   (1 << 9)
38
#define RFLAGS_IF  (1 << 9)
39
#define RFLAGS_DF   (1 << 10)
39
#define RFLAGS_DF  (1 << 10)
40
#define RFLAGS_RF   (1 << 16)
40
#define RFLAGS_RF  (1 << 16)
41
 
41
 
42
#define EFER_MSR_NUM    0xc0000080
42
#define EFER_MSR_NUM    0xc0000080
43
#define AMD_SCE_FLAG    0
43
#define AMD_SCE_FLAG    0
44
#define AMD_LME_FLAG    8
44
#define AMD_LME_FLAG    8
45
#define AMD_LMA_FLAG    10
45
#define AMD_LMA_FLAG    10
Line 60... Line 60...
60
typedef struct {
60
typedef struct {
61
    int vendor;
61
    int vendor;
62
    int family;
62
    int family;
63
    int model;
63
    int model;
64
    int stepping;
64
    int stepping;
65
    struct tss *tss;
65
    tss_t *tss;
66
   
66
   
67
    count_t iomapver_copy;  /** Copy of TASK's I/O Permission bitmap generation count. */
67
    count_t iomapver_copy;  /** Copy of TASK's I/O Permission bitmap generation count. */
68
} cpu_arch_t;
68
} cpu_arch_t;
69
 
69
 
70
struct star_msr {
70
struct star_msr {
71
   
-
 
72
};
71
};
73
 
72
 
74
struct lstar_msr {
73
struct lstar_msr {
75
   
-
 
76
};
74
};
77
 
75
 
78
extern void set_efer_flag(int flag);
76
extern void set_efer_flag(int flag);
79
extern uint64_t read_efer_flag(void);
77
extern uint64_t read_efer_flag(void);
80
void cpu_setup_fpu(void);
78
void cpu_setup_fpu(void);