Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4129 → Rev 4130

/branches/sparc/kernel/arch/sparc64/include/register.h
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
 
/** @}
*/