[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] [PATCH]minios: remove big endian stuff
Applied, thanks. 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. > > 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_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 -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 -- yamahata _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |