1. 25 7月, 2011 1 次提交
    • G
      m68k: merge mmu and non-mmu bitops.h · 171d809d
      Greg Ungerer 提交于
      The following patch merges the mmu and non-mmu versions of the m68k
      bitops.h files. Now there is a good deal of difference between the two
      files, but none of it is actually an mmu specific difference. It is
      all about the specific m68k/coldfire varient we are targeting. So it
      makes an awful lot of sense to merge these into a single bitops.h.
      
      There is a number of ways I can see to factor this code. The approach
      I have taken here is to keep the various versions of each macro/function
      type together. This means that there is some ifdefery with each to handle
      each CPU type.
      
      I have added some comments in a couple of appropriate places to try
      and make it clear what the differences we are dealing with are.
      Specifically the instruction and addressing mode differences we have
      to deal with.
      
      The merged form keeps the same underlying optimizations for each CPU
      type for all the general bit clear/set/change and find bit operations.
      It does switch to using the generic le operations though, instead of
      any local varients.
      
      Build tested on ColdFire, 68328, 68360 (which is cpu32) and 68020+.
      Run tested on ColdFire and ARAnyM.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      Acked-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      171d809d
  2. 16 1月, 2009 1 次提交
    • S
      m68k,m68knommu: merge header files · 49148020
      Sam Ravnborg 提交于
      Merge header files for m68k and m68knommu to the single location:
      
          arch/m68k/include/asm
      
      The majority of this patch was the result of the
      script that is included in the changelog below.
      
      The script was originally written by Arnd Bergman and
      exten by me to cover a few more files.
      
      When the header files differed the script uses the following:
      
      The original m68k file is named <file>_mm.h  [mm for memory manager]
      The m68knommu file is named <file>_no.h [no for no memory manager]
      
      The files uses the following include guard:
      
      This include gaurd works as the m68knommu toolchain set
      the __uClinux__ symbol - so this should work in userspace too.
      
      Merging the header files for m68k and m68knommu exposes the
      (unexpected?) ABI differences thus it is easier to actually
      identify these and thus to fix them.
      
      The commit has been build tested with both a m68k and
      a m68knommu toolchain - with success.
      
      The commit has also been tested with "make headers_check"
      and this patch fixes make headers_check for m68knommu.
      
      The script used:
      TARGET=arch/m68k/include/asm
      SOURCE=arch/m68knommu/include/asm
      
      INCLUDE="cachectl.h errno.h fcntl.h hwtest.h ioctls.h ipcbuf.h \
      linkage.h math-emu.h md.h mman.h movs.h msgbuf.h openprom.h \
      oplib.h poll.h posix_types.h resource.h rtc.h sembuf.h shmbuf.h \
      shm.h shmparam.h socket.h sockios.h spinlock.h statfs.h stat.h \
      termbits.h termios.h tlb.h types.h user.h"
      
      EQUAL="auxvec.h cputime.h device.h emergency-restart.h futex.h \
      ioctl.h irq_regs.h kdebug.h local.h mutex.h percpu.h \
      sections.h topology.h"
      
      NOMUUFILES="anchor.h bootstd.h coldfire.h commproc.h dbg.h \
      elia.h flat.h m5206sim.h m520xsim.h m523xsim.h m5249sim.h \
      m5272sim.h m527xsim.h m528xsim.h m5307sim.h m532xsim.h \
      m5407sim.h m68360_enet.h m68360.h m68360_pram.h m68360_quicc.h \
      m68360_regs.h MC68328.h MC68332.h MC68EZ328.h MC68VZ328.h \
      mcfcache.h mcfdma.h mcfmbus.h mcfne.h mcfpci.h mcfpit.h \
      mcfsim.h mcfsmc.h mcftimer.h mcfuart.h mcfwdebug.h \
      nettel.h quicc_simple.h smp.h"
      
      FILES="atomic.h bitops.h bootinfo.h bug.h bugs.h byteorder.h cache.h \
      cacheflush.h checksum.h current.h delay.h div64.h \
      dma-mapping.h dma.h elf.h entry.h fb.h fpu.h hardirq.h hw_irq.h io.h \
      irq.h kmap_types.h machdep.h mc146818rtc.h mmu.h mmu_context.h \
      module.h page.h page_offset.h param.h pci.h pgalloc.h \
      pgtable.h processor.h ptrace.h scatterlist.h segment.h \
      setup.h sigcontext.h siginfo.h signal.h string.h system.h swab.h \
      thread_info.h timex.h tlbflush.h traps.h uaccess.h ucontext.h \
      unaligned.h unistd.h"
      
      mergefile() {
      	BASE=${1%.h}
      	git mv ${SOURCE}/$1 ${TARGET}/${BASE}_no.h
      	git mv ${TARGET}/$1 ${TARGET}/${BASE}_mm.h
      
      cat << EOF > ${TARGET}/$1
      EOF
      
      	git add ${TARGET}/$1
      }
      
      set -e
      
      mkdir -p ${TARGET}
      
      git mv include/asm-m68k/* ${TARGET}
      rmdir include/asm-m68k
      
      git rm ${SOURCE}/Kbuild
      for F in $INCLUDE $EQUAL; do
      	git rm ${SOURCE}/$F
      done
      
      for F in $NOMUUFILES; do
      	git mv ${SOURCE}/$F ${TARGET}/$F
      done
      
      for F in $FILES ; do
      	mergefile $F
      done
      
      rmdir arch/m68knommu/include/asm
      rmdir arch/m68knommu/include
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      49148020