Home | History | Annotate | Line # | Download | only in include
i82093var.h revision 1.1.58.1
      1  1.1.58.1     mjf /*	 $NetBSD: i82093var.h,v 1.1.58.1 2008/06/02 13:22:53 mjf Exp $ */
      2       1.1  bouyer 
      3       1.1  bouyer #include "opt_xen.h"
      4       1.1  bouyer #define _IOAPIC_CUSTOM_RW
      5       1.1  bouyer #include <x86/i82093var.h>
      6       1.1  bouyer #include <hypervisor.h>
      7       1.1  bouyer 
      8       1.1  bouyer #ifdef XEN3
      9       1.1  bouyer 
     10  1.1.58.1     mjf static inline  uint32_t
     11       1.1  bouyer ioapic_read_ul(struct ioapic_softc *sc, int regid)
     12       1.1  bouyer {
     13       1.1  bouyer 	physdev_op_t op;
     14       1.1  bouyer 	int ret;
     15       1.1  bouyer 
     16       1.1  bouyer         op.cmd = PHYSDEVOP_APIC_READ;
     17       1.1  bouyer 	op.u.apic_op.apic_physbase = sc->sc_pa;
     18       1.1  bouyer 	op.u.apic_op.reg = regid;
     19       1.1  bouyer 	ret = HYPERVISOR_physdev_op(&op);
     20       1.1  bouyer 	if (ret) {
     21       1.1  bouyer 		printf("PHYSDEVOP_APIC_READ ret %d\n", ret);
     22       1.1  bouyer 		panic("PHYSDEVOP_APIC_READ");
     23       1.1  bouyer 	}
     24       1.1  bouyer 	return op.u.apic_op.value;
     25       1.1  bouyer }
     26       1.1  bouyer 
     27       1.1  bouyer static inline void
     28  1.1.58.1     mjf ioapic_write_ul(struct ioapic_softc *sc, int regid, uint32_t val)
     29       1.1  bouyer {
     30       1.1  bouyer 	physdev_op_t op;
     31       1.1  bouyer 	int ret;
     32       1.1  bouyer 
     33       1.1  bouyer         op.cmd = PHYSDEVOP_APIC_WRITE;
     34       1.1  bouyer 	op.u.apic_op.apic_physbase = sc->sc_pa;
     35       1.1  bouyer 	op.u.apic_op.reg = regid;
     36       1.1  bouyer 	op.u.apic_op.value = val;
     37       1.1  bouyer 	ret = HYPERVISOR_physdev_op(&op);
     38       1.1  bouyer 	if (ret) {
     39       1.1  bouyer 		printf("PHYSDEVOP_APIC_WRITE ret %d\n", ret);
     40       1.1  bouyer 		panic("PHYSDEVOP_APIC_WRITE");
     41       1.1  bouyer 	}
     42       1.1  bouyer }
     43       1.1  bouyer 
     44       1.1  bouyer #endif
     45