> +/********************************************************************** > **** > + VCPU control register access routines > + > ************************************************************************ > **/ > +static inline u64 vcpu_get_itir(VCPU *vcpu) > +{ > + return ((u64)VCPU(vcpu, itir)); > +} > + > +static inline void vcpu_set_itir(VCPU *vcpu, u64 val) > +{ > + VCPU(vcpu, itir) = val; > +} > + > +static inline u64 vcpu_get_ifa(VCPU *vcpu) > +{ > + return ((u64)VCPU(vcpu, ifa)); > +} > + > +static inline void vcpu_set_ifa(VCPU *vcpu, u64 val) > +{ > + VCPU(vcpu, ifa) = val; > +} > + > +static inline u64 vcpu_get_iva(VCPU *vcpu) > +{ > + return ((u64)VCPU(vcpu, iva)); > +} > + > +static inline u64 vcpu_get_pta(VCPU *vcpu) > +{ > + return ((u64)VCPU(vcpu, pta)); > +} > + > +static inline u64 vcpu_get_lid(VCPU *vcpu) > +{ > + return ((u64)VCPU(vcpu, lid)); > +} > + > +static inline u64 vcpu_get_tpr(VCPU *vcpu) > +{ > + return ((u64)VCPU(vcpu, tpr)); > +} > + > +static inline u64 vcpu_get_eoi(VCPU *vcpu) > +{ > + return (0UL); /*reads of eoi always return 0 */ > +} > + > +static inline u64 vcpu_get_irr0(VCPU *vcpu) > +{ > + return ((u64)VCPU(vcpu, irr[0])); > +} > + > +static inline u64 vcpu_get_irr1(VCPU *vcpu) > +{ > + return ((u64)VCPU(vcpu, irr[1])); > +} > + > +static inline u64 vcpu_get_irr2(VCPU *vcpu) > +{ > + return ((u64)VCPU(vcpu, irr[2])); > +} > + > +static inline u64 vcpu_get_irr3(VCPU *vcpu) > +{ > + return ((u64)VCPU(vcpu, irr[3])); > +} > + > +static inline void vcpu_set_dcr(VCPU *vcpu, u64 val) > +{ > + ia64_set_dcr(val); > +} > + > +static inline void vcpu_set_isr(VCPU *vcpu, u64 val) > +{ > + VCPU(vcpu, isr) = val; > +} > + > +static inline void vcpu_set_lid(VCPU *vcpu, u64 val) > +{ > + VCPU(vcpu, lid) = val; > +} > + > +static inline void vcpu_set_ipsr(VCPU *vcpu, u64 val) > +{ > + VCPU(vcpu, ipsr) = val; > +} > + > +static inline void vcpu_set_iip(VCPU *vcpu, u64 val) > +{ > + VCPU(vcpu, iip) = val; > +} > + > +static inline void vcpu_set_ifs(VCPU *vcpu, u64 val) > +{ > + VCPU(vcpu, ifs) = val; > +} > + > +static inline void vcpu_set_iipa(VCPU *vcpu, u64 val) > +{ > + VCPU(vcpu, iipa) = val; > +} > + > +static inline void vcpu_set_iha(VCPU *vcpu, u64 val) > +{ > + VCPU(vcpu, iha) = val; > +} > + > + > +static inline u64 vcpu_get_rr(VCPU *vcpu, u64 reg) > +{ > + return vcpu->arch.vrr[reg>>61]; > +} Looks to me like most of them can be replaced by a few macros using macro_##.
> +static inline int highest_bits(int *dat) > +{ > + u32 bits, bitnum; > + int i; > + > + /* loop for all 256 bits */ > + for (i = 7; i >= 0 ; i --) { > + bits = dat[i]; > + if (bits) { > + bitnum = fls(bits); > + return i * 32 + bitnum - 1; > + } > + } > + return NULL_VECTOR; > +} duplicate to asm/bitops.h find_first_bit(). ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel