summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2010-02-06 17:34:53 -0500
committerSøren Sandmann Pedersen <ssp@redhat.com>2010-02-06 17:34:53 -0500
commitf68d83c3d9e0aecb844b4903d3d0d6c32bdcf5cd (patch)
tree0aaafba696ba7b4cc92e69e69c8cc849e129b2fc
parentfb0ad81f8c84108ae7b20aaea2642fa07228df65 (diff)
Eliminate some warnings about casting between u64 and pointers.
-rw-r--r--src/lookup3.c6
-rw-r--r--src/qxl.h12
-rw-r--r--src/qxl_cursor.c2
-rw-r--r--src/qxl_driver.c12
-rw-r--r--src/qxl_image.c4
5 files changed, 24 insertions, 12 deletions
diff --git a/src/lookup3.c b/src/lookup3.c
index f23461a..b37ca51 100644
--- a/src/lookup3.c
+++ b/src/lookup3.c
@@ -169,9 +169,9 @@ and these came close:
--------------------------------------------------------------------
*/
uint32_t hashword(
-const uint32_t *k, /* the key, an array of uint32_t values */
-size_t length, /* the length of the key, in uint32_ts */
-uint32_t initval) /* the previous hash, or an arbitrary value */
+ const uint32_t *k, /* the key, an array of uint32_t values */
+ size_t length, /* the length of the key, in uint32_ts */
+ uint32_t initval) /* the previous hash, or an arbitrary value */
{
uint32_t a,b,c;
diff --git a/src/qxl.h b/src/qxl.h
index ea06b53..cf25ee4 100644
--- a/src/qxl.h
+++ b/src/qxl.h
@@ -537,6 +537,18 @@ virtual_address (qxl_screen_t *qxl, void *physical)
return (void *) ((unsigned long)physical + ((unsigned long)qxl->ram - (unsigned long)qxl->ram_physical));
}
+static inline void *
+u64_to_pointer (uint64_t u)
+{
+ return (void *)(unsigned long)u;
+}
+
+static inline uint64_t
+pointer_to_u64 (void *p)
+{
+ return (uint64_t)(unsigned long)p;
+}
+
struct qxl_ring;
/*
diff --git a/src/qxl_cursor.c b/src/qxl_cursor.c
index a1fadc9..54e8948 100644
--- a/src/qxl_cursor.c
+++ b/src/qxl_cursor.c
@@ -45,7 +45,7 @@ qxl_alloc_cursor_cmd(qxl_screen_t *qxl)
struct qxl_cursor_cmd *cmd =
qxl_allocnf (qxl, sizeof(struct qxl_cursor_cmd));
- cmd->release_info.id = (uint64_t)cmd | 1;
+ cmd->release_info.id = pointer_to_u64 (cmd) | 1;
return cmd;
}
diff --git a/src/qxl_driver.c b/src/qxl_driver.c
index 7631f69..8a1cb8d 100644
--- a/src/qxl_driver.c
+++ b/src/qxl_driver.c
@@ -60,7 +60,7 @@ garbage_collect (qxl_screen_t *qxl)
*/
#define POINTER_MASK ((1 << 2) - 1)
- union qxl_release_info *info = (void *)(id & ~POINTER_MASK);
+ union qxl_release_info *info = u64_to_pointer (id & ~POINTER_MASK);
struct qxl_cursor_cmd *cmd = (struct qxl_cursor_cmd *)info;
struct qxl_drawable *drawable = (struct qxl_drawable *)info;
int is_cursor = FALSE;
@@ -71,14 +71,14 @@ garbage_collect (qxl_screen_t *qxl)
if (is_cursor && cmd->type == QXL_CURSOR_SET)
{
struct qxl_cursor *cursor = (void *)virtual_address (
- qxl, (void *)cmd->u.set.shape);
+ qxl, u64_to_pointer (cmd->u.set.shape));
qxl_free (qxl->mem, cursor);
}
else if (!is_cursor && drawable->type == QXL_DRAW_COPY)
{
struct qxl_image *image = virtual_address (
- qxl, (void *)drawable->u.copy.src_bitmap);
+ qxl, u64_to_pointer (drawable->u.copy.src_bitmap));
qxl_image_destroy (qxl, image);
}
@@ -209,7 +209,7 @@ qxl_map_memory(qxl_screen_t *qxl, int scrnIndex)
qxl->pci->regions[0].size,
PCI_DEV_MAP_FLAG_WRITABLE | PCI_DEV_MAP_FLAG_WRITE_COMBINE,
&qxl->ram);
- qxl->ram_physical = (void *)qxl->pci->regions[0].base_addr;
+ qxl->ram_physical = u64_to_pointer (qxl->pci->regions[0].base_addr);
pci_device_map_range(qxl->pci, qxl->pci->regions[1].base_addr,
qxl->pci->regions[1].size,
@@ -218,7 +218,7 @@ qxl_map_memory(qxl_screen_t *qxl, int scrnIndex)
pci_device_map_range(qxl->pci, qxl->pci->regions[2].base_addr,
qxl->pci->regions[2].size, 0,
- &qxl->rom);
+ (void **)&qxl->rom);
qxl->io_base = qxl->pci->regions[3].base_addr;
#else
@@ -355,7 +355,7 @@ make_drawable (qxl_screen_t *qxl, uint8_t type,
CHECK_POINT();
- drawable->release_info.id = (uint64_t)drawable;
+ drawable->release_info.id = pointer_to_u64 (drawable);
drawable->type = type;
diff --git a/src/qxl_image.c b/src/qxl_image.c
index f367ffe..d87e378 100644
--- a/src/qxl_image.c
+++ b/src/qxl_image.c
@@ -124,7 +124,7 @@ qxl_image_create (qxl_screen_t *qxl, const uint8_t *data,
const uint8_t *src_line = data + i * stride;
uint32_t *dest_line;
- chunk = virtual_address (qxl, (void *)info->image->u.bitmap.data);
+ chunk = virtual_address (qxl, u64_to_pointer (info->image->u.bitmap.data));
dest_line = (uint32_t *)chunk->data + width * i;
@@ -224,7 +224,7 @@ qxl_image_destroy (qxl_screen_t *qxl,
struct qxl_data_chunk *chunk;
image_info_t *info;
- chunk = virtual_address (qxl, (void *)image->u.bitmap.data);
+ chunk = virtual_address (qxl, u64_to_pointer (image->u.bitmap.data));
info = lookup_image_info (image->descriptor.id,
image->descriptor.width,