#!/bin/sh

for arch in `find . -maxdepth 1 -name "target-*" | cut -d- -f2 | sort`; do
    case $arch in
    "alpha") dest=CPUAlphaState ;;
    "arm") dest=CPUARMState ;;
    "cris") dest=CPUCRISState ;;
    "i386") dest=CPUX86State ;;
    "lm32") dest=CPULM32State ;;
    "m68k") dest=CPUM68KState ;;
    "microblaze") dest=CPUMBState ;;
    "mips") dest=CPUMIPSState ;;
    "ppc") dest=CPUPPCState ;;
    "s390x") dest=CPUS390XState ;;
    "sh4") dest=CPUSH4State ;;
    "sparc") dest=CPUSPARCState ;;
    "unicore32") dest=CPUUniCore32State ;;
    "xtensa") dest=CPUXtensaState ;;
    esac
    sed --in-place "s/CPUState/$dest/g" target-$arch/*.[hc]
    sed --in-place "s/#define $dest/#define CPUState/" target-$arch/cpu.h
    git commit --all --no-verify --file=- <<EOM
target-$arch: Don't overuse CPUState

Scripted conversion:
  sed -i "s/CPUState/$dest/g" target-$arch/*.[hc]
  sed -i "s/#define $dest/#define CPUState/" target-$arch/cpu.h

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM
done

for arch in arm m68k xtensa; do
    case $arch in
    "arm") dest=CPUARMState ;;
    "m68k") dest=CPUM68KState ;;
    "xtensa") dest=CPUXtensaState ;;
    esac
    sed --in-place "s/CPUState/$dest/g" $arch-semi.c
    git commit --all --no-verify --file=- <<EOM
$arch-semi: Don't use CPUState

Scripted conversion:
  sed -i "s/CPUState/$dest/g" $arch-semi.c

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM
done

INPUTS="hw/alpha_*.[hc]"

sed --in-place "s/CPUState/CPUAlphaState/g" $INPUTS
git commit --all --no-verify --file=- <<EOM
alpha hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUAlphaState/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/arm-misc.h hw/arm_boot.c hw/arm_pic.c"
INPUTS="$INPUTS hw/armv7m.c hw/exynos4210.h hw/highbank.c hw/integratorcp.c hw/musicpal.c"
INPUTS="$INPUTS hw/omap.h hw/pxa.h hw/pxa2xx_gpio.c hw/pxa2xx_pic.c hw/realview.c"
INPUTS="$INPUTS hw/strongarm.h hw/versatilepb.c hw/vexpress.c "
INPUTS="$INPUTS hw/xilinx_zynq.c "

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUARMState/g" $file
done
git commit --all --no-verify --file=- <<EOM
arm hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUARMState/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/cris-boot.[hc] hw/cris_pic_cpu.c hw/axis_dev88.c hw/etraxfs.h hw/etraxfs_ser.c"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUCRISState/g" $file
done
git commit --all --no-verify --file=- <<EOM
cris hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUCRISState/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/apic.h hw/kvm/apic.c hw/kvmvapic.c hw/pc.c hw/vmport.c hw/xen_machine_pv.c"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUX86State/g" $file
done
git commit --all --no-verify --file=- <<EOM
i386 hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUX86State/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/lm32_boards.c hw/milkymist.c"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPULM32State/g" $file
done
git commit --all --no-verify --file=- <<EOM
lm32 hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPULM32State/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/an5206.c hw/dummy_m68k.c hw/mcf.h hw/mcf5206.c hw/mcf5208.c hw/mcf_intc.c"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUM68KState/g" $file
done
git commit --all --no-verify --file=- <<EOM
m68k hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUM68KState/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/microblaze_*.[hc]"
INPUTS="$INPUTS hw/petalogix_ml605_mmu.c hw/petalogix_s3adsp1800_mmu.c"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUMBState/g" $file
done
git commit --all --no-verify --file=- <<EOM
microblaze hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUMBState/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/mips_*.[hc]"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUMIPSState/g" $file
done
git commit --all --no-verify --file=- <<EOM
mips hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUMIPSState/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/ppc*.[hc] hw/mpc8544_guts.c hw/spapr*.[hc] hw/virtex_ml507.c hw/xics.c"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUPPCState/g" $file
done
git commit --all --no-verify --file=- <<EOM
ppc hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUPPCState/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/s390-*.[hc]"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUS390XState/g" $file
done
git commit --all --no-verify --file=- <<EOM
s390x hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUS390XState/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/sh.h hw/shix.c hw/r2d.c"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUSH4State/g" $file
done
git commit --all --no-verify --file=- <<EOM
sh4 hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUSH4State/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/sun4m.c hw/sun4u.c hw/grlib.h hw/leon3.c"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUSPARCState/g" $file
done
git commit --all --no-verify --file=- <<EOM
sparc hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUSPARCState/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

INPUTS="hw/xtensa_*.[hc]"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUXtensaState/g" $file
done
git commit --all --no-verify --file=- <<EOM
xtensa hw/: Don't use CPUState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUXtensaState/g" \$file
  done

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Anthony Liguori <aliguori@us.ibm.com>
EOM

#exit

INPUTS="*.[hc] hw/*.[hc] hw/kvm/*.[hc]"
INPUTS="$INPUTS linux-user/*.[hc] linux-user/m68k/*.[hc]"
INPUTS="$INPUTS bsd-user/*.[hc]"
INPUTS="$INPUTS darwin-user/*.[hc]"
INPUTS="$INPUTS tcg/*/*.[hc]"
INPUTS="$INPUTS target-*/cpu.h"

for file in $INPUTS; do
    sed --in-place "s/CPUState/CPUArchState/g" $file
done
git commit --all --no-verify --file=- <<EOM
Rename CPUState -> CPUArchState

Scripted conversion:
  for file in $INPUTS; do
    sed -i "s/CPUState/CPUArchState/g" \$file
  done

All occurrences of CPUArchState are expected to be replaced by QOM CPUState,
once all targets are QOM'ified and common fields have been extracted.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
EOM
