Revision aa941b94 hw/pxa2xx_lcd.c

b/hw/pxa2xx_lcd.c
924 924
    pxa2xx_lcdc_resize(s);
925 925
}
926 926

  
927
static void pxa2xx_lcdc_save(QEMUFile *f, void *opaque)
928
{
929
    struct pxa2xx_lcdc_s *s = (struct pxa2xx_lcdc_s *) opaque;
930
    int i;
931

  
932
    qemu_put_be32(f, s->irqlevel);
933
    qemu_put_be32(f, s->transp);
934

  
935
    for (i = 0; i < 6; i ++)
936
        qemu_put_be32s(f, &s->control[i]);
937
    for (i = 0; i < 2; i ++)
938
        qemu_put_be32s(f, &s->status[i]);
939
    for (i = 0; i < 2; i ++)
940
        qemu_put_be32s(f, &s->ovl1c[i]);
941
    for (i = 0; i < 2; i ++)
942
        qemu_put_be32s(f, &s->ovl2c[i]);
943
    qemu_put_be32s(f, &s->ccr);
944
    qemu_put_be32s(f, &s->cmdcr);
945
    qemu_put_be32s(f, &s->trgbr);
946
    qemu_put_be32s(f, &s->tcr);
947
    qemu_put_be32s(f, &s->liidr);
948
    qemu_put_8s(f, &s->bscntr);
949

  
950
    for (i = 0; i < 7; i ++) {
951
        qemu_put_betl(f, s->dma_ch[i].branch);
952
        qemu_put_byte(f, s->dma_ch[i].up);
953
        qemu_put_buffer(f, s->dma_ch[i].pbuffer, sizeof(s->dma_ch[i].pbuffer));
954

  
955
        qemu_put_betl(f, s->dma_ch[i].descriptor);
956
        qemu_put_betl(f, s->dma_ch[i].source);
957
        qemu_put_be32s(f, &s->dma_ch[i].id);
958
        qemu_put_be32s(f, &s->dma_ch[i].command);
959
    }
960
}
961

  
962
static int pxa2xx_lcdc_load(QEMUFile *f, void *opaque, int version_id)
963
{
964
    struct pxa2xx_lcdc_s *s = (struct pxa2xx_lcdc_s *) opaque;
965
    int i;
966

  
967
    s->irqlevel = qemu_get_be32(f);
968
    s->transp = qemu_get_be32(f);
969

  
970
    for (i = 0; i < 6; i ++)
971
        qemu_get_be32s(f, &s->control[i]);
972
    for (i = 0; i < 2; i ++)
973
        qemu_get_be32s(f, &s->status[i]);
974
    for (i = 0; i < 2; i ++)
975
        qemu_get_be32s(f, &s->ovl1c[i]);
976
    for (i = 0; i < 2; i ++)
977
        qemu_get_be32s(f, &s->ovl2c[i]);
978
    qemu_get_be32s(f, &s->ccr);
979
    qemu_get_be32s(f, &s->cmdcr);
980
    qemu_get_be32s(f, &s->trgbr);
981
    qemu_get_be32s(f, &s->tcr);
982
    qemu_get_be32s(f, &s->liidr);
983
    qemu_get_8s(f, &s->bscntr);
984

  
985
    for (i = 0; i < 7; i ++) {
986
        s->dma_ch[i].branch = qemu_get_betl(f);
987
        s->dma_ch[i].up = qemu_get_byte(f);
988
        qemu_get_buffer(f, s->dma_ch[i].pbuffer, sizeof(s->dma_ch[i].pbuffer));
989

  
990
        s->dma_ch[i].descriptor = qemu_get_betl(f);
991
        s->dma_ch[i].source = qemu_get_betl(f);
992
        qemu_get_be32s(f, &s->dma_ch[i].id);
993
        qemu_get_be32s(f, &s->dma_ch[i].command);
994
    }
995

  
996
    s->bpp = LCCR3_BPP(s->control[3]);
997
    s->xres = s->yres = s->pal_for = -1;
998

  
999
    return 0;
1000
}
1001

  
927 1002
#define BITS 8
928 1003
#include "pxa2xx_template.h"
929 1004
#define BITS 15
......
989 1064
        fprintf(stderr, "%s: Bad color depth\n", __FUNCTION__);
990 1065
        exit(1);
991 1066
    }
1067

  
1068
    register_savevm("pxa2xx_lcdc", 0, 0,
1069
                    pxa2xx_lcdc_save, pxa2xx_lcdc_load, s);
1070

  
992 1071
    return s;
993 1072
}
994 1073

  

Also available in: Unified diff