/* FP and VSX 0-31 register set */ struct thread_fp_state {
u64 fpr[32][TS_FPRWIDTH] __attribute__((aligned(16)));
u64 fpscr; /* Floating point status */
};
/* Complete AltiVec register set including VSCR */ struct thread_vr_state {
vector128 vr[32] __attribute__((aligned(16)));
vector128 vscr __attribute__((aligned(16)));
};
struct debug_reg { #ifdef CONFIG_PPC_ADV_DEBUG_REGS /* * The following help to manage the use of Debug Control Registers * om the BookE platforms.
*/
uint32_t dbcr0;
uint32_t dbcr1; #ifdef CONFIG_BOOKE
uint32_t dbcr2; #endif /* * The stored value of the DBSR register will be the value at the * last debug interrupt. This register can only be read from the * user (will never be written to) and has value while helping to * describe the reason for the last debug trap. Torez
*/
uint32_t dbsr; /* * The following will contain addresses used by debug applications * to help trace and trap on particular address locations. * The bits in the Debug Control Registers above help define which * of the following registers will contain valid data and/or addresses.
*/ unsignedlong iac1; unsignedlong iac2; #if CONFIG_PPC_ADV_DEBUG_IACS > 2 unsignedlong iac3; unsignedlong iac4; #endif unsignedlong dac1; unsignedlong dac2; #if CONFIG_PPC_ADV_DEBUG_DVCS > 0 unsignedlong dvc1; unsignedlong dvc2; #endif #endif
};
/* * Checkpointed FP and VSX 0-31 register set. * * When a transaction is active/signalled/scheduled etc., *regs is the * most recent set of/speculated GPRs with ckpt_regs being the older * checkpointed regs to which we roll back if transaction aborts. * * These are analogous to how ckpt_regs and pt_regs work
*/ struct thread_fp_state ckfp_state; /* Checkpointed FP state */ struct thread_vr_state ckvr_state; /* Checkpointed VR state */ unsignedlong ckvrsave; /* Checkpointed VRSAVE */ #endif/* CONFIG_PPC_TRANSACTIONAL_MEM */ #ifdef CONFIG_KVM_BOOK3S_32_HANDLER void* kvm_shadow_vcpu; /* KVM internal data */ #endif/* CONFIG_KVM_BOOK3S_32_HANDLER */ #ifdefined(CONFIG_KVM) && defined(CONFIG_BOOKE) struct kvm_vcpu *kvm_vcpu; #endif #ifdef CONFIG_PPC64 unsignedlong dscr; unsignedlong fscr; /* * This member element dscr_inherit indicates that the process * has explicitly attempted and changed the DSCR register value * for itself. Hence kernel wont use the default CPU DSCR value * contained in the PACA structure anymore during process context * switch. Once this variable is set, this behaviour will also be * inherited to all the children of this process from that point * onwards.
*/ int dscr_inherit; unsignedlong tidr; #endif #ifdef CONFIG_PPC_BOOK3S_64 unsignedlong tar; unsignedlong ebbrr; unsignedlong ebbhr; unsignedlong bescr; unsignedlong siar; unsignedlong sdar; unsignedlong sier; unsignedlong mmcr2; unsigned mmcr0;
unsigned used_ebb; unsignedlong mmcr3; unsignedlong sier2; unsignedlong sier3; unsignedlong hashkeyr; unsignedlong dexcr; unsignedlong dexcr_onexec; /* Reset value to load on exec */ #endif
};
/* * Check that a certain kernel stack pointer is a valid (minimum sized) * stack frame in task_struct p.
*/ int validate_sp(unsignedlong sp, struct task_struct *p);
/* * validate the stack frame of a particular minimum size, used for when we are * looking at a certain object in the stack beyond the minimum.
*/ int validate_sp_size(unsignedlong sp, struct task_struct *p, unsignedlong nbytes);
#ifdef CONFIG_PPC64 /* * We handle most unaligned accesses in hardware. On the other hand * unaligned DMA can be very expensive on some ppc64 IO chips (it does * powers of 2 writes until it reaches sufficient alignment). * * Based on this we disable the IP header alignment in network drivers.
*/ #define NET_IP_ALIGN 0 #endif
int do_mathemu(struct pt_regs *regs); int do_spe_mathemu(struct pt_regs *regs); int speround_handler(struct pt_regs *regs);
/* VMX copying */ int enter_vmx_usercopy(void); int exit_vmx_usercopy(void); int enter_vmx_ops(void); void *exit_vmx_ops(void *dest);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.