38,41 → 38,6 |
#include <arch/regdef.h> |
#include <arch/types.h> |
|
/** Version Register. */ |
union ver_reg { |
uint64_t value; |
struct { |
uint16_t manuf; /**< Manufacturer code. */ |
uint16_t impl; /**< Implementation code. */ |
uint8_t mask; /**< Mask set revision. */ |
unsigned : 8; |
uint8_t maxtl; |
unsigned : 3; |
unsigned maxwin : 5; |
} __attribute__ ((packed)); |
}; |
typedef union ver_reg ver_reg_t; |
|
/** Processor State Register. */ |
union pstate_reg { |
uint64_t value; |
struct { |
uint64_t : 52; |
unsigned ig : 1; /**< Interrupt Globals. */ |
unsigned mg : 1; /**< MMU Globals. */ |
unsigned cle : 1; /**< Current Little Endian. */ |
unsigned tle : 1; /**< Trap Little Endian. */ |
unsigned mm : 2; /**< Memory Model. */ |
unsigned red : 1; /**< RED state. */ |
unsigned pef : 1; /**< Enable floating-point. */ |
unsigned am : 1; /**< 32-bit Address Mask. */ |
unsigned priv : 1; /**< Privileged Mode. */ |
unsigned ie : 1; /**< Interrupt Enable. */ |
unsigned ag : 1; /**< Alternate Globals*/ |
} __attribute__ ((packed)); |
}; |
typedef union pstate_reg pstate_reg_t; |
|
/** TICK Register. */ |
union tick_reg { |
uint64_t value; |
105,6 → 70,7 |
}; |
typedef union softint_reg softint_reg_t; |
|
|
/** Floating-point Registers State Register. */ |
union fprs_reg { |
uint64_t value; |
117,7 → 83,13 |
}; |
typedef union fprs_reg fprs_reg_t; |
|
#if defined(SUN4U) |
#include <arch/sun4u/register.h> |
#elif defined (SUN4V) |
#include <arch/sun4v/register.h> |
#endif |
|
#endif |
|
/** @} |
*/ |