[Spice-devel] [PATCH x11spice v3] Changes to build on the 32 bit raspberry pi.

Jeremy White jwhite at codeweavers.com
Tue Jun 18 19:54:15 UTC 2019


Signed-off-by: Jeremy White <jwhite at codeweavers.com>
---
v3 Use the obviously better PRIx64
v2 Use  (u) (u) thing instead of (u) ((u) thing)
   Simplify some casting where possible
---
 src/scan.c    |  6 +++---
 src/session.c |  8 ++++----
 src/spice.c   | 18 +++++++++++-------
 3 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/src/scan.c b/src/scan.c
index bb020de..aa10a07 100644
--- a/src/scan.c
+++ b/src/scan.c
@@ -70,7 +70,7 @@ static QXLDrawable *shm_image_to_drawable(spice_t *s, shm_image_t *shmi, int x,
         return NULL;
     qxl_image = (QXLImage *) (drawable + 1);
 
-    drawable->release_info.id = (uint64_t) spice_create_release(s, RELEASE_SHMI, shmi);
+    drawable->release_info.id = (uintptr_t) spice_create_release(s, RELEASE_SHMI, shmi);
     shmi->drawable_ptr = drawable;
 
     drawable->surface_id = 0;
@@ -91,7 +91,7 @@ static QXLDrawable *shm_image_to_drawable(spice_t *s, shm_image_t *shmi, int x,
     drawable->u.copy.src_area.bottom = shmi->h;
     drawable->u.copy.rop_descriptor = SPICE_ROPD_OP_PUT;
 
-    drawable->u.copy.src_bitmap = (QXLPHYSICAL) qxl_image;
+    drawable->u.copy.src_bitmap = (uintptr_t) qxl_image;
 
     qxl_image->descriptor.id = 0;
     qxl_image->descriptor.type = SPICE_IMAGE_TYPE_BITMAP;
@@ -106,7 +106,7 @@ static QXLDrawable *shm_image_to_drawable(spice_t *s, shm_image_t *shmi, int x,
     qxl_image->bitmap.y = shmi->h;
     qxl_image->bitmap.stride = shmi->bytes_per_line;
     qxl_image->bitmap.palette = 0;
-    qxl_image->bitmap.data = (QXLPHYSICAL) shmi->shmaddr;
+    qxl_image->bitmap.data = (uintptr_t) shmi->shmaddr;
 
     return drawable;
 }
diff --git a/src/session.c b/src/session.c
index e1b3c00..1e59415 100644
--- a/src/session.c
+++ b/src/session.c
@@ -60,13 +60,13 @@ session_t *global_session = NULL;
 void free_cursor_queue_item(gpointer data)
 {
     QXLCursorCmd *ccmd = (QXLCursorCmd *) data;
-    spice_free_release((spice_release_t *) ccmd->release_info.id);
+    spice_free_release((spice_release_t *) (uintptr_t) ccmd->release_info.id);
 }
 
 void free_draw_queue_item(gpointer data)
 {
     QXLDrawable *drawable = (QXLDrawable *) data;
-    spice_free_release((spice_release_t *) drawable->release_info.id);
+    spice_free_release((spice_release_t *) (uintptr_t) drawable->release_info.id);
 }
 
 void *session_pop_draw(session_t *session)
@@ -407,10 +407,10 @@ int session_push_cursor_image(session_t *s,
     ccmd->type = QXL_CURSOR_SET;
     ccmd->u.set.position.x = x + xhot;
     ccmd->u.set.position.y = y + yhot;
-    ccmd->u.set.shape = (QXLPHYSICAL) cursor;
+    ccmd->u.set.shape = (uintptr_t) cursor;
     ccmd->u.set.visible = TRUE;
 
-    ccmd->release_info.id = (uint64_t) spice_create_release(&s->spice, RELEASE_MEMORY, ccmd);
+    ccmd->release_info.id = (uintptr_t) spice_create_release(&s->spice, RELEASE_MEMORY, ccmd);
 
     g_async_queue_push(s->cursor_queue, ccmd);
     spice_qxl_wakeup(&s->spice.display_sin);
diff --git a/src/spice.c b/src/spice.c
index 8489b67..8ec0b07 100644
--- a/src/spice.c
+++ b/src/spice.c
@@ -33,6 +33,10 @@
 #include <netdb.h>
 #include <spice/macros.h>
 
+/* Obtain definitions for PRIx64 */
+#define __STDC_FORMAT_MACROS 1
+#include <inttypes.h>
+
 #include "local_spice.h"
 #include "x11spice.h"
 #include "display.h"
@@ -255,7 +259,7 @@ static int get_command(QXLInstance *qin, struct QXLCommandExt *cmd)
     cmd->flags = 0;
     cmd->cmd.type = QXL_CMD_DRAW;
     cmd->cmd.padding = 0;
-    cmd->cmd.data = (QXLPHYSICAL) drawable;
+    cmd->cmd.data = (uintptr_t) drawable;
 
     return 1;
 }
@@ -273,7 +277,7 @@ static int req_cmd_notification(QXLInstance *qin)
 static void release_resource(QXLInstance *qin G_GNUC_UNUSED,
                              struct QXLReleaseInfoExt release_info)
 {
-    spice_free_release((spice_release_t *) release_info.info->id);
+    spice_free_release((spice_release_t *) (uintptr_t) release_info.info->id);
 }
 
 static int get_cursor_command(QXLInstance *qin, struct QXLCommandExt *cmd)
@@ -289,7 +293,7 @@ static int get_cursor_command(QXLInstance *qin, struct QXLCommandExt *cmd)
     cmd->flags = 0;
     cmd->cmd.type = QXL_CMD_CURSOR;
     cmd->cmd.padding = 0;
-    cmd->cmd.data = (QXLPHYSICAL) cursor;
+    cmd->cmd.data = (uintptr_t) cursor;
 
     return 1;
 }
@@ -318,8 +322,8 @@ static int flush_resources(QXLInstance *qin G_GNUC_UNUSED)
 
 static void async_complete(QXLInstance *qin G_GNUC_UNUSED, uint64_t cookie)
 {
-    g_debug("%s: cookie 0x%lx", __FUNCTION__, cookie);
-    spice_free_release((spice_release_t *) cookie);
+    g_debug("%s: cookie %#" PRIx64, __FUNCTION__, cookie);
+    spice_free_release((spice_release_t *) (uintptr_t) cookie);
 }
 
 static void update_area_complete(QXLInstance *qin G_GNUC_UNUSED,
@@ -463,7 +467,7 @@ static int send_monitors_config(spice_t *s, int w, int h)
     monitors->heads[0].width = w;
     monitors->heads[0].height = h;
 
-    spice_qxl_monitors_config_async(&s->display_sin, (QXLPHYSICAL) monitors, 0, (uint64_t) release);
+    spice_qxl_monitors_config_async(&s->display_sin, (uintptr_t) monitors, 0, (uintptr_t) release);
 
     return 0;
 }
@@ -487,7 +491,7 @@ int spice_create_primary(spice_t *s, int w, int h, int bytes_per_line, void *shm
 
     /* TODO - compute this dynamically */
     surface.format = SPICE_SURFACE_FMT_32_xRGB;
-    surface.mem = (QXLPHYSICAL) shmaddr;
+    surface.mem = (uintptr_t) shmaddr;
 
     s->width = w;
     s->height = h;
-- 
2.11.0



More information about the Spice-devel mailing list