Commit 0e1f5a0c495dd7a5c72c9321a29541bdde8f423a

Authored by aliguori
1 parent cab3bee2

Introduce accessors for DisplayState (Stefano Stabellini)

Introducing some accessors:

ds_get_linesize
ds_get_bits_per_pixel
ds_get_width
ds_get_height
ds_get_data

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5789 c046a42c-6fe2-441c-8c8c-71466251a162
console.c
@@ -190,7 +190,7 @@ static unsigned int vga_get_color(DisplayState *ds, unsigned int rgba) @@ -190,7 +190,7 @@ static unsigned int vga_get_color(DisplayState *ds, unsigned int rgba)
190 { 190 {
191 unsigned int r, g, b, color; 191 unsigned int r, g, b, color;
192 192
193 - switch(ds->depth) { 193 + switch(ds_get_bits_per_pixel(ds)) {
194 #if 0 194 #if 0
195 case 8: 195 case 8:
196 r = (rgba >> 16) & 0xff; 196 r = (rgba >> 16) & 0xff;
@@ -227,9 +227,9 @@ static void vga_fill_rect (DisplayState *ds, @@ -227,9 +227,9 @@ static void vga_fill_rect (DisplayState *ds,
227 uint8_t *d, *d1; 227 uint8_t *d, *d1;
228 int x, y, bpp; 228 int x, y, bpp;
229 229
230 - bpp = (ds->depth + 7) >> 3;  
231 - d1 = ds->data +  
232 - ds->linesize * posy + bpp * posx; 230 + bpp = (ds_get_bits_per_pixel(ds) + 7) >> 3;
  231 + d1 = ds_get_data(ds) +
  232 + ds_get_linesize(ds) * posy + bpp * posx;
233 for (y = 0; y < height; y++) { 233 for (y = 0; y < height; y++) {
234 d = d1; 234 d = d1;
235 switch(bpp) { 235 switch(bpp) {
@@ -252,7 +252,7 @@ static void vga_fill_rect (DisplayState *ds, @@ -252,7 +252,7 @@ static void vga_fill_rect (DisplayState *ds,
252 } 252 }
253 break; 253 break;
254 } 254 }
255 - d1 += ds->linesize; 255 + d1 += ds_get_linesize(ds);
256 } 256 }
257 } 257 }
258 258
@@ -263,27 +263,27 @@ static void vga_bitblt(DisplayState *ds, int xs, int ys, int xd, int yd, int w, @@ -263,27 +263,27 @@ static void vga_bitblt(DisplayState *ds, int xs, int ys, int xd, int yd, int w,
263 uint8_t *d; 263 uint8_t *d;
264 int wb, y, bpp; 264 int wb, y, bpp;
265 265
266 - bpp = (ds->depth + 7) >> 3; 266 + bpp = (ds_get_bits_per_pixel(ds) + 7) >> 3;
267 wb = w * bpp; 267 wb = w * bpp;
268 if (yd <= ys) { 268 if (yd <= ys) {
269 - s = ds->data +  
270 - ds->linesize * ys + bpp * xs;  
271 - d = ds->data +  
272 - ds->linesize * yd + bpp * xd; 269 + s = ds_get_data(ds) +
  270 + ds_get_linesize(ds) * ys + bpp * xs;
  271 + d = ds_get_data(ds) +
  272 + ds_get_linesize(ds) * yd + bpp * xd;
273 for (y = 0; y < h; y++) { 273 for (y = 0; y < h; y++) {
274 memmove(d, s, wb); 274 memmove(d, s, wb);
275 - d += ds->linesize;  
276 - s += ds->linesize; 275 + d += ds_get_linesize(ds);
  276 + s += ds_get_linesize(ds);
277 } 277 }
278 } else { 278 } else {
279 - s = ds->data +  
280 - ds->linesize * (ys + h - 1) + bpp * xs;  
281 - d = ds->data +  
282 - ds->linesize * (yd + h - 1) + bpp * xd; 279 + s = ds_get_data(ds) +
  280 + ds_get_linesize(ds) * (ys + h - 1) + bpp * xs;
  281 + d = ds_get_data(ds) +
  282 + ds_get_linesize(ds) * (yd + h - 1) + bpp * xd;
283 for (y = 0; y < h; y++) { 283 for (y = 0; y < h; y++) {
284 memmove(d, s, wb); 284 memmove(d, s, wb);
285 - d -= ds->linesize;  
286 - s -= ds->linesize; 285 + d -= ds_get_linesize(ds);
  286 + s -= ds_get_linesize(ds);
287 } 287 }
288 } 288 }
289 } 289 }
@@ -373,7 +373,7 @@ static const uint32_t color_table_rgb[2][8] = { @@ -373,7 +373,7 @@ static const uint32_t color_table_rgb[2][8] = {
373 373
374 static inline unsigned int col_expand(DisplayState *ds, unsigned int col) 374 static inline unsigned int col_expand(DisplayState *ds, unsigned int col)
375 { 375 {
376 - switch(ds->depth) { 376 + switch(ds_get_bits_per_pixel(ds)) {
377 case 8: 377 case 8:
378 col |= col << 8; 378 col |= col << 8;
379 col |= col << 16; 379 col |= col << 16;
@@ -443,13 +443,13 @@ static void vga_putcharxy(DisplayState *ds, int x, int y, int ch, @@ -443,13 +443,13 @@ static void vga_putcharxy(DisplayState *ds, int x, int y, int ch,
443 bgcol = color_table[t_attrib->bold][t_attrib->bgcol]; 443 bgcol = color_table[t_attrib->bold][t_attrib->bgcol];
444 } 444 }
445 445
446 - bpp = (ds->depth + 7) >> 3;  
447 - d = ds->data +  
448 - ds->linesize * y * FONT_HEIGHT + bpp * x * FONT_WIDTH;  
449 - linesize = ds->linesize; 446 + bpp = (ds_get_bits_per_pixel(ds) + 7) >> 3;
  447 + d = ds_get_data(ds) +
  448 + ds_get_linesize(ds) * y * FONT_HEIGHT + bpp * x * FONT_WIDTH;
  449 + linesize = ds_get_linesize(ds);
450 font_ptr = vgafont16 + FONT_HEIGHT * ch; 450 font_ptr = vgafont16 + FONT_HEIGHT * ch;
451 xorcol = bgcol ^ fgcol; 451 xorcol = bgcol ^ fgcol;
452 - switch(ds->depth) { 452 + switch(ds_get_bits_per_pixel(ds)) {
453 case 8: 453 case 8:
454 for(i = 0; i < FONT_HEIGHT; i++) { 454 for(i = 0; i < FONT_HEIGHT; i++) {
455 font_data = *font_ptr++; 455 font_data = *font_ptr++;
@@ -543,7 +543,7 @@ static void update_xy(TextConsole *s, int x, int y) @@ -543,7 +543,7 @@ static void update_xy(TextConsole *s, int x, int y)
543 int y1, y2; 543 int y1, y2;
544 544
545 if (s == active_console) { 545 if (s == active_console) {
546 - if (!s->ds->depth) { 546 + if (!ds_get_bits_per_pixel(s->ds)) {
547 text_update_xy(s, x, y); 547 text_update_xy(s, x, y);
548 return; 548 return;
549 } 549 }
@@ -570,7 +570,7 @@ static void console_show_cursor(TextConsole *s, int show) @@ -570,7 +570,7 @@ static void console_show_cursor(TextConsole *s, int show)
570 if (s == active_console) { 570 if (s == active_console) {
571 int x = s->x; 571 int x = s->x;
572 572
573 - if (!s->ds->depth) { 573 + if (!ds_get_bits_per_pixel(s->ds)) {
574 s->cursor_invalidate = 1; 574 s->cursor_invalidate = 1;
575 return; 575 return;
576 } 576 }
@@ -604,7 +604,7 @@ static void console_refresh(TextConsole *s) @@ -604,7 +604,7 @@ static void console_refresh(TextConsole *s)
604 604
605 if (s != active_console) 605 if (s != active_console)
606 return; 606 return;
607 - if (!s->ds->depth) { 607 + if (!ds_get_bits_per_pixel(s->ds)) {
608 s->text_x[0] = 0; 608 s->text_x[0] = 0;
609 s->text_y[0] = 0; 609 s->text_y[0] = 0;
610 s->text_x[1] = s->width - 1; 610 s->text_x[1] = s->width - 1;
@@ -613,7 +613,7 @@ static void console_refresh(TextConsole *s) @@ -613,7 +613,7 @@ static void console_refresh(TextConsole *s)
613 return; 613 return;
614 } 614 }
615 615
616 - vga_fill_rect(s->ds, 0, 0, s->ds->width, s->ds->height, 616 + vga_fill_rect(s->ds, 0, 0, ds_get_width(s->ds), ds_get_height(s->ds),
617 color_table[0][COLOR_BLACK]); 617 color_table[0][COLOR_BLACK]);
618 y1 = s->y_displayed; 618 y1 = s->y_displayed;
619 for(y = 0; y < s->height; y++) { 619 for(y = 0; y < s->height; y++) {
@@ -626,7 +626,7 @@ static void console_refresh(TextConsole *s) @@ -626,7 +626,7 @@ static void console_refresh(TextConsole *s)
626 if (++y1 == s->total_height) 626 if (++y1 == s->total_height)
627 y1 = 0; 627 y1 = 0;
628 } 628 }
629 - dpy_update(s->ds, 0, 0, s->ds->width, s->ds->height); 629 + dpy_update(s->ds, 0, 0, ds_get_width(s->ds), ds_get_height(s->ds));
630 console_show_cursor(s, 1); 630 console_show_cursor(s, 1);
631 } 631 }
632 632
@@ -689,7 +689,7 @@ static void console_put_lf(TextConsole *s) @@ -689,7 +689,7 @@ static void console_put_lf(TextConsole *s)
689 c++; 689 c++;
690 } 690 }
691 if (s == active_console && s->y_displayed == s->y_base) { 691 if (s == active_console && s->y_displayed == s->y_base) {
692 - if (!s->ds->depth) { 692 + if (!ds_get_bits_per_pixel(s->ds)) {
693 s->text_x[0] = 0; 693 s->text_x[0] = 0;
694 s->text_y[0] = 0; 694 s->text_y[0] = 0;
695 s->text_x[1] = s->width - 1; 695 s->text_x[1] = s->width - 1;
@@ -1048,7 +1048,7 @@ void console_select(unsigned int index) @@ -1048,7 +1048,7 @@ void console_select(unsigned int index)
1048 if (s) { 1048 if (s) {
1049 active_console = s; 1049 active_console = s;
1050 if (s->console_type != TEXT_CONSOLE && s->g_width && s->g_height 1050 if (s->console_type != TEXT_CONSOLE && s->g_width && s->g_height
1051 - && (s->g_width != s->ds->width || s->g_height != s->ds->height)) 1051 + && (s->g_width != ds_get_width(s->ds) || s->g_height != ds_get_height(s->ds)))
1052 dpy_resize(s->ds, s->g_width, s->g_height); 1052 dpy_resize(s->ds, s->g_width, s->g_height);
1053 vga_hw_invalidate(); 1053 vga_hw_invalidate();
1054 } 1054 }
@@ -1158,12 +1158,12 @@ static void text_console_invalidate(void *opaque) @@ -1158,12 +1158,12 @@ static void text_console_invalidate(void *opaque)
1158 { 1158 {
1159 TextConsole *s = (TextConsole *) opaque; 1159 TextConsole *s = (TextConsole *) opaque;
1160 1160
1161 - if (s->g_width != s->ds->width || s->g_height != s->ds->height) { 1161 + if (s->g_width != ds_get_width(s->ds) || s->g_height != ds_get_height(s->ds)) {
1162 if (s->console_type == TEXT_CONSOLE_FIXED_SIZE) 1162 if (s->console_type == TEXT_CONSOLE_FIXED_SIZE)
1163 dpy_resize(s->ds, s->g_width, s->g_height); 1163 dpy_resize(s->ds, s->g_width, s->g_height);
1164 else { 1164 else {
1165 - s->g_width = s->ds->width;  
1166 - s->g_height = s->ds->height; 1165 + s->g_width = ds_get_width(s->ds);
  1166 + s->g_height = ds_get_height(s->ds);
1167 text_console_resize(s); 1167 text_console_resize(s);
1168 } 1168 }
1169 } 1169 }
@@ -1302,8 +1302,8 @@ CharDriverState *text_console_init(DisplayState *ds, const char *p) @@ -1302,8 +1302,8 @@ CharDriverState *text_console_init(DisplayState *ds, const char *p)
1302 s->total_height = DEFAULT_BACKSCROLL; 1302 s->total_height = DEFAULT_BACKSCROLL;
1303 s->x = 0; 1303 s->x = 0;
1304 s->y = 0; 1304 s->y = 0;
1305 - width = s->ds->width;  
1306 - height = s->ds->height; 1305 + width = ds_get_width(s->ds);
  1306 + height = ds_get_height(s->ds);
1307 if (p != 0) { 1307 if (p != 0) {
1308 width = strtoul(p, (char **)&p, 10); 1308 width = strtoul(p, (char **)&p, 10);
1309 if (*p == 'C') { 1309 if (*p == 'C') {
@@ -1347,7 +1347,7 @@ CharDriverState *text_console_init(DisplayState *ds, const char *p) @@ -1347,7 +1347,7 @@ CharDriverState *text_console_init(DisplayState *ds, const char *p)
1347 void qemu_console_resize(QEMUConsole *console, int width, int height) 1347 void qemu_console_resize(QEMUConsole *console, int width, int height)
1348 { 1348 {
1349 if (console->g_width != width || console->g_height != height 1349 if (console->g_width != width || console->g_height != height
1350 - || !console->ds->data) { 1350 + || !ds_get_data(console->ds)) {
1351 console->g_width = width; 1351 console->g_width = width;
1352 console->g_height = height; 1352 console->g_height = height;
1353 if (active_console == console) { 1353 if (active_console == console) {
console.h
@@ -114,6 +114,31 @@ static inline void dpy_cursor(DisplayState *s, int x, int y) @@ -114,6 +114,31 @@ static inline void dpy_cursor(DisplayState *s, int x, int y)
114 s->dpy_text_cursor(s, x, y); 114 s->dpy_text_cursor(s, x, y);
115 } 115 }
116 116
  117 +static inline int ds_get_linesize(DisplayState *ds)
  118 +{
  119 + return ds->linesize;
  120 +}
  121 +
  122 +static inline uint8_t* ds_get_data(DisplayState *ds)
  123 +{
  124 + return ds->data;
  125 +}
  126 +
  127 +static inline int ds_get_width(DisplayState *ds)
  128 +{
  129 + return ds->width;
  130 +}
  131 +
  132 +static inline int ds_get_height(DisplayState *ds)
  133 +{
  134 + return ds->height;
  135 +}
  136 +
  137 +static inline int ds_get_bits_per_pixel(DisplayState *ds)
  138 +{
  139 + return ds->depth;
  140 +}
  141 +
117 typedef unsigned long console_ch_t; 142 typedef unsigned long console_ch_t;
118 static inline void console_write_ch(console_ch_t *dest, uint32_t ch) 143 static inline void console_write_ch(console_ch_t *dest, uint32_t ch)
119 { 144 {
hw/blizzard.c
@@ -166,7 +166,7 @@ static void blizzard_window(struct blizzard_s *s) @@ -166,7 +166,7 @@ static void blizzard_window(struct blizzard_s *s)
166 s->my[1] = s->data.y + s->data.dy; 166 s->my[1] = s->data.y + s->data.dy;
167 167
168 bypp[0] = s->bpp; 168 bypp[0] = s->bpp;
169 - bypp[1] = (s->state->depth + 7) >> 3; 169 + bypp[1] = (ds_get_bits_per_pixel(s->state) + 7) >> 3;
170 bypl[0] = bypp[0] * s->data.pitch; 170 bypl[0] = bypp[0] * s->data.pitch;
171 bypl[1] = bypp[1] * s->x; 171 bypl[1] = bypp[1] * s->x;
172 bypl[2] = bypp[0] * s->data.dx; 172 bypl[2] = bypp[0] * s->data.dx;
@@ -895,7 +895,7 @@ static void blizzard_update_display(void *opaque) @@ -895,7 +895,7 @@ static void blizzard_update_display(void *opaque)
895 if (!s->enable) 895 if (!s->enable)
896 return; 896 return;
897 897
898 - if (s->x != s->state->width || s->y != s->state->height) { 898 + if (s->x != ds_get_width(s->state) || s->y != ds_get_height(s->state)) {
899 s->invalidate = 1; 899 s->invalidate = 1;
900 qemu_console_resize(s->console, s->x, s->y); 900 qemu_console_resize(s->console, s->x, s->y);
901 } 901 }
@@ -904,8 +904,8 @@ static void blizzard_update_display(void *opaque) @@ -904,8 +904,8 @@ static void blizzard_update_display(void *opaque)
904 s->invalidate = 0; 904 s->invalidate = 0;
905 905
906 if (s->blank) { 906 if (s->blank) {
907 - bypp = (s->state->depth + 7) >> 3;  
908 - memset(s->state->data, 0, bypp * s->x * s->y); 907 + bypp = (ds_get_bits_per_pixel(s->state) + 7) >> 3;
  908 + memset(ds_get_data(s->state), 0, bypp * s->x * s->y);
909 return; 909 return;
910 } 910 }
911 911
@@ -918,12 +918,12 @@ static void blizzard_update_display(void *opaque) @@ -918,12 +918,12 @@ static void blizzard_update_display(void *opaque)
918 if (s->mx[1] <= s->mx[0]) 918 if (s->mx[1] <= s->mx[0])
919 return; 919 return;
920 920
921 - bypp = (s->state->depth + 7) >> 3; 921 + bypp = (ds_get_bits_per_pixel(s->state) + 7) >> 3;
922 bypl = bypp * s->x; 922 bypl = bypp * s->x;
923 bwidth = bypp * (s->mx[1] - s->mx[0]); 923 bwidth = bypp * (s->mx[1] - s->mx[0]);
924 y = s->my[0]; 924 y = s->my[0];
925 src = s->fb + bypl * y + bypp * s->mx[0]; 925 src = s->fb + bypl * y + bypp * s->mx[0];
926 - dst = s->state->data + bypl * y + bypp * s->mx[0]; 926 + dst = ds_get_data(s->state) + bypl * y + bypp * s->mx[0];
927 for (; y < s->my[1]; y ++, src += bypl, dst += bypl) 927 for (; y < s->my[1]; y ++, src += bypl, dst += bypl)
928 memcpy(dst, src, bwidth); 928 memcpy(dst, src, bwidth);
929 929
@@ -940,8 +940,8 @@ static void blizzard_screen_dump(void *opaque, const char *filename) { @@ -940,8 +940,8 @@ static void blizzard_screen_dump(void *opaque, const char *filename) {
940 struct blizzard_s *s = (struct blizzard_s *) opaque; 940 struct blizzard_s *s = (struct blizzard_s *) opaque;
941 941
942 blizzard_update_display(opaque); 942 blizzard_update_display(opaque);
943 - if (s && s->state->data)  
944 - ppm_save(filename, s->state->data, s->x, s->y, s->state->linesize); 943 + if (s && ds_get_data(s->state))
  944 + ppm_save(filename, ds_get_data(s->state), s->x, s->y, ds_get_linesize(s->state));
945 } 945 }
946 946
947 #define DEPTH 8 947 #define DEPTH 8
@@ -962,7 +962,7 @@ void *s1d13745_init(qemu_irq gpio_int, DisplayState *ds) @@ -962,7 +962,7 @@ void *s1d13745_init(qemu_irq gpio_int, DisplayState *ds)
962 s->state = ds; 962 s->state = ds;
963 s->fb = qemu_malloc(0x180000); 963 s->fb = qemu_malloc(0x180000);
964 964
965 - switch (s->state->depth) { 965 + switch (ds_get_bits_per_pixel(s->state)) {
966 case 0: 966 case 0:
967 s->line_fn_tab[0] = s->line_fn_tab[1] = 967 s->line_fn_tab[0] = s->line_fn_tab[1] =
968 qemu_mallocz(sizeof(blizzard_fn_t) * 0x10); 968 qemu_mallocz(sizeof(blizzard_fn_t) * 0x10);
hw/cirrus_vga.c
@@ -2321,9 +2321,9 @@ static void cirrus_cursor_draw_line(VGAState *s1, uint8_t *d1, int scr_y) @@ -2321,9 +2321,9 @@ static void cirrus_cursor_draw_line(VGAState *s1, uint8_t *d1, int scr_y)
2321 color1 = s->rgb_to_pixel(c6_to_8(palette[0xf * 3]), 2321 color1 = s->rgb_to_pixel(c6_to_8(palette[0xf * 3]),
2322 c6_to_8(palette[0xf * 3 + 1]), 2322 c6_to_8(palette[0xf * 3 + 1]),
2323 c6_to_8(palette[0xf * 3 + 2])); 2323 c6_to_8(palette[0xf * 3 + 2]));
2324 - bpp = ((s->ds->depth + 7) >> 3); 2324 + bpp = ((ds_get_bits_per_pixel(s->ds) + 7) >> 3);
2325 d1 += x1 * bpp; 2325 d1 += x1 * bpp;
2326 - switch(s->ds->depth) { 2326 + switch(ds_get_bits_per_pixel(s->ds)) {
2327 default: 2327 default:
2328 break; 2328 break;
2329 case 8: 2329 case 8:
hw/g364fb.c
@@ -72,7 +72,7 @@ typedef struct G364State { @@ -72,7 +72,7 @@ typedef struct G364State {
72 72
73 static void g364fb_draw_graphic(G364State *s, int full_update) 73 static void g364fb_draw_graphic(G364State *s, int full_update)
74 { 74 {
75 - switch (s->ds->depth) { 75 + switch (ds_get_bits_per_pixel(s->ds)) {
76 case 8: 76 case 8:
77 g364fb_draw_graphic8(s, full_update); 77 g364fb_draw_graphic8(s, full_update);
78 break; 78 break;
@@ -86,7 +86,7 @@ static void g364fb_draw_graphic(G364State *s, int full_update) @@ -86,7 +86,7 @@ static void g364fb_draw_graphic(G364State *s, int full_update)
86 g364fb_draw_graphic32(s, full_update); 86 g364fb_draw_graphic32(s, full_update);
87 break; 87 break;
88 default: 88 default:
89 - printf("g364fb: unknown depth %d\n", s->ds->depth); 89 + printf("g364fb: unknown depth %d\n", ds_get_bits_per_pixel(s->ds));
90 return; 90 return;
91 } 91 }
92 92
@@ -101,11 +101,11 @@ static void g364fb_draw_blank(G364State *s, int full_update) @@ -101,11 +101,11 @@ static void g364fb_draw_blank(G364State *s, int full_update)
101 if (!full_update) 101 if (!full_update)
102 return; 102 return;
103 103
104 - w = s->scr_width * ((s->ds->depth + 7) >> 3);  
105 - d = s->ds->data; 104 + w = s->scr_width * ((ds_get_bits_per_pixel(s->ds) + 7) >> 3);
  105 + d = ds_get_data(s->ds);
106 for(i = 0; i < s->scr_height; i++) { 106 for(i = 0; i < s->scr_height; i++) {
107 memset(d, 0, w); 107 memset(d, 0, w);
108 - d += s->ds->linesize; 108 + d += ds_get_linesize(s->ds);
109 } 109 }
110 110
111 dpy_update(s->ds, 0, 0, s->scr_width, s->scr_height); 111 dpy_update(s->ds, 0, 0, s->scr_width, s->scr_height);
@@ -131,7 +131,7 @@ static void g364fb_update_display(void *opaque) @@ -131,7 +131,7 @@ static void g364fb_update_display(void *opaque)
131 s->graphic_mode = graphic_mode; 131 s->graphic_mode = graphic_mode;
132 full_update = 1; 132 full_update = 1;
133 } 133 }
134 - if (s->scr_width != s->ds->width || s->scr_height != s->ds->height) { 134 + if (s->scr_width != ds_get_width(s->ds) || s->scr_height != ds_get_height(s->ds)) {
135 qemu_console_resize(s->console, s->scr_width, s->scr_height); 135 qemu_console_resize(s->console, s->scr_width, s->scr_height);
136 full_update = 1; 136 full_update = 1;
137 } 137 }
hw/g364fb_template.h
@@ -28,7 +28,7 @@ static void glue(g364fb_draw_graphic, BPP)(G364State *s, int full_update) @@ -28,7 +28,7 @@ static void glue(g364fb_draw_graphic, BPP)(G364State *s, int full_update)
28 28
29 data_buffer = s->vram_buffer; 29 data_buffer = s->vram_buffer;
30 w_display = s->scr_width * PIXEL_WIDTH / 8; 30 w_display = s->scr_width * PIXEL_WIDTH / 8;
31 - data_display = s->ds->data; 31 + data_display = ds_get_data(s->ds);
32 for(i = 0; i < s->scr_height; i++) { 32 for(i = 0; i < s->scr_height; i++) {
33 dd = data_display; 33 dd = data_display;
34 for (j = 0; j < s->scr_width; j++, dd += PIXEL_WIDTH / 8, data_buffer++) { 34 for (j = 0; j < s->scr_width; j++, dd += PIXEL_WIDTH / 8, data_buffer++) {
@@ -38,6 +38,6 @@ static void glue(g364fb_draw_graphic, BPP)(G364State *s, int full_update) @@ -38,6 +38,6 @@ static void glue(g364fb_draw_graphic, BPP)(G364State *s, int full_update)
38 s->palette[index][1], 38 s->palette[index][1],
39 s->palette[index][2]); 39 s->palette[index][2]);
40 } 40 }
41 - data_display += s->ds->linesize; 41 + data_display += ds_get_linesize(s->ds);
42 } 42 }
43 } 43 }
hw/jazz_led.c
@@ -155,8 +155,8 @@ static void draw_horizontal_line(DisplayState *ds, int posy, int posx1, int posx @@ -155,8 +155,8 @@ static void draw_horizontal_line(DisplayState *ds, int posy, int posx1, int posx
155 uint8_t *d; 155 uint8_t *d;
156 int x, bpp; 156 int x, bpp;
157 157
158 - bpp = (ds->depth + 7) >> 3;  
159 - d = ds->data + ds->linesize * posy + bpp * posx1; 158 + bpp = (ds_get_bits_per_pixel(ds) + 7) >> 3;
  159 + d = ds_get_data(ds) + ds_get_linesize(ds) * posy + bpp * posx1;
160 switch(bpp) { 160 switch(bpp) {
161 case 1: 161 case 1:
162 for (x = posx1; x <= posx2; x++) { 162 for (x = posx1; x <= posx2; x++) {
@@ -184,25 +184,25 @@ static void draw_vertical_line(DisplayState *ds, int posx, int posy1, int posy2, @@ -184,25 +184,25 @@ static void draw_vertical_line(DisplayState *ds, int posx, int posy1, int posy2,
184 uint8_t *d; 184 uint8_t *d;
185 int y, bpp; 185 int y, bpp;
186 186
187 - bpp = (ds->depth + 7) >> 3;  
188 - d = ds->data + ds->linesize * posy1 + bpp * posx; 187 + bpp = (ds_get_bits_per_pixel(ds) + 7) >> 3;
  188 + d = ds_get_data(ds) + ds_get_linesize(ds) * posy1 + bpp * posx;
189 switch(bpp) { 189 switch(bpp) {
190 case 1: 190 case 1:
191 for (y = posy1; y <= posy2; y++) { 191 for (y = posy1; y <= posy2; y++) {
192 *((uint8_t *)d) = color; 192 *((uint8_t *)d) = color;
193 - d += ds->linesize; 193 + d += ds_get_linesize(ds);
194 } 194 }
195 break; 195 break;
196 case 2: 196 case 2:
197 for (y = posy1; y <= posy2; y++) { 197 for (y = posy1; y <= posy2; y++) {
198 *((uint16_t *)d) = color; 198 *((uint16_t *)d) = color;
199 - d += ds->linesize; 199 + d += ds_get_linesize(ds);
200 } 200 }
201 break; 201 break;
202 case 4: 202 case 4:
203 for (y = posy1; y <= posy2; y++) { 203 for (y = posy1; y <= posy2; y++) {
204 *((uint32_t *)d) = color; 204 *((uint32_t *)d) = color;
205 - d += ds->linesize; 205 + d += ds_get_linesize(ds);
206 } 206 }
207 break; 207 break;
208 } 208 }
@@ -218,17 +218,17 @@ static void jazz_led_update_display(void *opaque) @@ -218,17 +218,17 @@ static void jazz_led_update_display(void *opaque)
218 218
219 if (s->state & REDRAW_BACKGROUND) { 219 if (s->state & REDRAW_BACKGROUND) {
220 /* clear screen */ 220 /* clear screen */
221 - bpp = (ds->depth + 7) >> 3;  
222 - d1 = ds->data;  
223 - for (y = 0; y < ds->height; y++) {  
224 - memset(d1, 0x00, ds->width * bpp);  
225 - d1 += ds->linesize; 221 + bpp = (ds_get_bits_per_pixel(ds) + 7) >> 3;
  222 + d1 = ds_get_data(ds);
  223 + for (y = 0; y < ds_get_height(ds); y++) {
  224 + memset(d1, 0x00, ds_get_width(ds) * bpp);
  225 + d1 += ds_get_linesize(ds);
226 } 226 }
227 } 227 }
228 228
229 if (s->state & REDRAW_SEGMENTS) { 229 if (s->state & REDRAW_SEGMENTS) {
230 /* set colors according to bpp */ 230 /* set colors according to bpp */
231 - switch (ds->depth) { 231 + switch (ds_get_bits_per_pixel(ds)) {
232 case 8: 232 case 8:
233 color_segment = rgb_to_pixel8(0xaa, 0xaa, 0xaa); 233 color_segment = rgb_to_pixel8(0xaa, 0xaa, 0xaa);
234 color_led = rgb_to_pixel8(0x00, 0xff, 0x00); 234 color_led = rgb_to_pixel8(0x00, 0xff, 0x00);
@@ -272,7 +272,7 @@ static void jazz_led_update_display(void *opaque) @@ -272,7 +272,7 @@ static void jazz_led_update_display(void *opaque)
272 } 272 }
273 273
274 s->state = REDRAW_NONE; 274 s->state = REDRAW_NONE;
275 - dpy_update(ds, 0, 0, ds->width, ds->height); 275 + dpy_update(ds, 0, 0, ds_get_width(ds), ds_get_height(ds));
276 } 276 }
277 277
278 static void jazz_led_invalidate_display(void *opaque) 278 static void jazz_led_invalidate_display(void *opaque)
hw/musicpal.c
@@ -801,7 +801,7 @@ static inline void glue(set_lcd_pixel, depth) \ @@ -801,7 +801,7 @@ static inline void glue(set_lcd_pixel, depth) \
801 (musicpal_lcd_state *s, int x, int y, type col) \ 801 (musicpal_lcd_state *s, int x, int y, type col) \
802 { \ 802 { \
803 int dx, dy; \ 803 int dx, dy; \
804 - type *pixel = &((type *) s->ds->data)[(y * 128 * 3 + x) * 3]; \ 804 + type *pixel = &((type *) ds_get_data(s->ds))[(y * 128 * 3 + x) * 3]; \
805 \ 805 \
806 for (dy = 0; dy < 3; dy++, pixel += 127 * 3) \ 806 for (dy = 0; dy < 3; dy++, pixel += 127 * 3) \
807 for (dx = 0; dx < 3; dx++, pixel++) \ 807 for (dx = 0; dx < 3; dx++, pixel++) \
@@ -818,7 +818,7 @@ static void lcd_refresh(void *opaque) @@ -818,7 +818,7 @@ static void lcd_refresh(void *opaque)
818 musicpal_lcd_state *s = opaque; 818 musicpal_lcd_state *s = opaque;
819 int x, y, col; 819 int x, y, col;
820 820
821 - switch (s->ds->depth) { 821 + switch (ds_get_bits_per_pixel(s->ds)) {
822 case 0: 822 case 0:
823 return; 823 return;
824 #define LCD_REFRESH(depth, func) \ 824 #define LCD_REFRESH(depth, func) \
@@ -838,7 +838,7 @@ static void lcd_refresh(void *opaque) @@ -838,7 +838,7 @@ static void lcd_refresh(void *opaque)
838 LCD_REFRESH(32, (s->ds->bgr ? rgb_to_pixel32bgr : rgb_to_pixel32)) 838 LCD_REFRESH(32, (s->ds->bgr ? rgb_to_pixel32bgr : rgb_to_pixel32))
839 default: 839 default:
840 cpu_abort(cpu_single_env, "unsupported colour depth %i\n", 840 cpu_abort(cpu_single_env, "unsupported colour depth %i\n",
841 - s->ds->depth); 841 + ds_get_bits_per_pixel(s->ds));
842 } 842 }
843 843
844 dpy_update(s->ds, 0, 0, 128*3, 64*3); 844 dpy_update(s->ds, 0, 0, 128*3, 64*3);
hw/omap_lcdc.c
@@ -125,7 +125,7 @@ static void omap_update_display(void *opaque) @@ -125,7 +125,7 @@ static void omap_update_display(void *opaque)
125 uint8_t *s, *d; 125 uint8_t *s, *d;
126 126
127 if (!omap_lcd || omap_lcd->plm == 1 || 127 if (!omap_lcd || omap_lcd->plm == 1 ||
128 - !omap_lcd->enable || !omap_lcd->state->depth) 128 + !omap_lcd->enable || !ds_get_bits_per_pixel(omap_lcd->state))
129 return; 129 return;
130 130
131 frame_offset = 0; 131 frame_offset = 0;
@@ -145,25 +145,25 @@ static void omap_update_display(void *opaque) @@ -145,25 +145,25 @@ static void omap_update_display(void *opaque)
145 /* Colour depth */ 145 /* Colour depth */
146 switch ((omap_lcd->palette[0] >> 12) & 7) { 146 switch ((omap_lcd->palette[0] >> 12) & 7) {
147 case 1: 147 case 1:
148 - draw_line = draw_line_table2[omap_lcd->state->depth]; 148 + draw_line = draw_line_table2[ds_get_bits_per_pixel(omap_lcd->state)];
149 bpp = 2; 149 bpp = 2;
150 break; 150 break;
151 151
152 case 2: 152 case 2:
153 - draw_line = draw_line_table4[omap_lcd->state->depth]; 153 + draw_line = draw_line_table4[ds_get_bits_per_pixel(omap_lcd->state)];
154 bpp = 4; 154 bpp = 4;
155 break; 155 break;
156 156
157 case 3: 157 case 3:
158 - draw_line = draw_line_table8[omap_lcd->state->depth]; 158 + draw_line = draw_line_table8[ds_get_bits_per_pixel(omap_lcd->state)];
159 bpp = 8; 159 bpp = 8;
160 break; 160 break;
161 161
162 case 4 ... 7: 162 case 4 ... 7:
163 if (!omap_lcd->tft) 163 if (!omap_lcd->tft)
164 - draw_line = draw_line_table12[omap_lcd->state->depth]; 164 + draw_line = draw_line_table12[ds_get_bits_per_pixel(omap_lcd->state)];
165 else 165 else
166 - draw_line = draw_line_table16[omap_lcd->state->depth]; 166 + draw_line = draw_line_table16[ds_get_bits_per_pixel(omap_lcd->state)];
167 bpp = 16; 167 bpp = 16;
168 break; 168 break;
169 169
@@ -174,8 +174,8 @@ static void omap_update_display(void *opaque) @@ -174,8 +174,8 @@ static void omap_update_display(void *opaque)
174 174
175 /* Resolution */ 175 /* Resolution */
176 width = omap_lcd->width; 176 width = omap_lcd->width;
177 - if (width != omap_lcd->state->width ||  
178 - omap_lcd->height != omap_lcd->state->height) { 177 + if (width != ds_get_width(omap_lcd->state) ||
  178 + omap_lcd->height != ds_get_height(omap_lcd->state)) {
179 qemu_console_resize(omap_lcd->console, 179 qemu_console_resize(omap_lcd->console,
180 omap_lcd->width, omap_lcd->height); 180 omap_lcd->width, omap_lcd->height);
181 omap_lcd->invalidate = 1; 181 omap_lcd->invalidate = 1;
@@ -202,7 +202,7 @@ static void omap_update_display(void *opaque) @@ -202,7 +202,7 @@ static void omap_update_display(void *opaque)
202 if (omap_lcd->dma->dual) 202 if (omap_lcd->dma->dual)
203 omap_lcd->dma->current_frame ^= 1; 203 omap_lcd->dma->current_frame ^= 1;
204 204
205 - if (!omap_lcd->state->depth) 205 + if (!ds_get_bits_per_pixel(omap_lcd->state))
206 return; 206 return;
207 207
208 line = 0; 208 line = 0;
@@ -217,8 +217,8 @@ static void omap_update_display(void *opaque) @@ -217,8 +217,8 @@ static void omap_update_display(void *opaque)
217 step = width * bpp >> 3; 217 step = width * bpp >> 3;
218 scanline = frame_base + step * line; 218 scanline = frame_base + step * line;
219 s = (uint8_t *) (phys_ram_base + scanline); 219 s = (uint8_t *) (phys_ram_base + scanline);
220 - d = omap_lcd->state->data;  
221 - linesize = omap_lcd->state->linesize; 220 + d = ds_get_data(omap_lcd->state);
  221 + linesize = ds_get_linesize(omap_lcd->state);
222 222
223 dirty[0] = dirty[1] = 223 dirty[0] = dirty[1] =
224 cpu_physical_memory_get_dirty(scanline, VGA_DIRTY_FLAG); 224 cpu_physical_memory_get_dirty(scanline, VGA_DIRTY_FLAG);
@@ -293,10 +293,10 @@ static int ppm_save(const char *filename, uint8_t *data, @@ -293,10 +293,10 @@ static int ppm_save(const char *filename, uint8_t *data,
293 static void omap_screen_dump(void *opaque, const char *filename) { 293 static void omap_screen_dump(void *opaque, const char *filename) {
294 struct omap_lcd_panel_s *omap_lcd = opaque; 294 struct omap_lcd_panel_s *omap_lcd = opaque;
295 omap_update_display(opaque); 295 omap_update_display(opaque);
296 - if (omap_lcd && omap_lcd->state->data)  
297 - ppm_save(filename, omap_lcd->state->data, 296 + if (omap_lcd && ds_get_data(omap_lcd->state))
  297 + ppm_save(filename, ds_get_data(omap_lcd->state),
298 omap_lcd->width, omap_lcd->height, 298 omap_lcd->width, omap_lcd->height,
299 - omap_lcd->state->linesize); 299 + ds_get_linesize(omap_lcd->state));
300 } 300 }
301 301
302 static void omap_invalidate_display(void *opaque) { 302 static void omap_invalidate_display(void *opaque) {
hw/pl110.c
@@ -124,7 +124,7 @@ static void pl110_update_display(void *opaque) @@ -124,7 +124,7 @@ static void pl110_update_display(void *opaque)
124 if (!pl110_enabled(s)) 124 if (!pl110_enabled(s))
125 return; 125 return;
126 126
127 - switch (s->ds->depth) { 127 + switch (ds_get_bits_per_pixel(s->ds)) {
128 case 0: 128 case 0:
129 return; 129 return;
130 case 8: 130 case 8:
@@ -190,7 +190,7 @@ static void pl110_update_display(void *opaque) @@ -190,7 +190,7 @@ static void pl110_update_display(void *opaque)
190 if (base > 0x80000000) 190 if (base > 0x80000000)
191 base -= 0x80000000; 191 base -= 0x80000000;
192 src = phys_ram_base + base; 192 src = phys_ram_base + base;
193 - dest = s->ds->data; 193 + dest = ds_get_data(s->ds);
194 first = -1; 194 first = -1;
195 addr = base; 195 addr = base;
196 196
@@ -249,7 +249,7 @@ static void pl110_update_pallette(pl110_state *s, int n) @@ -249,7 +249,7 @@ static void pl110_update_pallette(pl110_state *s, int n)
249 b = (raw & 0x1f) << 3; 249 b = (raw & 0x1f) << 3;
250 /* The I bit is ignored. */ 250 /* The I bit is ignored. */
251 raw >>= 6; 251 raw >>= 6;
252 - switch (s->ds->depth) { 252 + switch (ds_get_bits_per_pixel(s->ds)) {
253 case 8: 253 case 8:
254 s->pallette[n] = rgb_to_pixel8(r, g, b); 254 s->pallette[n] = rgb_to_pixel8(r, g, b);
255 break; 255 break;
hw/pxa2xx_lcd.c
@@ -650,7 +650,7 @@ static void pxa2xx_palette_parse(struct pxa2xx_lcdc_s *s, int ch, int bpp) @@ -650,7 +650,7 @@ static void pxa2xx_palette_parse(struct pxa2xx_lcdc_s *s, int ch, int bpp)
650 } 650 }
651 break; 651 break;
652 } 652 }
653 - switch (s->ds->depth) { 653 + switch (ds_get_bits_per_pixel(s->ds)) {
654 case 8: 654 case 8:
655 *dest = rgb_to_pixel8(r, g, b) | alpha; 655 *dest = rgb_to_pixel8(r, g, b) | alpha;
656 break; 656 break;
@@ -693,7 +693,7 @@ static void pxa2xx_lcdc_dma0_redraw_horiz(struct pxa2xx_lcdc_s *s, @@ -693,7 +693,7 @@ static void pxa2xx_lcdc_dma0_redraw_horiz(struct pxa2xx_lcdc_s *s,
693 else if (s->bpp > pxa_lcdc_8bpp) 693 else if (s->bpp > pxa_lcdc_8bpp)
694 src_width *= 2; 694 src_width *= 2;
695 695
696 - dest = s->ds->data; 696 + dest = ds_get_data(s->ds);
697 dest_width = s->xres * s->dest_width; 697 dest_width = s->xres * s->dest_width;
698 698
699 addr = (ram_addr_t) (fb - phys_ram_base); 699 addr = (ram_addr_t) (fb - phys_ram_base);
@@ -750,7 +750,7 @@ static void pxa2xx_lcdc_dma0_redraw_vert(struct pxa2xx_lcdc_s *s, @@ -750,7 +750,7 @@ static void pxa2xx_lcdc_dma0_redraw_vert(struct pxa2xx_lcdc_s *s,
750 src_width *= 2; 750 src_width *= 2;
751 751
752 dest_width = s->yres * s->dest_width; 752 dest_width = s->yres * s->dest_width;
753 - dest = s->ds->data + dest_width * (s->xres - 1); 753 + dest = ds_get_data(s->ds) + dest_width * (s->xres - 1);
754 754
755 addr = (ram_addr_t) (fb - phys_ram_base); 755 addr = (ram_addr_t) (fb - phys_ram_base);
756 start = addr + s->yres * src_width; 756 start = addr + s->yres * src_width;
@@ -1006,7 +1006,7 @@ struct pxa2xx_lcdc_s *pxa2xx_lcdc_init(target_phys_addr_t base, qemu_irq irq, @@ -1006,7 +1006,7 @@ struct pxa2xx_lcdc_s *pxa2xx_lcdc_init(target_phys_addr_t base, qemu_irq irq,
1006 pxa2xx_invalidate_display, 1006 pxa2xx_invalidate_display,
1007 pxa2xx_screen_dump, NULL, s); 1007 pxa2xx_screen_dump, NULL, s);
1008 1008
1009 - switch (s->ds->depth) { 1009 + switch (ds_get_bits_per_pixel(s->ds)) {
1010 case 0: 1010 case 0:
1011 s->dest_width = 0; 1011 s->dest_width = 0;
1012 break; 1012 break;
hw/ssd0303.c
@@ -206,7 +206,7 @@ static void ssd0303_update_display(void *opaque) @@ -206,7 +206,7 @@ static void ssd0303_update_display(void *opaque)
206 if (!s->redraw) 206 if (!s->redraw)
207 return; 207 return;
208 208
209 - switch (s->ds->depth) { 209 + switch (ds_get_bits_per_pixel(s->ds)) {
210 case 0: 210 case 0:
211 return; 211 return;
212 case 15: 212 case 15:
@@ -238,7 +238,7 @@ static void ssd0303_update_display(void *opaque) @@ -238,7 +238,7 @@ static void ssd0303_update_display(void *opaque)
238 colors[0] = colortab + dest_width; 238 colors[0] = colortab + dest_width;
239 colors[1] = colortab; 239 colors[1] = colortab;
240 } 240 }
241 - dest = s->ds->data; 241 + dest = ds_get_data(s->ds);
242 for (y = 0; y < 16; y++) { 242 for (y = 0; y < 16; y++) {
243 line = (y + s->start_line) & 63; 243 line = (y + s->start_line) & 63;
244 src = s->framebuffer + 132 * (line >> 3) + 36; 244 src = s->framebuffer + 132 * (line >> 3) + 36;
hw/ssd0323.c
@@ -187,7 +187,7 @@ static void ssd0323_update_display(void *opaque) @@ -187,7 +187,7 @@ static void ssd0323_update_display(void *opaque)
187 if (!s->redraw) 187 if (!s->redraw)
188 return; 188 return;
189 189
190 - switch (s->ds->depth) { 190 + switch (ds_get_bits_per_pixel(s->ds)) {
191 case 0: 191 case 0:
192 return; 192 return;
193 case 15: 193 case 15:
@@ -210,7 +210,7 @@ static void ssd0323_update_display(void *opaque) @@ -210,7 +210,7 @@ static void ssd0323_update_display(void *opaque)
210 for (i = 0; i < 16; i++) { 210 for (i = 0; i < 16; i++) {
211 int n; 211 int n;
212 colors[i] = p; 212 colors[i] = p;
213 - switch (s->ds->depth) { 213 + switch (ds_get_bits_per_pixel(s->ds)) {
214 case 15: 214 case 15:
215 n = i * 2 + (i >> 3); 215 n = i * 2 + (i >> 3);
216 p[0] = n | (n << 5); 216 p[0] = n | (n << 5);
@@ -233,7 +233,7 @@ static void ssd0323_update_display(void *opaque) @@ -233,7 +233,7 @@ static void ssd0323_update_display(void *opaque)
233 p += dest_width; 233 p += dest_width;
234 } 234 }
235 /* TODO: Implement row/column remapping. */ 235 /* TODO: Implement row/column remapping. */
236 - dest = s->ds->data; 236 + dest = ds_get_data(s->ds);
237 for (y = 0; y < 64; y++) { 237 for (y = 0; y < 64; y++) {
238 line = y; 238 line = y;
239 src = s->framebuffer + 64 * line; 239 src = s->framebuffer + 64 * line;
hw/tc6393xb.c
@@ -430,7 +430,7 @@ static void tc6393xb_nand_writeb(struct tc6393xb_s *s, target_phys_addr_t addr, @@ -430,7 +430,7 @@ static void tc6393xb_nand_writeb(struct tc6393xb_s *s, target_phys_addr_t addr,
430 430
431 static void tc6393xb_draw_graphic(struct tc6393xb_s *s, int full_update) 431 static void tc6393xb_draw_graphic(struct tc6393xb_s *s, int full_update)
432 { 432 {
433 - switch (s->ds->depth) { 433 + switch (ds_get_bits_per_pixel(s->ds)) {
434 case 8: 434 case 8:
435 tc6393xb_draw_graphic8(s); 435 tc6393xb_draw_graphic8(s);
436 break; 436 break;
@@ -447,7 +447,7 @@ static void tc6393xb_draw_graphic(struct tc6393xb_s *s, int full_update) @@ -447,7 +447,7 @@ static void tc6393xb_draw_graphic(struct tc6393xb_s *s, int full_update)
447 tc6393xb_draw_graphic32(s); 447 tc6393xb_draw_graphic32(s);
448 break; 448 break;
449 default: 449 default:
450 - printf("tc6393xb: unknown depth %d\n", s->ds->depth); 450 + printf("tc6393xb: unknown depth %d\n", ds_get_bits_per_pixel(s->ds));
451 return; 451 return;
452 } 452 }
453 453
@@ -462,11 +462,11 @@ static void tc6393xb_draw_blank(struct tc6393xb_s *s, int full_update) @@ -462,11 +462,11 @@ static void tc6393xb_draw_blank(struct tc6393xb_s *s, int full_update)
462 if (!full_update) 462 if (!full_update)
463 return; 463 return;
464 464
465 - w = s->scr_width * ((s->ds->depth + 7) >> 3);  
466 - d = s->ds->data; 465 + w = s->scr_width * ((ds_get_bits_per_pixel(s->ds) + 7) >> 3);
  466 + d = ds_get_data(s->ds);
467 for(i = 0; i < s->scr_height; i++) { 467 for(i = 0; i < s->scr_height; i++) {
468 memset(d, 0, w); 468 memset(d, 0, w);
469 - d += s->ds->linesize; 469 + d += ds_get_linesize(s->ds);
470 } 470 }
471 471
472 dpy_update(s->ds, 0, 0, s->scr_width, s->scr_height); 472 dpy_update(s->ds, 0, 0, s->scr_width, s->scr_height);
@@ -485,7 +485,7 @@ static void tc6393xb_update_display(void *opaque) @@ -485,7 +485,7 @@ static void tc6393xb_update_display(void *opaque)
485 s->blanked = s->blank; 485 s->blanked = s->blank;
486 full_update = 1; 486 full_update = 1;
487 } 487 }
488 - if (s->scr_width != s->ds->width || s->scr_height != s->ds->height) { 488 + if (s->scr_width != ds_get_width(s->ds) || s->scr_height != ds_get_height(s->ds)) {
489 qemu_console_resize(s->console, s->scr_width, s->scr_height); 489 qemu_console_resize(s->console, s->scr_width, s->scr_height);
490 full_update = 1; 490 full_update = 1;
491 } 491 }
hw/tc6393xb_template.h
@@ -46,12 +46,12 @@ static void glue(tc6393xb_draw_graphic, BITS)(struct tc6393xb_s *s) @@ -46,12 +46,12 @@ static void glue(tc6393xb_draw_graphic, BITS)(struct tc6393xb_s *s)
46 46
47 data_buffer = (uint16_t*)(phys_ram_base + s->vram_addr); 47 data_buffer = (uint16_t*)(phys_ram_base + s->vram_addr);
48 w_display = s->scr_width * BITS / 8; 48 w_display = s->scr_width * BITS / 8;
49 - data_display = s->ds->data; 49 + data_display = ds_get_data(s->ds);
50 for(i = 0; i < s->scr_height; i++) { 50 for(i = 0; i < s->scr_height; i++) {
51 #if (BITS == 16) 51 #if (BITS == 16)
52 memcpy(data_display, data_buffer, s->scr_width * 2); 52 memcpy(data_display, data_buffer, s->scr_width * 2);
53 data_buffer += s->scr_width; 53 data_buffer += s->scr_width;
54 - data_display += s->ds->linesize; 54 + data_display += ds_get_linesize(s->ds);
55 #else 55 #else
56 int j; 56 int j;
57 for (j = 0; j < s->scr_width; j++, data_display += BITS / 8, data_buffer++) { 57 for (j = 0; j < s->scr_width; j++, data_display += BITS / 8, data_buffer++) {
hw/tcx.c
@@ -55,7 +55,7 @@ static void update_palette_entries(TCXState *s, int start, int end) @@ -55,7 +55,7 @@ static void update_palette_entries(TCXState *s, int start, int end)
55 { 55 {
56 int i; 56 int i;
57 for(i = start; i < end; i++) { 57 for(i = start; i < end; i++) {
58 - switch(s->ds->depth) { 58 + switch(ds_get_bits_per_pixel(s->ds)) {
59 default: 59 default:
60 case 8: 60 case 8:
61 s->palette[i] = rgb_to_pixel8(s->r[i], s->g[i], s->b[i]); 61 s->palette[i] = rgb_to_pixel8(s->r[i], s->g[i], s->b[i]);
@@ -200,18 +200,18 @@ static void tcx_update_display(void *opaque) @@ -200,18 +200,18 @@ static void tcx_update_display(void *opaque)
200 uint8_t *d, *s; 200 uint8_t *d, *s;
201 void (*f)(TCXState *s1, uint8_t *dst, const uint8_t *src, int width); 201 void (*f)(TCXState *s1, uint8_t *dst, const uint8_t *src, int width);
202 202
203 - if (ts->ds->depth == 0) 203 + if (ds_get_bits_per_pixel(ts->ds) == 0)
204 return; 204 return;
205 page = ts->vram_offset; 205 page = ts->vram_offset;
206 y_start = -1; 206 y_start = -1;
207 page_min = 0xffffffff; 207 page_min = 0xffffffff;
208 page_max = 0; 208 page_max = 0;
209 - d = ts->ds->data; 209 + d = ds_get_data(ts->ds);
210 s = ts->vram; 210 s = ts->vram;
211 - dd = ts->ds->linesize; 211 + dd = ds_get_linesize(ts->ds);
212 ds = 1024; 212 ds = 1024;
213 213
214 - switch (ts->ds->depth) { 214 + switch (ds_get_bits_per_pixel(ts->ds)) {
215 case 32: 215 case 32:
216 f = tcx_draw_line32; 216 f = tcx_draw_line32;
217 break; 217 break;
@@ -278,7 +278,7 @@ static void tcx24_update_display(void *opaque) @@ -278,7 +278,7 @@ static void tcx24_update_display(void *opaque)
278 uint8_t *d, *s; 278 uint8_t *d, *s;
279 uint32_t *cptr, *s24; 279 uint32_t *cptr, *s24;
280 280
281 - if (ts->ds->depth != 32) 281 + if (ds_get_bits_per_pixel(ts->ds) != 32)
282 return; 282 return;
283 page = ts->vram_offset; 283 page = ts->vram_offset;
284 page24 = ts->vram24_offset; 284 page24 = ts->vram24_offset;
@@ -286,11 +286,11 @@ static void tcx24_update_display(void *opaque) @@ -286,11 +286,11 @@ static void tcx24_update_display(void *opaque)
286 y_start = -1; 286 y_start = -1;
287 page_min = 0xffffffff; 287 page_min = 0xffffffff;
288 page_max = 0; 288 page_max = 0;
289 - d = ts->ds->data; 289 + d = ds_get_data(ts->ds);
290 s = ts->vram; 290 s = ts->vram;
291 s24 = ts->vram24; 291 s24 = ts->vram24;
292 cptr = ts->cplane; 292 cptr = ts->cplane;
293 - dd = ts->ds->linesize; 293 + dd = ds_get_linesize(ts->ds);
294 ds = 1024; 294 ds = 1024;
295 295
296 for(y = 0; y < ts->height; y += 4, page += TARGET_PAGE_SIZE, 296 for(y = 0; y < ts->height; y += 4, page += TARGET_PAGE_SIZE,
hw/vga.c
@@ -1151,7 +1151,7 @@ static int update_basic_params(VGAState *s) @@ -1151,7 +1151,7 @@ static int update_basic_params(VGAState *s)
1151 1151
1152 static inline int get_depth_index(DisplayState *s) 1152 static inline int get_depth_index(DisplayState *s)
1153 { 1153 {
1154 - switch(s->depth) { 1154 + switch(ds_get_bits_per_pixel(s)) {
1155 default: 1155 default:
1156 case 8: 1156 case 8:
1157 return 0; 1157 return 0;
@@ -1279,7 +1279,7 @@ static void vga_draw_text(VGAState *s, int full_update) @@ -1279,7 +1279,7 @@ static void vga_draw_text(VGAState *s, int full_update)
1279 cw = 9; 1279 cw = 9;
1280 if (s->sr[1] & 0x08) 1280 if (s->sr[1] & 0x08)
1281 cw = 16; /* NOTE: no 18 pixel wide */ 1281 cw = 16; /* NOTE: no 18 pixel wide */
1282 - x_incr = cw * ((s->ds->depth + 7) >> 3); 1282 + x_incr = cw * ((ds_get_bits_per_pixel(s->ds) + 7) >> 3);
1283 width = (s->cr[0x01] + 1); 1283 width = (s->cr[0x01] + 1);
1284 if (s->cr[0x06] == 100) { 1284 if (s->cr[0x06] == 100) {
1285 /* ugly hack for CGA 160x100x16 - explain me the logic */ 1285 /* ugly hack for CGA 160x100x16 - explain me the logic */
@@ -1329,8 +1329,8 @@ static void vga_draw_text(VGAState *s, int full_update) @@ -1329,8 +1329,8 @@ static void vga_draw_text(VGAState *s, int full_update)
1329 vga_draw_glyph8 = vga_draw_glyph8_table[depth_index]; 1329 vga_draw_glyph8 = vga_draw_glyph8_table[depth_index];
1330 vga_draw_glyph9 = vga_draw_glyph9_table[depth_index]; 1330 vga_draw_glyph9 = vga_draw_glyph9_table[depth_index];
1331 1331
1332 - dest = s->ds->data;  
1333 - linesize = s->ds->linesize; 1332 + dest = ds_get_data(s->ds);
  1333 + linesize = ds_get_linesize(s->ds);
1334 ch_attr_ptr = s->last_ch_attr; 1334 ch_attr_ptr = s->last_ch_attr;
1335 for(cy = 0; cy < height; cy++) { 1335 for(cy = 0; cy < height; cy++) {
1336 d1 = dest; 1336 d1 = dest;
@@ -1663,8 +1663,8 @@ static void vga_draw_graphic(VGAState *s, int full_update) @@ -1663,8 +1663,8 @@ static void vga_draw_graphic(VGAState *s, int full_update)
1663 y_start = -1; 1663 y_start = -1;
1664 page_min = 0x7fffffff; 1664 page_min = 0x7fffffff;
1665 page_max = -1; 1665 page_max = -1;
1666 - d = s->ds->data;  
1667 - linesize = s->ds->linesize; 1666 + d = ds_get_data(s->ds);
  1667 + linesize = ds_get_linesize(s->ds);
1668 y1 = 0; 1668 y1 = 0;
1669 for(y = 0; y < height; y++) { 1669 for(y = 0; y < height; y++) {
1670 addr = addr1; 1670 addr = addr1;
@@ -1743,15 +1743,15 @@ static void vga_draw_blank(VGAState *s, int full_update) @@ -1743,15 +1743,15 @@ static void vga_draw_blank(VGAState *s, int full_update)
1743 return; 1743 return;
1744 if (s->last_scr_width <= 0 || s->last_scr_height <= 0) 1744 if (s->last_scr_width <= 0 || s->last_scr_height <= 0)
1745 return; 1745 return;
1746 - if (s->ds->depth == 8) 1746 + if (ds_get_bits_per_pixel(s->ds) == 8)
1747 val = s->rgb_to_pixel(0, 0, 0); 1747 val = s->rgb_to_pixel(0, 0, 0);
1748 else 1748 else
1749 val = 0; 1749 val = 0;
1750 - w = s->last_scr_width * ((s->ds->depth + 7) >> 3);  
1751 - d = s->ds->data; 1750 + w = s->last_scr_width * ((ds_get_bits_per_pixel(s->ds) + 7) >> 3);
  1751 + d = ds_get_data(s->ds);
1752 for(i = 0; i < s->last_scr_height; i++) { 1752 for(i = 0; i < s->last_scr_height; i++) {
1753 memset(d, val, w); 1753 memset(d, val, w);
1754 - d += s->ds->linesize; 1754 + d += ds_get_linesize(s->ds);
1755 } 1755 }
1756 dpy_update(s->ds, 0, 0, 1756 dpy_update(s->ds, 0, 0,
1757 s->last_scr_width, s->last_scr_height); 1757 s->last_scr_width, s->last_scr_height);
@@ -1766,7 +1766,7 @@ static void vga_update_display(void *opaque) @@ -1766,7 +1766,7 @@ static void vga_update_display(void *opaque)
1766 VGAState *s = (VGAState *)opaque; 1766 VGAState *s = (VGAState *)opaque;
1767 int full_update, graphic_mode; 1767 int full_update, graphic_mode;
1768 1768
1769 - if (s->ds->depth == 0) { 1769 + if (ds_get_bits_per_pixel(s->ds) == 0) {
1770 /* nothing to do */ 1770 /* nothing to do */
1771 } else { 1771 } else {
1772 s->rgb_to_pixel = 1772 s->rgb_to_pixel =
@@ -2455,10 +2455,10 @@ static void vga_screen_dump(void *opaque, const char *filename) @@ -2455,10 +2455,10 @@ static void vga_screen_dump(void *opaque, const char *filename)
2455 s->graphic_mode = -1; 2455 s->graphic_mode = -1;
2456 vga_update_display(s); 2456 vga_update_display(s);
2457 2457
2458 - if (ds->data) {  
2459 - ppm_save(filename, ds->data, vga_save_w, vga_save_h,  
2460 - s->ds->linesize);  
2461 - qemu_free(ds->data); 2458 + if (ds_get_data(ds)) {
  2459 + ppm_save(filename, ds_get_data(ds), vga_save_w, vga_save_h,
  2460 + ds_get_linesize(s->ds));
  2461 + qemu_free(ds_get_data(ds));
2462 } 2462 }
2463 s->ds = saved_ds; 2463 s->ds = saved_ds;
2464 } 2464 }
hw/vmware_vga.c
@@ -319,7 +319,7 @@ static inline void vmsvga_update_rect(struct vmsvga_state_s *s, @@ -319,7 +319,7 @@ static inline void vmsvga_update_rect(struct vmsvga_state_s *s,
319 width = s->bypp * w; 319 width = s->bypp * w;
320 start = s->bypp * x + bypl * y; 320 start = s->bypp * x + bypl * y;
321 src = s->vram + start; 321 src = s->vram + start;
322 - dst = s->ds->data + start; 322 + dst = ds_get_data(s->ds) + start;
323 323
324 for (; line > 0; line --, src += bypl, dst += bypl) 324 for (; line > 0; line --, src += bypl, dst += bypl)
325 memcpy(dst, src, width); 325 memcpy(dst, src, width);
@@ -331,7 +331,7 @@ static inline void vmsvga_update_rect(struct vmsvga_state_s *s, @@ -331,7 +331,7 @@ static inline void vmsvga_update_rect(struct vmsvga_state_s *s,
331 static inline void vmsvga_update_screen(struct vmsvga_state_s *s) 331 static inline void vmsvga_update_screen(struct vmsvga_state_s *s)
332 { 332 {
333 #ifndef DIRECT_VRAM 333 #ifndef DIRECT_VRAM
334 - memcpy(s->ds->data, s->vram, s->bypp * s->width * s->height); 334 + memcpy(ds_get_data(s->ds), s->vram, s->bypp * s->width * s->height);
335 #endif 335 #endif
336 336
337 dpy_update(s->ds, 0, 0, s->width, s->height); 337 dpy_update(s->ds, 0, 0, s->width, s->height);
@@ -373,7 +373,7 @@ static inline void vmsvga_copy_rect(struct vmsvga_state_s *s, @@ -373,7 +373,7 @@ static inline void vmsvga_copy_rect(struct vmsvga_state_s *s,
373 int x0, int y0, int x1, int y1, int w, int h) 373 int x0, int y0, int x1, int y1, int w, int h)
374 { 374 {
375 # ifdef DIRECT_VRAM 375 # ifdef DIRECT_VRAM
376 - uint8_t *vram = s->ds->data; 376 + uint8_t *vram = ds_get_data(s->ds);
377 # else 377 # else
378 uint8_t *vram = s->vram; 378 uint8_t *vram = s->vram;
379 # endif 379 # endif
@@ -410,7 +410,7 @@ static inline void vmsvga_fill_rect(struct vmsvga_state_s *s, @@ -410,7 +410,7 @@ static inline void vmsvga_fill_rect(struct vmsvga_state_s *s,
410 uint32_t c, int x, int y, int w, int h) 410 uint32_t c, int x, int y, int w, int h)
411 { 411 {
412 # ifdef DIRECT_VRAM 412 # ifdef DIRECT_VRAM
413 - uint8_t *vram = s->ds->data; 413 + uint8_t *vram = ds_get_data(s->ds);
414 # else 414 # else
415 uint8_t *vram = s->vram; 415 uint8_t *vram = s->vram;
416 # endif 416 # endif
@@ -915,7 +915,7 @@ static void vmsvga_reset(struct vmsvga_state_s *s) @@ -915,7 +915,7 @@ static void vmsvga_reset(struct vmsvga_state_s *s)
915 s->width = -1; 915 s->width = -1;
916 s->height = -1; 916 s->height = -1;
917 s->svgaid = SVGA_ID; 917 s->svgaid = SVGA_ID;
918 - s->depth = s->ds->depth ? s->ds->depth : 24; 918 + s->depth = ds_get_bits_per_pixel(s->ds) ? ds_get_bits_per_pixel(s->ds) : 24;
919 s->bypp = (s->depth + 7) >> 3; 919 s->bypp = (s->depth + 7) >> 3;
920 s->cursor.on = 0; 920 s->cursor.on = 0;
921 s->redraw_fifo_first = 0; 921 s->redraw_fifo_first = 0;
@@ -976,7 +976,7 @@ static void vmsvga_screen_dump(void *opaque, const char *filename) @@ -976,7 +976,7 @@ static void vmsvga_screen_dump(void *opaque, const char *filename)
976 } 976 }
977 977
978 if (s->depth == 32) { 978 if (s->depth == 32) {
979 - ppm_save(filename, s->vram, s->width, s->height, s->ds->linesize); 979 + ppm_save(filename, s->vram, s->width, s->height, ds_get_linesize(s->ds));
980 } 980 }
981 } 981 }
982 982
@@ -994,7 +994,7 @@ static uint32_t vmsvga_vram_readb(void *opaque, target_phys_addr_t addr) @@ -994,7 +994,7 @@ static uint32_t vmsvga_vram_readb(void *opaque, target_phys_addr_t addr)
994 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque; 994 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque;
995 addr -= s->vram_base; 995 addr -= s->vram_base;
996 if (addr < s->fb_size) 996 if (addr < s->fb_size)
997 - return *(uint8_t *) (s->ds->data + addr); 997 + return *(uint8_t *) (ds_get_data(s->ds) + addr);
998 else 998 else
999 return *(uint8_t *) (s->vram + addr); 999 return *(uint8_t *) (s->vram + addr);
1000 } 1000 }
@@ -1004,7 +1004,7 @@ static uint32_t vmsvga_vram_readw(void *opaque, target_phys_addr_t addr) @@ -1004,7 +1004,7 @@ static uint32_t vmsvga_vram_readw(void *opaque, target_phys_addr_t addr)
1004 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque; 1004 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque;
1005 addr -= s->vram_base; 1005 addr -= s->vram_base;
1006 if (addr < s->fb_size) 1006 if (addr < s->fb_size)
1007 - return *(uint16_t *) (s->ds->data + addr); 1007 + return *(uint16_t *) (ds_get_data(s->ds) + addr);
1008 else 1008 else
1009 return *(uint16_t *) (s->vram + addr); 1009 return *(uint16_t *) (s->vram + addr);
1010 } 1010 }
@@ -1014,7 +1014,7 @@ static uint32_t vmsvga_vram_readl(void *opaque, target_phys_addr_t addr) @@ -1014,7 +1014,7 @@ static uint32_t vmsvga_vram_readl(void *opaque, target_phys_addr_t addr)
1014 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque; 1014 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque;
1015 addr -= s->vram_base; 1015 addr -= s->vram_base;
1016 if (addr < s->fb_size) 1016 if (addr < s->fb_size)
1017 - return *(uint32_t *) (s->ds->data + addr); 1017 + return *(uint32_t *) (ds_get_data(s->ds) + addr);
1018 else 1018 else
1019 return *(uint32_t *) (s->vram + addr); 1019 return *(uint32_t *) (s->vram + addr);
1020 } 1020 }
@@ -1025,7 +1025,7 @@ static void vmsvga_vram_writeb(void *opaque, target_phys_addr_t addr, @@ -1025,7 +1025,7 @@ static void vmsvga_vram_writeb(void *opaque, target_phys_addr_t addr,
1025 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque; 1025 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque;
1026 addr -= s->vram_base; 1026 addr -= s->vram_base;
1027 if (addr < s->fb_size) 1027 if (addr < s->fb_size)
1028 - *(uint8_t *) (s->ds->data + addr) = value; 1028 + *(uint8_t *) (ds_get_data(s->ds) + addr) = value;
1029 else 1029 else
1030 *(uint8_t *) (s->vram + addr) = value; 1030 *(uint8_t *) (s->vram + addr) = value;
1031 } 1031 }
@@ -1036,7 +1036,7 @@ static void vmsvga_vram_writew(void *opaque, target_phys_addr_t addr, @@ -1036,7 +1036,7 @@ static void vmsvga_vram_writew(void *opaque, target_phys_addr_t addr,
1036 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque; 1036 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque;
1037 addr -= s->vram_base; 1037 addr -= s->vram_base;
1038 if (addr < s->fb_size) 1038 if (addr < s->fb_size)
1039 - *(uint16_t *) (s->ds->data + addr) = value; 1039 + *(uint16_t *) (ds_get_data(s->ds) + addr) = value;
1040 else 1040 else
1041 *(uint16_t *) (s->vram + addr) = value; 1041 *(uint16_t *) (s->vram + addr) = value;
1042 } 1042 }
@@ -1047,7 +1047,7 @@ static void vmsvga_vram_writel(void *opaque, target_phys_addr_t addr, @@ -1047,7 +1047,7 @@ static void vmsvga_vram_writel(void *opaque, target_phys_addr_t addr,
1047 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque; 1047 struct vmsvga_state_s *s = (struct vmsvga_state_s *) opaque;
1048 addr -= s->vram_base; 1048 addr -= s->vram_base;
1049 if (addr < s->fb_size) 1049 if (addr < s->fb_size)
1050 - *(uint32_t *) (s->ds->data + addr) = value; 1050 + *(uint32_t *) (ds_get_data(s->ds) + addr) = value;
1051 else 1051 else
1052 *(uint32_t *) (s->vram + addr) = value; 1052 *(uint32_t *) (s->vram + addr) = value;
1053 } 1053 }
@@ -321,7 +321,7 @@ static void vnc_dpy_resize(DisplayState *ds, int w, int h) @@ -321,7 +321,7 @@ static void vnc_dpy_resize(DisplayState *ds, int w, int h)
321 } 321 }
322 322
323 memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row)); 323 memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row));
324 - memset(vs->old_data, 42, vs->ds->linesize * vs->ds->height); 324 + memset(vs->old_data, 42, ds_get_linesize(vs->ds) * ds_get_height(vs->ds));
325 } 325 }
326 326
327 /* fastest code */ 327 /* fastest code */
@@ -414,10 +414,10 @@ static void send_framebuffer_update_raw(VncState *vs, int x, int y, int w, int h @@ -414,10 +414,10 @@ static void send_framebuffer_update_raw(VncState *vs, int x, int y, int w, int h
414 414
415 vnc_framebuffer_update(vs, x, y, w, h, 0); 415 vnc_framebuffer_update(vs, x, y, w, h, 0);
416 416
417 - row = vs->ds->data + y * vs->ds->linesize + x * vs->depth; 417 + row = ds_get_data(vs->ds) + y * ds_get_linesize(vs->ds) + x * vs->depth;
418 for (i = 0; i < h; i++) { 418 for (i = 0; i < h; i++) {
419 vs->write_pixels(vs, row, w * vs->depth); 419 vs->write_pixels(vs, row, w * vs->depth);
420 - row += vs->ds->linesize; 420 + row += ds_get_linesize(vs->ds);
421 } 421 }
422 } 422 }
423 423
@@ -495,7 +495,7 @@ static void vnc_copy(DisplayState *ds, int src_x, int src_y, int dst_x, int dst_ @@ -495,7 +495,7 @@ static void vnc_copy(DisplayState *ds, int src_x, int src_y, int dst_x, int dst_
495 uint8_t *dst_row; 495 uint8_t *dst_row;
496 char *old_row; 496 char *old_row;
497 int y = 0; 497 int y = 0;
498 - int pitch = ds->linesize; 498 + int pitch = ds_get_linesize(ds);
499 VncState *vs = ds->opaque; 499 VncState *vs = ds->opaque;
500 500
501 vnc_update_client(vs); 501 vnc_update_client(vs);
@@ -505,11 +505,11 @@ static void vnc_copy(DisplayState *ds, int src_x, int src_y, int dst_x, int dst_ @@ -505,11 +505,11 @@ static void vnc_copy(DisplayState *ds, int src_x, int src_y, int dst_x, int dst_
505 pitch = -pitch; 505 pitch = -pitch;
506 } 506 }
507 507
508 - src = (ds->linesize * (src_y + y) + vs->depth * src_x);  
509 - dst = (ds->linesize * (dst_y + y) + vs->depth * dst_x); 508 + src = (ds_get_linesize(ds) * (src_y + y) + vs->depth * src_x);
  509 + dst = (ds_get_linesize(ds) * (dst_y + y) + vs->depth * dst_x);
510 510
511 - src_row = ds->data + src;  
512 - dst_row = ds->data + dst; 511 + src_row = ds_get_data(ds) + src;
  512 + dst_row = ds_get_data(ds) + dst;
513 old_row = vs->old_data + dst; 513 old_row = vs->old_data + dst;
514 514
515 for (y = 0; y < h; y++) { 515 for (y = 0; y < h; y++) {
@@ -563,7 +563,7 @@ static void vnc_update_client(void *opaque) @@ -563,7 +563,7 @@ static void vnc_update_client(void *opaque)
563 563
564 /* Walk through the dirty map and eliminate tiles that 564 /* Walk through the dirty map and eliminate tiles that
565 really aren't dirty */ 565 really aren't dirty */
566 - row = vs->ds->data; 566 + row = ds_get_data(vs->ds);
567 old_row = vs->old_data; 567 old_row = vs->old_data;
568 568
569 for (y = 0; y < vs->height; y++) { 569 for (y = 0; y < vs->height; y++) {
@@ -575,7 +575,7 @@ static void vnc_update_client(void *opaque) @@ -575,7 +575,7 @@ static void vnc_update_client(void *opaque)
575 ptr = row; 575 ptr = row;
576 old_ptr = (char*)old_row; 576 old_ptr = (char*)old_row;
577 577
578 - for (x = 0; x < vs->ds->width; x += 16) { 578 + for (x = 0; x < ds_get_width(vs->ds); x += 16) {
579 if (memcmp(old_ptr, ptr, 16 * vs->depth) == 0) { 579 if (memcmp(old_ptr, ptr, 16 * vs->depth) == 0) {
580 vnc_clear_bit(vs->dirty_row[y], (x / 16)); 580 vnc_clear_bit(vs->dirty_row[y], (x / 16));
581 } else { 581 } else {
@@ -588,8 +588,8 @@ static void vnc_update_client(void *opaque) @@ -588,8 +588,8 @@ static void vnc_update_client(void *opaque)
588 } 588 }
589 } 589 }
590 590
591 - row += vs->ds->linesize;  
592 - old_row += vs->ds->linesize; 591 + row += ds_get_linesize(vs->ds);
  592 + old_row += ds_get_linesize(vs->ds);
593 } 593 }
594 594
595 if (!has_dirty) { 595 if (!has_dirty) {
@@ -918,7 +918,7 @@ static void check_pointer_type_change(VncState *vs, int absolute) @@ -918,7 +918,7 @@ static void check_pointer_type_change(VncState *vs, int absolute)
918 vnc_write_u8(vs, 0); 918 vnc_write_u8(vs, 0);
919 vnc_write_u16(vs, 1); 919 vnc_write_u16(vs, 1);
920 vnc_framebuffer_update(vs, absolute, 0, 920 vnc_framebuffer_update(vs, absolute, 0,
921 - vs->ds->width, vs->ds->height, -257); 921 + ds_get_width(vs->ds), ds_get_height(vs->ds), -257);
922 vnc_flush(vs); 922 vnc_flush(vs);
923 } 923 }
924 vs->absolute = absolute; 924 vs->absolute = absolute;
@@ -941,8 +941,8 @@ static void pointer_event(VncState *vs, int button_mask, int x, int y) @@ -941,8 +941,8 @@ static void pointer_event(VncState *vs, int button_mask, int x, int y)
941 dz = 1; 941 dz = 1;
942 942
943 if (vs->absolute) { 943 if (vs->absolute) {
944 - kbd_mouse_event(x * 0x7FFF / (vs->ds->width - 1),  
945 - y * 0x7FFF / (vs->ds->height - 1), 944 + kbd_mouse_event(x * 0x7FFF / (ds_get_width(vs->ds) - 1),
  945 + y * 0x7FFF / (ds_get_height(vs->ds) - 1),
946 dz, buttons); 946 dz, buttons);
947 } else if (vs->has_pointer_type_change) { 947 } else if (vs->has_pointer_type_change) {
948 x -= 0x7FFF; 948 x -= 0x7FFF;
@@ -1106,25 +1106,25 @@ static void framebuffer_update_request(VncState *vs, int incremental, @@ -1106,25 +1106,25 @@ static void framebuffer_update_request(VncState *vs, int incremental,
1106 int x_position, int y_position, 1106 int x_position, int y_position,
1107 int w, int h) 1107 int w, int h)
1108 { 1108 {
1109 - if (x_position > vs->ds->width)  
1110 - x_position = vs->ds->width;  
1111 - if (y_position > vs->ds->height)  
1112 - y_position = vs->ds->height;  
1113 - if (x_position + w >= vs->ds->width)  
1114 - w = vs->ds->width - x_position;  
1115 - if (y_position + h >= vs->ds->height)  
1116 - h = vs->ds->height - y_position; 1109 + if (x_position > ds_get_width(vs->ds))
  1110 + x_position = ds_get_width(vs->ds);
  1111 + if (y_position > ds_get_height(vs->ds))
  1112 + y_position = ds_get_height(vs->ds);
  1113 + if (x_position + w >= ds_get_width(vs->ds))
  1114 + w = ds_get_width(vs->ds) - x_position;
  1115 + if (y_position + h >= ds_get_height(vs->ds))
  1116 + h = ds_get_height(vs->ds) - y_position;
1117 1117
1118 int i; 1118 int i;
1119 vs->need_update = 1; 1119 vs->need_update = 1;
1120 if (!incremental) { 1120 if (!incremental) {
1121 - char *old_row = vs->old_data + y_position * vs->ds->linesize; 1121 + char *old_row = vs->old_data + y_position * ds_get_linesize(vs->ds);
1122 1122
1123 for (i = 0; i < h; i++) { 1123 for (i = 0; i < h; i++) {
1124 vnc_set_bits(vs->dirty_row[y_position + i], 1124 vnc_set_bits(vs->dirty_row[y_position + i],
1125 - (vs->ds->width / 16), VNC_DIRTY_WORDS);  
1126 - memset(old_row, 42, vs->ds->width * vs->depth);  
1127 - old_row += vs->ds->linesize; 1125 + (ds_get_width(vs->ds) / 16), VNC_DIRTY_WORDS);
  1126 + memset(old_row, 42, ds_get_width(vs->ds) * vs->depth);
  1127 + old_row += ds_get_linesize(vs->ds);
1128 } 1128 }
1129 } 1129 }
1130 } 1130 }
@@ -1134,7 +1134,7 @@ static void send_ext_key_event_ack(VncState *vs) @@ -1134,7 +1134,7 @@ static void send_ext_key_event_ack(VncState *vs)
1134 vnc_write_u8(vs, 0); 1134 vnc_write_u8(vs, 0);
1135 vnc_write_u8(vs, 0); 1135 vnc_write_u8(vs, 0);
1136 vnc_write_u16(vs, 1); 1136 vnc_write_u16(vs, 1);
1137 - vnc_framebuffer_update(vs, 0, 0, vs->ds->width, vs->ds->height, -258); 1137 + vnc_framebuffer_update(vs, 0, 0, ds_get_width(vs->ds), ds_get_height(vs->ds), -258);
1138 vnc_flush(vs); 1138 vnc_flush(vs);
1139 } 1139 }
1140 1140
@@ -1497,10 +1497,10 @@ static int protocol_client_init(VncState *vs, uint8_t *data, size_t len) @@ -1497,10 +1497,10 @@ static int protocol_client_init(VncState *vs, uint8_t *data, size_t len)
1497 char buf[1024]; 1497 char buf[1024];
1498 int size; 1498 int size;
1499 1499
1500 - vs->width = vs->ds->width;  
1501 - vs->height = vs->ds->height;  
1502 - vnc_write_u16(vs, vs->ds->width);  
1503 - vnc_write_u16(vs, vs->ds->height); 1500 + vs->width = ds_get_width(vs->ds);
  1501 + vs->height = ds_get_height(vs->ds);
  1502 + vnc_write_u16(vs, ds_get_width(vs->ds));
  1503 + vnc_write_u16(vs, ds_get_height(vs->ds));
1504 1504
1505 pixel_format_message(vs); 1505 pixel_format_message(vs);
1506 1506
@@ -2116,7 +2116,7 @@ static void vnc_connect(VncState *vs) @@ -2116,7 +2116,7 @@ static void vnc_connect(VncState *vs)
2116 vnc_write(vs, "RFB 003.008\n", 12); 2116 vnc_write(vs, "RFB 003.008\n", 12);
2117 vnc_flush(vs); 2117 vnc_flush(vs);
2118 vnc_read_when(vs, protocol_version, 12); 2118 vnc_read_when(vs, protocol_version, 12);
2119 - memset(vs->old_data, 0, vs->ds->linesize * vs->ds->height); 2119 + memset(vs->old_data, 0, ds_get_linesize(vs->ds) * ds_get_height(vs->ds));
2120 memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row)); 2120 memset(vs->dirty_row, 0xFF, sizeof(vs->dirty_row));
2121 vs->has_resize = 0; 2121 vs->has_resize = 0;
2122 vs->has_hextile = 0; 2122 vs->has_hextile = 0;
vnchextile.h
@@ -13,7 +13,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs, @@ -13,7 +13,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
13 void *last_fg_, 13 void *last_fg_,
14 int *has_bg, int *has_fg) 14 int *has_bg, int *has_fg)
15 { 15 {
16 - uint8_t *row = (vs->ds->data + y * vs->ds->linesize + x * vs->depth); 16 + uint8_t *row = (ds_get_data(vs->ds) + y * ds_get_linesize(vs->ds) + x * vs->depth);
17 pixel_t *irow = (pixel_t *)row; 17 pixel_t *irow = (pixel_t *)row;
18 int j, i; 18 int j, i;
19 pixel_t *last_bg = (pixel_t *)last_bg_; 19 pixel_t *last_bg = (pixel_t *)last_bg_;
@@ -57,7 +57,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs, @@ -57,7 +57,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
57 } 57 }
58 if (n_colors > 2) 58 if (n_colors > 2)
59 break; 59 break;
60 - irow += vs->ds->linesize / sizeof(pixel_t); 60 + irow += ds_get_linesize(vs->ds) / sizeof(pixel_t);
61 } 61 }
62 62
63 if (n_colors > 1 && fg_count > bg_count) { 63 if (n_colors > 1 && fg_count > bg_count) {
@@ -105,7 +105,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs, @@ -105,7 +105,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
105 n_data += 2; 105 n_data += 2;
106 n_subtiles++; 106 n_subtiles++;
107 } 107 }
108 - irow += vs->ds->linesize / sizeof(pixel_t); 108 + irow += ds_get_linesize(vs->ds) / sizeof(pixel_t);
109 } 109 }
110 break; 110 break;
111 case 3: 111 case 3:
@@ -161,7 +161,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs, @@ -161,7 +161,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
161 n_data += 2; 161 n_data += 2;
162 n_subtiles++; 162 n_subtiles++;
163 } 163 }
164 - irow += vs->ds->linesize / sizeof(pixel_t); 164 + irow += ds_get_linesize(vs->ds) / sizeof(pixel_t);
165 } 165 }
166 166
167 /* A SubrectsColoured subtile invalidates the foreground color */ 167 /* A SubrectsColoured subtile invalidates the foreground color */
@@ -198,7 +198,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs, @@ -198,7 +198,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
198 } else { 198 } else {
199 for (j = 0; j < h; j++) { 199 for (j = 0; j < h; j++) {
200 vs->write_pixels(vs, row, w * vs->depth); 200 vs->write_pixels(vs, row, w * vs->depth);
201 - row += vs->ds->linesize; 201 + row += ds_get_linesize(vs->ds);
202 } 202 }
203 } 203 }
204 } 204 }