diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2005-12-06 16:05:31 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2005-12-06 16:05:31 +0100 |
commit | f855f752599ecdddb47cf9f80e1f16bb28822455 (patch) | |
tree | 06d4191cb5d6ab1815f5949a0556a4ad2ecc0aaa | |
parent | ee694618a7384afe8d5dfbab28a6b400ce28711d (diff) | |
download | xen-f855f752599ecdddb47cf9f80e1f16bb28822455.tar.gz xen-f855f752599ecdddb47cf9f80e1f16bb28822455.tar.bz2 xen-f855f752599ecdddb47cf9f80e1f16bb28822455.zip |
The Mini-OS build once again broke, this time since vcpu_data became vcpu_info
and that XEN_VER in the __xen_guest section changed slightly. I've modified
the mini-os so that it at least compiles and boots again.
Signed-off-by: Simon Kagstrom <simon.kagstrom@bth.se>
-rw-r--r-- | extras/mini-os/events.c | 1 | ||||
-rw-r--r-- | extras/mini-os/hypervisor.c | 4 | ||||
-rw-r--r-- | extras/mini-os/include/os.h | 12 | ||||
-rw-r--r-- | extras/mini-os/time.c | 4 | ||||
-rw-r--r-- | extras/mini-os/x86_32.S | 6 |
5 files changed, 16 insertions, 11 deletions
diff --git a/extras/mini-os/events.c b/extras/mini-os/events.c index 5263c8757e..adf0afd13e 100644 --- a/extras/mini-os/events.c +++ b/extras/mini-os/events.c @@ -77,6 +77,7 @@ int bind_virq( u32 virq, void (*handler)(int, struct pt_regs *) ) /* Try to bind the virq to a port */ op.cmd = EVTCHNOP_bind_virq; op.u.bind_virq.virq = virq; + op.u.bind_virq.vcpu = smp_processor_id(); if ( HYPERVISOR_event_channel_op(&op) != 0 ) { diff --git a/extras/mini-os/hypervisor.c b/extras/mini-os/hypervisor.c index 53321b2a7d..29a34a463f 100644 --- a/extras/mini-os/hypervisor.c +++ b/extras/mini-os/hypervisor.c @@ -39,7 +39,7 @@ void do_hypervisor_callback(struct pt_regs *regs) unsigned int l1i, l2i, port; int cpu = 0; shared_info_t *s = HYPERVISOR_shared_info; - vcpu_info_t *vcpu_info = &s->vcpu_data[cpu]; + vcpu_info_t *vcpu_info = &s->vcpu_info[cpu]; vcpu_info->evtchn_upcall_pending = 0; @@ -71,7 +71,7 @@ inline void mask_evtchn(u32 port) inline void unmask_evtchn(u32 port) { shared_info_t *s = HYPERVISOR_shared_info; - vcpu_info_t *vcpu_info = &s->vcpu_data[smp_processor_id()]; + vcpu_info_t *vcpu_info = &s->vcpu_info[smp_processor_id()]; synch_clear_bit(port, &s->evtchn_mask[0]); diff --git a/extras/mini-os/include/os.h b/extras/mini-os/include/os.h index 751a058888..805739f239 100644 --- a/extras/mini-os/include/os.h +++ b/extras/mini-os/include/os.h @@ -70,7 +70,7 @@ void trap_init(void); #define __cli() \ do { \ vcpu_info_t *_vcpu; \ - _vcpu = &HYPERVISOR_shared_info->vcpu_data[smp_processor_id()]; \ + _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \ _vcpu->evtchn_upcall_mask = 1; \ barrier(); \ } while (0) @@ -79,7 +79,7 @@ do { \ do { \ vcpu_info_t *_vcpu; \ barrier(); \ - _vcpu = &HYPERVISOR_shared_info->vcpu_data[smp_processor_id()]; \ + _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \ _vcpu->evtchn_upcall_mask = 0; \ barrier(); /* unmask then check (avoid races) */ \ if ( unlikely(_vcpu->evtchn_upcall_pending) ) \ @@ -89,7 +89,7 @@ do { \ #define __save_flags(x) \ do { \ vcpu_info_t *_vcpu; \ - _vcpu = &HYPERVISOR_shared_info->vcpu_data[smp_processor_id()]; \ + _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \ (x) = _vcpu->evtchn_upcall_mask; \ } while (0) @@ -97,7 +97,7 @@ do { \ do { \ vcpu_info_t *_vcpu; \ barrier(); \ - _vcpu = &HYPERVISOR_shared_info->vcpu_data[smp_processor_id()]; \ + _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \ if ((_vcpu->evtchn_upcall_mask = (x)) == 0) { \ barrier(); /* unmask then check (avoid races) */ \ if ( unlikely(_vcpu->evtchn_upcall_pending) ) \ @@ -110,7 +110,7 @@ do { \ #define __save_and_cli(x) \ do { \ vcpu_info_t *_vcpu; \ - _vcpu = &HYPERVISOR_shared_info->vcpu_data[smp_processor_id()]; \ + _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \ (x) = _vcpu->evtchn_upcall_mask; \ _vcpu->evtchn_upcall_mask = 1; \ barrier(); \ @@ -123,7 +123,7 @@ do { \ #define local_irq_enable() __sti() #define irqs_disabled() \ - HYPERVISOR_shared_info->vcpu_data[smp_processor_id()].evtchn_upcall_mask + HYPERVISOR_shared_info->vcpu_info[smp_processor_id()].evtchn_upcall_mask /* This is a barrier for the compiler only, NOT the processor! */ #define barrier() __asm__ __volatile__("": : :"memory") diff --git a/extras/mini-os/time.c b/extras/mini-os/time.c index e66331e592..04ea43dc51 100644 --- a/extras/mini-os/time.c +++ b/extras/mini-os/time.c @@ -73,7 +73,7 @@ static struct shadow_time_info shadow; static inline int time_values_up_to_date(void) { - struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_time[0]; + struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time; return (shadow.version == src->version); } @@ -127,7 +127,7 @@ static unsigned long get_nsec_offset(void) static void get_time_values_from_xen(void) { - struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_time[0]; + struct vcpu_time_info *src = &HYPERVISOR_shared_info->vcpu_info[0].time; do { shadow.version = src->version; diff --git a/extras/mini-os/x86_32.S b/extras/mini-os/x86_32.S index 3daeb2167d..6a17bf3c07 100644 --- a/extras/mini-os/x86_32.S +++ b/extras/mini-os/x86_32.S @@ -3,7 +3,11 @@ .section __xen_guest - .asciz "XEN_VER=3.0,LOADER=generic,PT_MODE_WRITABLE" + .ascii "GUEST_OS=Mini-OS" + .ascii ",XEN_VER=xen-3.0" + .ascii ",LOADER=generic" + .ascii ",PT_MODE_WRITABLE" + .byte 0 .text .globl _start, shared_info |