WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

Re: [Xen-ia64-devel] [PATCH]minios: remove big endian stuff

To: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Subject: Re: [Xen-ia64-devel] [PATCH]minios: remove big endian stuff
From: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 18 Nov 2008 12:43:49 +0100
Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 18 Nov 2008 03:43:59 -0800
Domainkey-signature: s=s768; d=fujitsu-siemens.com; c=nofws; q=dns; h=X-SBRSScore:X-IronPort-AV:Received:X-IronPort-AV: Received:Received:From:To:Subject:Date:User-Agent:Cc: References:In-Reply-To:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-Disposition:Message-Id; b=MhYjNjF0hjk6T36/WVxb4hNTucmVys9WWe2LB9589xPyhayulbrRhjl6 m7l2C7CgefY3TcN0iJkq+d2GMebzmy33xipigJS+DDi1PEOTPlapgrEvs AUH1vCXX+eKTvYF;
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20081118102353.GC12360%yamahata@xxxxxxxxxxxxx>
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
References: <200811181049.01152.dietmar.hahn@xxxxxxxxxxxxxxxxxxx> <20081118102353.GC12360%yamahata@xxxxxxxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: KMail/1.9.6 (enterprise 20070904.708012)
Am Dienstag, 18. November 2008 schrieb Isaku Yamahata:
> On Tue, Nov 18, 2008 at 10:49:01AM +0100, Dietmar Hahn wrote:
> > Hi,
> >
> > this patch removes all the useless big endian stuff from the minios.
> > Thanks.
>
> Hi. IIRC, you are the one who wanted big endian support for PV-guest.
> What is the point to remove it from the minios?

Yes, you are right. But I never got the big endian support into the common 
parts of the mini-os so it makes no sense to have this only in the ia64 
specific sources. And as there is no open source big endian os and we stopped 
porting our BS2000 os to ia64 nobody wants that stuff in the common minos.
So I thought this looks ugly then and did this patch.
Thanks.

Dietmar.

>
> > # HG changeset patch
> > # User dietmar.hahn@xxxxxxxxxxxxxxxxxxx
> > # Date 1227002151 -3600
> > # Node ID 56ecdf7c49e7d86caf476da7119a8b19c5496910
> > # Parent  cf3b9afb8568a18250faf08a0dd7c2b57bc7d3ac
> >
> > Remove the useless big endian stuff.
> >
> > Signed-off-by: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
> >
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/arch.mk
> > --- a/extras/mini-os/arch/ia64/arch.mk      Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/arch.mk      Tue Nov 18 10:55:51 2008 +0100
> > @@ -1,5 +1,3 @@
> > -# Build for Big Endian?
> > -BIGENDIAN ?= n
> >
> >  ARCH_CFLAGS := -mfixed-range=f2-f5,f12-f15,f32-f127 -mconstant-gp
> >  ARCH_CFLAGS += -O2
> > @@ -9,12 +7,3 @@ ARCH_ASFLAGS += -fno-builtin -fno-common
> >
> >  ARCH_LDFLAGS = -warn-common
> >
> > -# Next lines are for big endian code !
> > -ifeq ($(BIGENDIAN),y)
> > -ARCH_CFLAGS += -mbig-endian -Wa,-mbe -Wa,-mlp64
> > -ARCH_CFLAGS += -DBIG_ENDIAN
> > -ARCH_ASFLAGS += -Wa,-mbe
> > -ARCH_ASFLAGS += -DBIG_ENDIAN
> > -ARCH_LDFLAGS = -EB -d
> > -endif
> > -
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/common.c
> > --- a/extras/mini-os/arch/ia64/common.c     Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/common.c     Tue Nov 18 10:55:51 2008 +0100
> > @@ -116,8 +116,8 @@ registerCallback(void)
> >  {
> >     struct callback_register event =
> >     {
> > -           .type = SWAP(CALLBACKTYPE_event),
> > -           .address = SWAP((unsigned long)&hypervisor_callback),
> > +           .type = CALLBACKTYPE_event,
> > +           .address = (unsigned long)&hypervisor_callback,
> >     };
> >     HYPERVISOR_callback_op(CALLBACKOP_register, &event);
> >  }
> > @@ -126,46 +126,44 @@ init_start_info(start_info_t* xen_start_
> >  init_start_info(start_info_t* xen_start_info)
> >  {
> >     /* Make a copy of the start_info structure */
> > -   start_info.nr_pages = SWAP(xen_start_info->nr_pages);
> > -   start_info.shared_info = SWAP(xen_start_info->shared_info);
> > -   start_info.flags = SWAP(xen_start_info->flags);
> > -   start_info.store_mfn = SWAP(xen_start_info->store_mfn);
> > -   start_info.store_evtchn = SWAP(xen_start_info->store_evtchn);
> > -   start_info.console.domU.mfn = SWAP(xen_start_info->console.domU.mfn);
> > +   start_info.nr_pages = xen_start_info->nr_pages;
> > +   start_info.shared_info = xen_start_info->shared_info;
> > +   start_info.flags = xen_start_info->flags;
> > +   start_info.store_mfn = xen_start_info->store_mfn;
> > +   start_info.store_evtchn = xen_start_info->store_evtchn;
> > +   start_info.console.domU.mfn = xen_start_info->console.domU.mfn;
> >     start_info.console.domU.evtchn =
> > -                           SWAP(xen_start_info->console.domU.evtchn);
> > -   start_info.pt_base = SWAP(xen_start_info->pt_base);
> > -   start_info.nr_pt_frames = SWAP(xen_start_info->nr_pt_frames);
> > -   start_info.mfn_list = SWAP(xen_start_info->mfn_list);
> > -   start_info.mod_start = SWAP(xen_start_info->mod_start);
> > -   start_info.mod_len = SWAP(xen_start_info->mod_len);
> > +                           xen_start_info->console.domU.evtchn;
> > +   start_info.pt_base = xen_start_info->pt_base;
> > +   start_info.nr_pt_frames = xen_start_info->nr_pt_frames;
> > +   start_info.mfn_list = xen_start_info->mfn_list;
> > +   start_info.mod_start = xen_start_info->mod_start;
> > +   start_info.mod_len = xen_start_info->mod_len;
> >  }
> >
> >  static void
> >  init_boot_params(void)
> >  {
> > -   ia64BootParamG.command_line = SWAP(ia64_boot_paramP->command_line);
> > -   ia64BootParamG.efi_systab = SWAP(ia64_boot_paramP->efi_systab);
> > -   ia64BootParamG.efi_memmap = SWAP(ia64_boot_paramP->efi_memmap);
> > -   ia64BootParamG.efi_memmap_size =
> > -                           SWAP(ia64_boot_paramP->efi_memmap_size);
> > -   ia64BootParamG.efi_memdesc_size =
> > -                           SWAP(ia64_boot_paramP->efi_memdesc_size);
> > +   ia64BootParamG.command_line = ia64_boot_paramP->command_line;
> > +   ia64BootParamG.efi_systab = ia64_boot_paramP->efi_systab;
> > +   ia64BootParamG.efi_memmap = ia64_boot_paramP->efi_memmap;
> > +   ia64BootParamG.efi_memmap_size = ia64_boot_paramP->efi_memmap_size;
> > +   ia64BootParamG.efi_memdesc_size = ia64_boot_paramP->efi_memdesc_size;
> >     ia64BootParamG.efi_memdesc_version =
> > -                           SWAP(ia64_boot_paramP->efi_memdesc_version);
> > +                           ia64_boot_paramP->efi_memdesc_version;
> >     ia64BootParamG.console_info.num_cols =
> > -                           SWAP(ia64_boot_paramP->console_info.num_cols);
> > +                           ia64_boot_paramP->console_info.num_cols;
> >     ia64BootParamG.console_info.num_rows =
> > -                           SWAP(ia64_boot_paramP->console_info.num_rows);
> > +                           ia64_boot_paramP->console_info.num_rows;
> >     ia64BootParamG.console_info.orig_x =
> > -                           SWAP(ia64_boot_paramP->console_info.orig_x);
> > +                           ia64_boot_paramP->console_info.orig_x;
> >     ia64BootParamG.console_info.orig_y =
> > -                           SWAP(ia64_boot_paramP->console_info.orig_y);
> > -   ia64BootParamG.fpswa = SWAP(ia64_boot_paramP->fpswa);
> > -   ia64BootParamG.initrd_start = SWAP(ia64_boot_paramP->initrd_start);
> > -   ia64BootParamG.initrd_size = SWAP(ia64_boot_paramP->initrd_size);
> > -   ia64BootParamG.domain_start = SWAP(ia64_boot_paramP->domain_start);
> > -   ia64BootParamG.domain_size = SWAP(ia64_boot_paramP->domain_size);
> > +                           ia64_boot_paramP->console_info.orig_y;
> > +   ia64BootParamG.fpswa = ia64_boot_paramP->fpswa;
> > +   ia64BootParamG.initrd_start = ia64_boot_paramP->initrd_start;
> > +   ia64BootParamG.initrd_size = ia64_boot_paramP->initrd_size;
> > +   ia64BootParamG.domain_start = ia64_boot_paramP->domain_start;
> > +   ia64BootParamG.domain_size = ia64_boot_paramP->domain_size;
> >
> >     /*
> >      * Copy and parse the boot command line.
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/debug.c
> > --- a/extras/mini-os/arch/ia64/debug.c      Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/debug.c      Tue Nov 18 10:55:51 2008 +0100
> > @@ -102,7 +102,6 @@ static const char *ia64_vector_names[] =
> >
> >  typedef struct
> >  {
> > -#if !defined(BIG_ENDIAN)
> >     uint64_t sof    :7;     /* 0-6 size of frame */
> >     uint64_t sol    :7;     /* 7-13 size of locals (in + loc) */
> >     uint64_t sor    :4;
> > @@ -111,16 +110,6 @@ typedef struct
> >     uint64_t rrb_pr :6;
> >     uint64_t res    :25;    /* reserved */
> >     uint64_t v      :1;     /* The v bit */
> > -#else /* !BIG_ENDIAN */
> > -   uint64_t v      :1;     /* The v bit */
> > -   uint64_t res    :25;    /* reserved */
> > -   uint64_t rrb_pr :6;
> > -   uint64_t rrb_fr :7;
> > -   uint64_t rrb_gr :7;
> > -   uint64_t sor    :4;
> > -   uint64_t sol    :7;     /* 7-13 size of locals (in + loc) */
> > -   uint64_t sof    :7;     /* 0-6 size of frame */
> > -#endif /* BIG_ENDIAN */
> >  } ifs_t;
> >
> >  void
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/efi.c
> > --- a/extras/mini-os/arch/ia64/efi.c        Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/efi.c        Tue Nov 18 10:55:51 2008 +0100
> > @@ -49,13 +49,6 @@ efi_get_time(efi_time_t* tmP)
> >             printk("efi.getTime() failed\n");
> >             return 0;
> >     }
> > -
> > -#if defined(BIG_ENDIAN)
> > -   tmP->Year = SWAP(tmP->Year);
> > -   tmP->TimeZone = SWAP(tmP->TimeZone);
> > -   tmP->Nanosecond = SWAP(tmP->Nanosecond);
> > -#endif
> > -
> >     return 1;
> >  }
> >
> > @@ -65,17 +58,7 @@ static int
> >  static int
> >  efi_guid_cmp(efi_guid_t* a_le, efi_guid_t* b)
> >  {
> > -#if defined(BIG_ENDIAN)
> > -   if(SWAP(a_le->Data1) != b->Data1)
> > -           return 1;
> > -   if(SWAP(a_le->Data2) != b->Data2)
> > -           return 1;
> > -   if(SWAP(a_le->Data3) != b->Data3)
> > -           return 1;
> > -   return memcmp(a_le->Data4, b->Data4, sizeof(uint8_t)*8);
> > -#else
> >     return memcmp(a_le, b, sizeof(efi_guid_t));
> > -#endif
> >  }
> >
> >  void
> > @@ -99,20 +82,20 @@ init_efi(void)
> >     efiSysTableP = (efi_system_table_t*)__va(ia64BootParamG.efi_systab);
> >     machineFwG.efi.efiSysTableP = efiSysTableP;
> >     PRINT_BV("EfiSystemTable at: %p\n", efiSysTableP);
> > -   fwP = (uint16_t*) __va(SWAP(efiSysTableP->FirmwareVendor));
> > +   fwP = (uint16_t*) __va(efiSysTableP->FirmwareVendor);
> >     if (fwP) {
> >             for (i = 0; i < (int)sizeof(fwVendor) - 1 && *fwP; ++i)
> > -                   fwVendor[i] = SWAP(*fwP++);
> > +                   fwVendor[i] = *fwP++;
> >             fwVendor[i] = '\0';
> >     }
> >     PRINT_BV("  EFI-FirmwareVendor        : %s\n", fwVendor);
> >     PRINT_BV("  EFI-FirmwareRevision      : %d\n",
> > -            SWAP(efiSysTableP->FirmwareRevision));
> > +            efiSysTableP->FirmwareRevision);
> >     PRINT_BV("  EFI-SystemTable-Revision  : %d.%d\n",
> > -            SWAP(efiSysTableP->Hdr.Revision)>>16,
> > -            SWAP(efiSysTableP->Hdr.Revision)&0xffff);
> > +            efiSysTableP->Hdr.Revision >> 16,
> > +            efiSysTableP->Hdr.Revision & 0xffff);
> >     rsP = (efi_runtime_services_t*)
> > -           __va(SWAP(efiSysTableP->RuntimeServices));
> > +           __va(efiSysTableP->RuntimeServices);
> >     mdcnt = ia64BootParamG.efi_memmap_size /
> >             ia64BootParamG.efi_memdesc_size;
> >     memdP = (efi_memory_descriptor_t*) __va(ia64BootParamG.efi_memmap);
> > @@ -123,10 +106,10 @@ init_efi(void)
> >          mdP = NextMemoryDescriptor(mdP, ia64BootParamG.efi_memdesc_size))
> > { /* Relocate runtime memory segments for firmware. */
> >             PRINT_BV("  %d. Type: %x  Attributes: 0x%lx\n",
> > -                    i, SWAP(mdP->Type), SWAP(mdP->Attribute));
> > +                    i, mdP->Type, mdP->Attribute);
> >             PRINT_BV("     PhysStart: 0x%lx  NumPages: 0x%lx\n",
> > -                    SWAP(mdP->PhysicalStart), SWAP(mdP->NumberOfPages));
> > -           switch (SWAP(mdP->Type)) {
> > +                    mdP->PhysicalStart, mdP->NumberOfPages);
> > +           switch (mdP->Type) {
> >                     case EfiRuntimeServicesData:
> >                             PRINT_BV("     -> EfiRuntimeServicesData\n");
> >                             break;
> > @@ -139,18 +122,17 @@ init_efi(void)
> >                     case EfiConventionalMemory:
> >                             PRINT_BV("     -> EfiConventionalMemory\n");
> >                             PRINT_BV("        start: 0x%lx end: 0x%lx\n",
> > -                                   SWAP(mdP->PhysicalStart),
> > -                                   SWAP(mdP->PhysicalStart)+
> > -                                   SWAP(mdP->NumberOfPages)*EFI_PAGE_SIZE);
> > +                                   mdP->PhysicalStart,
> > +                                   mdP->PhysicalStart +
> > +                                   mdP->NumberOfPages * EFI_PAGE_SIZE);
> >                             if (numConvMem) {
> >                                     printk("     Currently only one efi "
> >                                             "memory chunk supported !!!\n");
> >                                     break;
> >                             }
> > -                           machineFwG.mach_mem_start =
> > -                                   SWAP(mdP->PhysicalStart);
> > +                           machineFwG.mach_mem_start = mdP->PhysicalStart;
> >                             machineFwG.mach_mem_size =
> > -                                   SWAP(mdP->NumberOfPages)*EFI_PAGE_SIZE;
> > +                                   mdP->NumberOfPages * EFI_PAGE_SIZE;
> >                             numConvMem++;
> >                             break;
> >                     case EfiMemoryMappedIOPortSpace:
> > @@ -158,7 +140,7 @@ init_efi(void)
> >                             break;
> >                     case EfiPalCode:
> >                                     machineFwG.ia64_pal_base =
> > -                                   __va(SWAP(mdP->PhysicalStart));
> > +                                   __va(mdP->PhysicalStart);
> >                             PRINT_BV("     -> EfiPalCode\n"
> >                                      "        start : %p\n",
> >                                      machineFwG.ia64_pal_base);
> > @@ -170,12 +152,11 @@ init_efi(void)
> >              * virtual addressing and the efi runtime functions
> >              * may be called directly.
> >              */
> > -           if (SWAP(mdP->Attribute) & EFI_MEMORY_RUNTIME) {
> > -                   if (SWAP(mdP->Attribute) & EFI_MEMORY_WB)
> > -                           mdP->VirtualStart =
> > -                                   SWAP(__va(mdP->PhysicalStart));
> > +           if (mdP->Attribute & EFI_MEMORY_RUNTIME) {
> > +                   if (mdP->Attribute & EFI_MEMORY_WB)
> > +                           mdP->VirtualStart = __va(mdP->PhysicalStart);
> >                     else {
> > -                           if (SWAP(mdP->Attribute) & EFI_MEMORY_UC)
> > +                           if (mdP->Attribute & EFI_MEMORY_UC)
> >                                     printk("efi_init: RuntimeMemory with "
> >                                             "UC attribute !!!!!!\n");
> >                                     /*
> > @@ -187,7 +168,7 @@ init_efi(void)
> >     }
> >     /* Now switch efi runtime stuff to virtual addressing. */
> >     status = ia64_call_efi_physical(
> > -                   (void*)__va(SWAP((uint64_t)rsP->SetVirtualAddressMap)),
> > +                   (void*)__va((uint64_t)rsP->SetVirtualAddressMap),
> >                     ia64BootParamG.efi_memmap_size,
> >                     ia64BootParamG.efi_memdesc_size,
> >                     ia64BootParamG.efi_memdesc_version,
> > @@ -200,35 +181,35 @@ init_efi(void)
> >     }
> >     /* Getting efi function pointer for getEfiTime. */
> >     machineFwG.efi.getTimeF =
> > -           (efi_get_time_t)__va(SWAP((uint64_t)rsP->GetTime));
> > +           (efi_get_time_t)__va((uint64_t)rsP->GetTime);
> >     /* Getting efi function pointer for resetSystem. */
> >     machineFwG.efi.resetSystemF =
> > -           (efi_reset_system_t)__va(SWAP((uint64_t)rsP->ResetSystem));
> > +           (efi_reset_system_t)__va((uint64_t)rsP->ResetSystem);
> >
> >     /* Scanning the Configuration table of the EfiSystemTable. */
> >     PRINT_BV("NumberOfConfigTableEntries: %ld\n",
> > -            SWAP(efiSysTableP->NumberOfTableEntries));
> > +            efiSysTableP->NumberOfTableEntries);
> >
> >     confP = (efi_configuration_table_t*)
> > -                   __va(SWAP(efiSysTableP->ConfigurationTable));
> > -   for (i = 0; i < SWAP(efiSysTableP->NumberOfTableEntries); i++) {
> > +                   __va(efiSysTableP->ConfigurationTable);
> > +   for (i = 0; i < efiSysTableP->NumberOfTableEntries; i++) {
> >             if (!efi_guid_cmp(&confP[i].VendorGuid, &sal)) {
> >                     machineFwG.ia64_sal_tableP = (sal_system_table_t*)
> > -                           __va(SWAP((uint64_t) confP[i].VendorTable));
> > +                           __va((uint64_t) confP[i].VendorTable);
> >                     PRINT_BV("  Found SalSystemTable at: 0x%lx\n",
> >                              (uint64_t) machineFwG.ia64_sal_tableP);
> >                     continue;
> >             }
> >             if (!efi_guid_cmp(&confP[i].VendorGuid, &acpi)) {
> >                     machineFwG.ia64_efi_acpi_table =
> > -                           __va(SWAP((uint64_t) confP[i].VendorTable));
> > +                           __va((uint64_t) confP[i].VendorTable);
> >                     PRINT_BV("  Found AcpiTable at:      0x%lx\n",
> >                              (uint64_t) machineFwG.ia64_efi_acpi_table);
> >                     continue;
> >             }
> >             if (!efi_guid_cmp(&confP[i].VendorGuid, &acpi20)) {
> >                     machineFwG.ia64_efi_acpi20_table =
> > -                           __va(SWAP((uint64_t) confP[i].VendorTable));
> > +                           __va((uint64_t) confP[i].VendorTable);
> >                     PRINT_BV("  Found Acpi20Table at:    0x%lx\n",
> >                              (uint64_t) machineFwG.ia64_efi_acpi20_table);
> >                     continue;
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/fw.S
> > --- a/extras/mini-os/arch/ia64/fw.S Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/fw.S Tue Nov 18 10:55:51 2008 +0100
> > @@ -155,11 +155,6 @@ ENTRY(ia64_call_efi_physical)
> >     ld8     r14=[in0],8             // function address
> >     ;;
> >     ld8     gp=[in0]                // function gp value
> > -#if defined(BIG_ENDIAN)
> > -   mux1    r14=r14,@rev            // swap because mini-os is in BE
> > -   mov     ar.rsc=3
> > -   ;;
> > -#endif
> >     mov     out0=in1
> >     mov     out1=in2
> >     mov     out2=in3
> > @@ -167,19 +162,7 @@ ENTRY(ia64_call_efi_physical)
> >     mov     out4=in5
> >     mov     b6=r14
> >     ;;
> > -#if defined(BIG_ENDIAN)
> > -   mux1    gp=gp,@rev              // swap because mini-os is in BE
> > -   rum IA64_PSR_BE
> > -   ;;
> > -#endif
> > -
> >     br.call.sptk.many rp=b6         // call EFI procedure
> > -
> > -#if defined(BIG_ENDIAN)
> > -   ;;
> > -   sum IA64_PSR_BE
> > -   mov     ar.rsc=IA64_RSE_EAGER
> > -#endif
> >     mov     gp=loc3                 // restore kernel gp
> >     mov     r14=loc2                // psr to restore mode
> >     ;;
> > @@ -227,16 +210,8 @@ 1:     mov     palret=ip               // for return 
> > address
> >     mov     b0=palret
> >     rsm     psr.i                   // disable interrupts
> >     ;;
> > -#if defined(BIG_ENDIAN)
> > -   rum     IA64_PSR_BE             // set psr.be==0
> > -   ;;
> > -#endif
> >     br.cond.sptk b6                 // call into firmware
> >     ;;
> > -#if defined(BIG_ENDIAN)
> > -   sum     IA64_PSR_BE             // set psr.be==1
> > -   ;;
> > -#endif
> >     ssm     psr.i                   // enable interrupts
> >     ;;
> >  2: mov     psr.l=psrsave
> > @@ -271,24 +246,8 @@ ENTRY(ia64_call_efi_func)
> >     ;;
> >     ld8     gp=[in0]                // function gp value
> >     ;;
> > -#if defined(BIG_ENDIAN)
> > -   mux1    r14=r14,@rev            // swap if mini-os is in BE
> > -   mux1    gp=gp,@rev              // swap if mini-os is in BE
> > -#endif
> > -   ;;
> >     mov     b6=r14
> > -
> > -#if defined(BIG_ENDIAN)
> > -   rum     IA64_PSR_BE
> > -   ;;
> > -#endif
> > -
> >     br.call.sptk.many rp=b6         // call EFI procedure
> > -
> > -#if defined(BIG_ENDIAN)
> > -   sum     IA64_PSR_BE
> > -   ;;
> > -#endif
> >
> >     mov     ar.pfs=loc0
> >     mov     gp=loc1
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/ia64.S
> > --- a/extras/mini-os/arch/ia64/ia64.S       Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/ia64.S       Tue Nov 18 10:55:51 2008 +0100
> > @@ -205,10 +205,6 @@ 1:     /* now we are in virtual mode */
> >     START_INFO_PFN_ld       r14=[r15]       // load the start_info_pfn
> >     add     r16=7, r0
> >     ;;
> > -#if defined(BIG_ENDIAN)
> > -   mux1    r14=r14,@rev            // swap because mini-os is in BE
> > -#endif
> > -   ;;
> >     shl     r15=r14,PAGE_SHIFT_XEN_16K      // pfn << PAGE_SHIFT_XEN_16K
> >     shl     r16=r16,IA64_RR_IDX_POS         // (7<<IA64_RR_IDX_POS)
> >     ;;
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/ivt.S
> > --- a/extras/mini-os/arch/ia64/ivt.S        Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/ivt.S        Tue Nov 18 10:55:51 2008 +0100
> > @@ -87,11 +87,6 @@ ENTRY(save_tf_rse_switch)
> >     ;;
> >     ld8     r21=[r21]               // XEN.ipsr
> >     ld8     r22=[r22];;             // XEN.iip
> > -#if defined(BIG_ENDIAN)
> > -   mux1    r21=r21,@rev            // swap because mini-os is in BE
> > -   mux1    r22=r22,@rev            // swap because mini-os is in BE
> > -   ;;
> > -#endif
> >     add     r19=TF_IPSR,r18
> >     add     r20=TF_IIP,r18
> >     ;;
> > @@ -129,10 +124,6 @@ ENTRY(save_tf_rse_switch)
> >     //bsw.1         // switch to bank 1 for saving these registers.
> >     movl r30=XSI_BANKNUM            // Switch to bank 1.
> >     mov r31=1;;
> > -#if defined(BIG_ENDIAN)
> > -   mux1    r31=r31,@rev            // swap because mini-os is in BE
> > -   ;;
> > -#endif
> >     st4 [r30]=r31
> >     ;;
> >     /*
> > @@ -143,38 +134,13 @@ ENTRY(save_tf_rse_switch)
> >     movl r30=XSI_BANK1_R16;
> >     movl r31=XSI_BANK1_R16+8;;
> >     ld8 r16=[r30],16; ld8 r17=[r31],16;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r16=r16,@rev; mux1 r17=r17,@rev;;
> > -#endif
> >     ld8 r18=[r30],16; ld8 r19=[r31],16;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r18=r18,@rev; mux1 r19=r19,@rev;;
> > -#endif
> >     ld8 r20=[r30],16; ld8 r21=[r31],16;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r20=r20,@rev; mux1 r21=r21,@rev;;
> > -#endif
> >     ld8 r22=[r30],16; ld8 r23=[r31],16;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r22=r22,@rev; mux1 r23=r23,@rev;;
> > -#endif
> >     ld8 r24=[r30],16; ld8 r25=[r31],16;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r24=r24,@rev; mux1 r25=r25,@rev;;
> > -#endif
> >     ld8 r26=[r30],16; ld8 r27=[r31],16;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r26=r26,@rev; mux1 r27=r27,@rev;;
> > -#endif
> >     ld8 r28=[r30],16; ld8 r29=[r31],16;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r28=r28,@rev; mux1 r29=r29,@rev;;
> > -#endif
> >     ld8 r30=[r30]; ld8 r31=[r31];;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r30=r30,@rev; mux1 r31=r31,@rev;;
> > -#endif
> > -
> >     add     r2=TF_GREG16,r14
> >     add     r3=TF_GREG17,r14
> >     ;;
> > @@ -251,10 +217,6 @@ ENTRY(save_tf_rse_switch)
> >     ;;
> >     ld8     r21=[r8]
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r21=r21,@rev
> > -   ;;
> > -#endif
> >     st8     [r19]=r21               // store cr.ifs
> >     dep.z   r22=r21,0,38            // copy ifm part from ifs.ifm
> >     ;;
> > @@ -330,12 +292,6 @@ ENTRY(restore_tf_rse_switch)
> >     ;;
> >     ld8     r21=[r19]               // load cr.ipsr
> >     ld8     r22=[r20]               // load cr.iip
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   ;;
> > -   mux1    r21=r21,@rev
> > -   mux1    r22=r22,@rev
> > -   ;;
> > -#endif
> >     movl    r16=XSI_IPSR            // XEN !!
> >     ;;
> >     st8     [r16]=r21,XSI_IIP_OFS-XSI_IPSR_OFS      // XEN.ipsr
> > @@ -353,9 +309,6 @@ ENTRY(restore_tf_rse_switch)
> >     ld8     r22=[r19]               // ndirty
> >     ;;
> >     shl     r21=r22,16              // value for ar.rsc
> > -   //mov   r19=(MOS_IA64_RSC_BE << IA64_RSC_BE)
> > -   ;;
> > -   or      r21=(MOS_IA64_RSC_BE << IA64_RSC_BE),r21
> >     ;;
> >     mov     ar.rsc=r21              // setup for loadrs
> >     ;;
> > @@ -386,10 +339,6 @@ ENTRY(restore_tf_rse_switch)
> >     ld8     r21=[r19]               // load ar.pfs
> >     ld8     r22=[r20]               // load cr.ifs
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r22=r22,@rev
> > -   ;;
> > -#endif
> >     add     r19=TF_RSC,r18
> >     mov     ar.pfs=r21
> >     st8     [r16]=r22               // XEN.ifs
> > @@ -429,10 +378,6 @@ ENTRY(restore_tf_rse_switch)
> >     // bsw.1
> >     movl r30=XSI_BANKNUM            // Switch to bank 1.
> >     mov r31=1;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r31=r31,@rev
> > -   ;;
> > -#endif
> >     st4 [r30]=r31
> >     ;;
> >     add     r2=TF_GREG16,r14
> > @@ -455,51 +400,27 @@ ENTRY(restore_tf_rse_switch)
> >     movl r2=XSI_BANK1_R16
> >     movl r3=XSI_BANK1_R16+8
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r16=r16,@rev; mux1 r17=r17,@rev;;
> > -#endif
> >     .mem.offset 0,0; st8.spill [r2]=r16,16
> >     .mem.offset 8,0; st8.spill [r3]=r17,16
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r18=r18,@rev; mux1 r19=r19,@rev;;
> > -#endif
> >     .mem.offset 0,0; st8.spill [r2]=r18,16
> >     .mem.offset 8,0; st8.spill [r3]=r19,16
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r20=r20,@rev; mux1 r21=r21,@rev;;
> > -#endif
> >     .mem.offset 0,0; st8.spill [r2]=r20,16
> >     .mem.offset 8,0; st8.spill [r3]=r21,16
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r22=r22,@rev; mux1 r23=r23,@rev;;
> > -#endif
> >     .mem.offset 0,0; st8.spill [r2]=r22,16
> >     .mem.offset 8,0; st8.spill [r3]=r23,16
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r24=r24,@rev; mux1 r25=r25,@rev;;
> > -#endif
> >     .mem.offset 0,0; st8.spill [r2]=r24,16
> >     .mem.offset 8,0; st8.spill [r3]=r25,16
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r26=r26,@rev; mux1 r27=r27,@rev;;
> > -#endif
> >     .mem.offset 0,0; st8.spill [r2]=r26,16
> >     .mem.offset 8,0; st8.spill [r3]=r27,16
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r28=r28,@rev; mux1 r29=r29,@rev;;
> > -#endif
> >     .mem.offset 0,0; st8.spill [r2]=r28,16
> >     .mem.offset 8,0; st8.spill [r3]=r29,16
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r30=r30,@rev; mux1 r31=r31,@rev;;
> > -#endif
> >     .mem.offset 0,0; st8.spill [r2]=r30,16
> >     .mem.offset 8,0; st8.spill [r3]=r31,16
> >     ;;
> > @@ -567,17 +488,11 @@ ENTRY(save_special_regs)
> >     add     loc5=TF_IFA,in0
> >     add     loc6=TF_ISR,in0
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    loc3=loc3,@rev; mux1 loc4=loc4,@rev;;
> > -#endif
> >     st8     [loc5]=loc3,TF_IIM-TF_IFA       // store cr.ifa
> >     st8     [loc6]=loc4                     // store cr.isr
> >     ;;
> >     ld8     loc3=[loc1]                     // load XEN.iim
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    loc3=loc3,@rev;;
> > -#endif
> >     st8     [loc5]=loc3                     // store cr.iim
> >     ;;
> >     mov     ar.pfs=loc0
> > @@ -605,9 +520,6 @@ ENTRY(hypervisor_callback)
> >     mov     out0=r18                // the trap frame
> >     movl    r22=XSI_PSR_IC
> >     mov     r23=1;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r23=r23,@rev;;
> > -#endif
> >     st8     [r22]=r23               // ssm psr.ic
> >     ;;
> >     br.call.sptk.few rp = do_hypervisor_callback
> > @@ -649,9 +561,6 @@ ENTRY(trap_error)
> >     ;;
> >     movl r30=XSI_BANKNUM            // bsw.1
> >     mov r31=1;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r31=r31,@rev;;
> > -#endif
> >     st4 [r30]=r31;;
> >
> >             /* Save extra interrupt registers to the trap frame. */
> > @@ -664,9 +573,6 @@ ENTRY(trap_error)
> >     ld8     r23=[r23]
> >     mov     r25=1
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r25=r25,@rev; mux1 r23=r23,@rev;;
> > -#endif
> >     st4     [r22]=r25               // ssm psr.ic
> >     st1     [r23]=r0                // ssm psr.i
> >     ;;
> > @@ -680,10 +586,6 @@ ENTRY(trap_error)
> >     ld8 r23=[r23]
> >     mov r25=1
> >     ;;
> > -#if defined(BIG_ENDIAN)                    // swap because mini-os is in BE
> > -   mux1    r25=r25,@rev;;
> > -   mux1    r25=r25,@rev; mux1 r23=r23,@rev;;
> > -#endif
> >     st1 [r23]=r25
> >     st4 [r22]=r0            // note: clears both vpsr.i and vpsr.ic!
> >     ;;
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/mm.c
> > --- a/extras/mini-os/arch/ia64/mm.c Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/mm.c Tue Nov 18 10:55:51 2008 +0100
> > @@ -153,7 +153,7 @@ map_frames_ex(unsigned long* frames, uns
> >          ASSERT(n == 1 || (stride == 0 && increment == 1));
> >          ASSERT(id == DOMID_SELF);
> >          ASSERT(prot == 0);
> > -   return (void*) __va(SWAP(frames[0]) << PAGE_SHIFT);
> > +   return (void*) __va(frames[0] << PAGE_SHIFT);
> >  }
> >
> >  void arch_init_p2m(unsigned long max_pfn)
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/sal.c
> > --- a/extras/mini-os/arch/ia64/sal.c        Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/sal.c        Tue Nov 18 10:55:51 2008 +0100
> > @@ -76,19 +76,19 @@ ia64_sal_init(struct sal_system_table *s
> >             return;
> >     }
> >     p = (uint8_t *) (saltab + 1);
> > -   for (i = 0; i < SWAP(saltab->sal_entry_count); i++) {
> > -           switch (SWAP(*p)) {
> > +   for (i = 0; i < saltab->sal_entry_count; i++) {
> > +           switch (*p) {
> >             case SAL_DESC_ENTRYPOINT:               // 0
> >             {
> >                     struct sal_entrypoint_descriptor *dp;
> >
> >                     dp = (struct sal_entrypoint_descriptor*)p;
> >                     ia64_pal_entry =
> > -                           IA64_PHYS_TO_RR7(SWAP(dp->sale_pal_proc));
> > +                           IA64_PHYS_TO_RR7(dp->sale_pal_proc);
> >                     PRINT_BV("  PAL Proc at 0x%lx\n", ia64_pal_entry);
> >                     sal_fdesc.func =
> > -                           IA64_PHYS_TO_RR7(SWAP(dp->sale_sal_proc));
> > -                   sal_fdesc.gp = IA64_PHYS_TO_RR7(SWAP(dp->sale_sal_gp));
> > +                           IA64_PHYS_TO_RR7(dp->sale_sal_proc);
> > +                   sal_fdesc.gp = IA64_PHYS_TO_RR7(dp->sale_sal_gp);
> >                     PRINT_BV("  SAL Proc at 0x%lx, GP at 0x%lx\n",
> >                              sal_fdesc.func, sal_fdesc.gp);
> >                     ia64_sal_entry = (sal_entry_t *) &sal_fdesc;
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/time.c
> > --- a/extras/mini-os/arch/ia64/time.c       Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/time.c       Tue Nov 18 10:55:51 2008 +0100
> > @@ -197,15 +197,6 @@ calculate_frequencies(void)
> >     struct ia64_pal_result pal_res;
> >
> >     pal_res = ia64_call_pal_static(PAL_FREQ_RATIOS, 0, 0, 0);
> > -   //sal_res = ia64_sal_call(SAL_FREQ_BASE, 0, 0, 0, 0, 0, 0, 0);
> > -#if defined(BIG_ENDIAN)
> > -//#warning calculate_frequencies TODO
> > -   /*
> > -    * I have to do an own function with switching psr.be!
> > -    * Currently it's running because it's a break into the hypervisor
> > -    * behind the call.!
> > -    */
> > -#endif
> >     sal_res = ia64_sal_entry(SAL_FREQ_BASE, 0, 0, 0, 0, 0, 0, 0);
> >
> >     if (sal_res.sal_status == 0 && pal_res.pal_status == 0) {
> > @@ -260,9 +251,8 @@ init_time(void)
> >     if (efi_get_time(&tm)) {
> >             printk("  EFI-Time: %d.%d.%d   %d:%d:%d\n", tm.Day,
> >                    tm.Month, tm.Year, tm.Hour, tm.Minute, tm.Second);
> > -           os_time.tv_sec = _mktime(SWAP(tm.Year), SWAP(tm.Month),
> > -                                   SWAP(tm.Day), SWAP(tm.Hour),
> > -                                   SWAP(tm.Minute), SWAP(tm.Second));
> > +           os_time.tv_sec = _mktime(tm.Year, tm.Month,
> > +                                   tm.Day, tm.Hour, tm.Minute, tm.Second);
> >             os_time.tv_nsec = tm.Nanosecond;
> >     } else
> >             printk("efi_get_time() failed\n");
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/arch/ia64/xencomm.c
> > --- a/extras/mini-os/arch/ia64/xencomm.c    Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/arch/ia64/xencomm.c    Tue Nov 18 10:55:51 2008 +0100
> > @@ -95,7 +95,7 @@ xencomm_init_desc(struct xencomm_desc *d
> >                     return -EINVAL;
> >             }
> >
> > -           desc->address[i++] = SWAP(paddr);
> > +           desc->address[i++] = paddr;
> >             recorded += chunksz;
> >     }
> >     if (recorded < bytes) {
> > @@ -106,8 +106,8 @@ xencomm_init_desc(struct xencomm_desc *d
> >
> >     /* mark remaining addresses invalid (just for safety) */
> >     while (i < desc->nr_addrs)
> > -           desc->address[i++] = SWAP(XENCOMM_INVALID);
> > -   desc->magic = SWAP(XENCOMM_MAGIC);
> > +           desc->address[i++] = XENCOMM_INVALID;
> > +   desc->magic = XENCOMM_MAGIC;
> >     return 0;
> >  }
> >
> > @@ -184,15 +184,14 @@ xencommize_mini_grant_table_op(struct xe
> >                     return -EINVAL;
> >             rc = xencomm_create_mini
> >                     (xc_area, nbr_area,
> > -                    (void*)SWAP((uint64_t)
> > -                                xen_guest_handle(setup->frame_list)),
> > -                    SWAP(setup->nr_frames)
> > +                    (void*)(uint64_t) xen_guest_handle(setup->frame_list),
> > +                    setup->nr_frames
> >                      * sizeof(*xen_guest_handle(setup->frame_list)),
> >                      &desc1);
> >             if (rc)
> >                     return rc;
> >             set_xen_guest_handle(setup->frame_list,
> > -                                (void *)SWAP((uint64_t)desc1));
> > +                                (void *)(uint64_t)desc1);
> >             break;
> >     }
> >     case GNTTABOP_dump_table:
> > @@ -284,7 +283,7 @@ HYPERVISOR_suspend(unsigned long srec)
> >  {
> >          struct sched_shutdown arg;
> >
> > -        arg.reason = (uint32_t)SWAP((uint32_t)SHUTDOWN_suspend);
> > +        arg.reason = (uint32_t)SHUTDOWN_suspend;
> >
> >          return
> > xencomm_arch_hypercall_suspend(xencomm_create_inline(&arg)); }
> > @@ -300,7 +299,7 @@ HYPERVISOR_event_channel_op(int cmd, voi
> >     if (unlikely(rc == -ENOSYS)) {
> >             struct evtchn_op op;
> >
> > -           op.cmd = SWAP(cmd);
> > +           op.cmd = cmd;
> >             memcpy(&op.u, arg, sizeof(op.u));
> >             rc = _hypercall1(int, event_channel_op_compat, &op);
> >     }
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/include/ia64/atomic.h
> > --- a/extras/mini-os/include/ia64/atomic.h  Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/include/ia64/atomic.h  Tue Nov 18 10:55:51 2008 +0100
> > @@ -427,11 +427,10 @@ static inline void
> >  static inline void
> >  set_bit(int num, volatile void *addr)
> >  {
> > -   uint32_t bit, b, old, new;
> > +   uint32_t bit, old, new;
> >     volatile uint32_t *p;
> >     p = (volatile uint32_t *) addr + (num >> 5);
> > -   b = 1 << (num & 31);
> > -   bit = SWAP(b);
> > +   bit = 1 << (num & 31);
> >     do
> >     {
> >             old = *p;
> > @@ -442,11 +441,10 @@ static __inline__ void
> >  static __inline__ void
> >  clear_bit(int num, volatile void *addr)
> >  {
> > -   uint32_t mask, m,  old, new;
> > +   uint32_t mask, old, new;
> >     volatile uint32_t *p;
> >     p = (volatile uint32_t *) addr + (num >> 5);
> > -   m = ~(1 << (num & 31));
> > -   mask = SWAP(m);
> > +   mask = ~(1 << (num & 31));
> >     do {
> >             old = *p;
> >             new = old & mask;
> > @@ -456,7 +454,7 @@ static __inline__ int
> >  static __inline__ int
> >  test_bit(int num, const volatile void *addr)
> >  {
> > -   uint32_t val = SWAP(1);
> > +   uint32_t val = 1;
> >          return val & (((const volatile uint32_t *) addr)[num >> 5] >>
> > (num & 31)); }
> >
> > @@ -468,12 +466,11 @@ static inline int
> >  static inline int
> >  test_and_set_bit (int num, volatile void *addr)
> >  {
> > -        uint32_t bit, b, old, new;
> > +        uint32_t bit, old, new;
> >          volatile uint32_t *m;
> >
> >          m = (volatile uint32_t *) addr + (num >> 5);
> > -        b = 1 << (num & 31);
> > -        bit = SWAP(b);
> > +        bit = 1 << (num & 31);
> >          do {
> >                  old = *m;
> >                  new = old | bit;
> > @@ -489,12 +486,11 @@ static
> >  static
> >  inline int test_and_clear_bit(int num, volatile unsigned long * addr)
> >  {
> > -        uint32_t bit, b, old, new;
> > +        uint32_t bit, old, new;
> >          volatile uint32_t* a;
> >
> >          a = (volatile uint32_t *) addr + (num >> 5);
> > -        b = ~(1 << (num & 31));
> > -        bit = SWAP(b);
> > +        bit = ~(1 << (num & 31));
> >          do {
> >                  old = *a;
> >                  new = old & bit;
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7
> > extras/mini-os/include/ia64/ia64_cpu.h ---
> > a/extras/mini-os/include/ia64/ia64_cpu.h    Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/include/ia64/ia64_cpu.h        Tue Nov 18 10:55:51 2008
> > +0100 @@ -134,23 +134,16 @@
> >  #define IA64_PSR_IA                0x0000200000000000
> >
> >
> > -/* Endianess of mini-os. */
> > -#if defined(BIG_ENDIAN)
> > -#define MOS_IA64_PSR_BE    IA64_PSR_BE
> > -#else
> > -#define MOS_IA64_PSR_BE    0
> > -#endif
> > -
> >  #define STARTUP_PSR (IA64_PSR_IT | IA64_PSR_PK | \
> > -                        IA64_PSR_DT | IA64_PSR_RT | MOS_IA64_PSR_BE | \
> > +                        IA64_PSR_DT | IA64_PSR_RT | \
> >                  IA64_PSR_BN | IA64_PSR_CPL_KERN | IA64_PSR_AC)
> >
> >  #define MOS_SYS_PSR (IA64_PSR_IC | IA64_PSR_I | IA64_PSR_IT | \
> > -                        IA64_PSR_DT | IA64_PSR_RT | MOS_IA64_PSR_BE | \
> > +                        IA64_PSR_DT | IA64_PSR_RT | \
> >                  IA64_PSR_BN | IA64_PSR_CPL_KERN | IA64_PSR_AC)
> >
> >  #define MOS_USR_PSR (IA64_PSR_IC | IA64_PSR_I | IA64_PSR_IT | \
> > -                        IA64_PSR_DT | IA64_PSR_RT | MOS_IA64_PSR_BE | \
> > +                        IA64_PSR_DT | IA64_PSR_RT | \
> >                  IA64_PSR_BN | IA64_PSR_CPL_USER | IA64_PSR_AC)
> >
> >  /*
> > @@ -193,14 +186,7 @@
> >  #define IA64_DCR_MBZ1_V            0xffffffffffffULL
> >
> >
> > -   /* Endianess of DCR register. */
> > -#if defined(BIG_ENDIAN)
> > -#define MOS_IA64_DCR_BE    (1 << IA64_DCR_BE)
> > -#else
> > -#define MOS_IA64_DCR_BE    (0 << IA64_DCR_BE)
> > -#endif
> > -
> > -#define IA64_DCR_DEFAULT (MOS_IA64_DCR_BE)
> > +#define IA64_DCR_DEFAULT (IA64_DCR_BE)
> >
> >  /*
> >   * Vector numbers for various ia64 interrupts.
> > @@ -262,18 +248,8 @@
> >  #define IA64_RSC_MODE_LI (0x2)             /* Load intensive */
> >  #define IA64_RSC_MODE_EA (0x3)             /* Eager */
> >
> > -/* RSE endian mode. */
> > -#if defined(BIG_ENDIAN)
> > -#define MOS_IA64_RSC_BE    1               /* Big endian rse. */
> > -#else
> > -#define MOS_IA64_RSC_BE    0               /* Little endian rse. */
> > -#endif
> > -
> > -#define IA64_RSE_EAGER ((IA64_RSC_MODE_EA<<IA64_RSC_MODE) |        \
> > -                      (MOS_IA64_RSC_BE << IA64_RSC_BE)     )
> > -
> > -#define IA64_RSE_LAZY ((IA64_RSC_MODE_LY<<IA64_RSC_MODE) | \
> > -                      (MOS_IA64_RSC_BE << IA64_RSC_BE)     )
> > +#define IA64_RSE_EAGER (IA64_RSC_MODE_EA<<IA64_RSC_MODE)
> > +#define IA64_RSE_LAZY (IA64_RSC_MODE_LY<<IA64_RSC_MODE)
> >
> >
> >
> > @@ -719,19 +695,6 @@ typedef struct trap_frame trap_frame_t;
> >   */
> >  typedef struct
> >  {
> > -#if defined(BIG_ENDIAN)
> > -   uint64_t pte_ig :11;    /* bits 53..63 */
> > -   uint64_t pte_ed :1;     /* bits 52..52 */
> > -   uint64_t pte_rv2:2;     /* bits 50..51 */
> > -   uint64_t pte_ppn:38;    /* bits 12..49 */
> > -   uint64_t pte_ar :3;     /* bits 9..11 */
> > -   uint64_t pte_pl :2;     /* bits 7..8 */
> > -   uint64_t pte_d  :1;     /* bits 6..6 */
> > -   uint64_t pte_a  :1;     /* bits 5..5 */
> > -   uint64_t pte_ma :3;     /* bits 2..4 */
> > -   uint64_t pte_rv1:1;     /* bits 1..1 */
> > -   uint64_t pte_p  :1;     /* bits 0..0 */
> > -#else
> >     uint64_t pte_p  :1;     /* bits 0..0 */
> >     uint64_t pte_rv1:1;     /* bits 1..1 */
> >     uint64_t pte_ma :3;     /* bits 2..4 */
> > @@ -743,7 +706,6 @@ typedef struct
> >     uint64_t pte_rv2:2;     /* bits 50..51 */
> >     uint64_t pte_ed :1;     /* bits 52..52 */
> >     uint64_t pte_ig :11;    /* bits 53..63 */
> > -#endif
> >  } ia64_pte_t;
> >
> >
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/include/ia64/os.h
> > --- a/extras/mini-os/include/ia64/os.h      Mon Nov 17 09:27:02 2008 +0100
> > +++ b/extras/mini-os/include/ia64/os.h      Tue Nov 18 10:55:51 2008 +0100
> > @@ -28,7 +28,6 @@
> >  #if !defined(__ASSEMBLY__)
> >
> >  #include <mini-os/types.h>
> > -#include "endian.h"
> >  #include "ia64_cpu.h"
> >  #include "atomic.h"
> >  #include "efi.h"
> > @@ -210,7 +209,7 @@ do {                                                    
> >                 \
> >  do {                                                                       
> > \
> >     vcpu_info_t *_vcpu;                                             \
> >     _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \
> > -   _vcpu->evtchn_upcall_mask = SWAP(1);                            \
> > +   _vcpu->evtchn_upcall_mask = 1;                                  \
> >     barrier();                                                      \
> >  } while (0)
> >
> > @@ -221,7 +220,7 @@ do {                                                    
> >                 \
> >     _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \
> >     _vcpu->evtchn_upcall_mask = 0;                                  \
> >     barrier(); /* unmask then check (avoid races) */                \
> > -   if (unlikely(SWAP(_vcpu->evtchn_upcall_pending)))               \
> > +   if (unlikely(_vcpu->evtchn_upcall_pending))                     \
> >             force_evtchn_callback();                                \
> >  } while (0)
> >
> > @@ -229,7 +228,7 @@ do {                                                    
> >                 \
> >  do {                                                                       
> > \
> >     vcpu_info_t *_vcpu;                                             \
> >     _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \
> > -   (x) = SWAP(_vcpu->evtchn_upcall_mask);                          \
> > +   (x) = _vcpu->evtchn_upcall_mask;                                \
> >  } while (0)
> >
> >  #define __restore_flags(x)                                         \
> > @@ -239,7 +238,7 @@ do {                                                    
> >                 \
> >     _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \
> >     if ((_vcpu->evtchn_upcall_mask = (x)) == 0) {                   \
> >             barrier(); /* unmask then check (avoid races) */        \
> > -           if ( unlikely(SWAP(_vcpu->evtchn_upcall_pending)) )     \
> > +           if ( unlikely(_vcpu->evtchn_upcall_pending) )           \
> >                     force_evtchn_callback();                        \
> >     }\
> >  } while (0)
> > @@ -250,8 +249,8 @@ do {                                                    
> >                 \
> >  do {                                                                       
> > \
> >     vcpu_info_t *_vcpu;                                             \
> >     _vcpu = &HYPERVISOR_shared_info->vcpu_info[smp_processor_id()]; \
> > -   (x) = SWAP(_vcpu->evtchn_upcall_mask);                          \
> > -   _vcpu->evtchn_upcall_mask = SWAP(1);                            \
> > +   (x) = _vcpu->evtchn_upcall_mask;                                \
> > +   _vcpu->evtchn_upcall_mask = 1;                                  \
> >     barrier();                                                      \
> >  } while (0)
> >
> > @@ -262,7 +261,7 @@ do {                                                    
> >                 \
> >  #define local_irq_enable() __sti()
> >
> >  #define irqs_disabled()                    \
> > -   SWAP(HYPERVISOR_shared_info->vcpu_info[smp_processor_id()].evtchn_upcal
> >l_mask)
> > +   (HYPERVISOR_shared_info->vcpu_info[smp_processor_id()].evtchn_upcall_ma
> >sk)
> >
> >  /* This is a barrier for the compiler only, NOT the processor! */
> >  #define barrier() __asm__ __volatile__("": : :"memory")
> > diff -r cf3b9afb8568 -r 56ecdf7c49e7 extras/mini-os/include/ia64/endian.h
> > --- a/extras/mini-os/include/ia64/endian.h  Mon Nov 17 09:27:02 2008 +0100
> > +++ /dev/null       Thu Jan 01 00:00:00 1970 +0000
> > @@ -1,75 +0,0 @@
> > -/*
> > - * Done by Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
> > - * Parts are taken from FreeBSD.
> > - *
> > -
> > *************************************************************************
> >*** - * Permission is hereby granted, free of charge, to any person
> > obtaining a copy - * of this software and associated documentation files
> > (the "Software"), to - * deal in the Software without restriction,
> > including without limitation the - * rights to use, copy, modify, merge,
> > publish, distribute, sublicense, and/or - * sell copies of the Software,
> > and to permit persons to whom the Software is - * furnished to do so,
> > subject to the following conditions:
> > - *
> > - * The above copyright notice and this permission notice shall be
> > included in - * all copies or substantial portions of the Software.
> > - *
> > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> > EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> > MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND
> > NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS
> > BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN
> > ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN
> > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE
> > SOFTWARE.
> > - */
> > -
> > -
> > -#if !defined(_ENDIAN_H_)
> > -#define _ENDIAN_H_
> > -
> > -#include <mini-os/types.h>
> > -
> > -
> > -#if !defined(__ASSEMBLY__)
> > -
> > -#if defined(BIG_ENDIAN)
> > -
> > -static __inline uint64_t
> > -__bswap64(uint64_t __x)
> > -{
> > -   uint64_t __r;
> > -   asm __volatile("mux1 %0=%1,@rev" : "=r" (__r) : "r"(__x));
> > -   return __r;
> > -}
> > -
> > -static __inline uint32_t
> > -__bswap32(uint32_t __x)
> > -{
> > -   return (__bswap64(__x) >> 32);
> > -}
> > -
> > -static __inline uint16_t
> > -__bswap16(uint16_t __x)
> > -{
> > -   return (__bswap64(__x) >> 48);
> > -}
> > -
> > -#define doswap(x,sz)  ( \
> > -   ((sz)==1)? (uint8_t)(x): \
> > -   ((sz)==2)? __bswap16(x): \
> > -   ((sz)==4)? __bswap32(x): \
> > -   ((sz)==8)? __bswap64(x): \
> > -   ~0l )
> > -
> > -#define SWAP(x)    doswap((x), sizeof((x)))
> > -
> > -
> > -#else /* defined(BIG_ENDIAN) */
> > -
> > -#define SWAP(x) (x)
> > -
> > -#endif /* defined(BIG_ENDIAN) */
> > -
> > -#endif /* !defined(__ASSEMBLY__) */
> > -
> > -
> > -#endif /* !defined(_ENDIAN_H_) */
> >
> > _______________________________________________
> > Xen-ia64-devel mailing list
> > Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-ia64-devel



_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel

<Prev in Thread] Current Thread [Next in Thread>