summaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2007-09-28 08:48:52 +0200
committerJens Axboe <jens.axboe@oracle.com>2007-09-28 08:48:52 +0200
commit67f5b27ed25e87102455e9a49eadabb00e873b0e (patch)
treeeabc051c7f2dc05f925c7c7ac75d5e3a779143a4 /engines
parentccf8f1273301ccb286636ff169a7d47e09f47a90 (diff)
downloadfio-67f5b27ed25e87102455e9a49eadabb00e873b0e.tar.gz
Get rid of syslet-rw compile warnings on 32-bit
The fixed size API repeatedly warns on the pointer to integer of different size cast, so sneak an unsigned long conversion in first. Makes gcc happy and should always be ok. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'engines')
-rw-r--r--engines/syslet-rw.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/engines/syslet-rw.c b/engines/syslet-rw.c
index 67090157..2a159d08 100644
--- a/engines/syslet-rw.c
+++ b/engines/syslet-rw.c
@@ -24,6 +24,8 @@
#define __NR_fio_pwrite __NR_pwrite
#endif
+#define ATOM_TO_IOU(p) ((struct io_u *) (unsigned long) (p))
+
struct syslet_data {
struct io_u **events;
unsigned int nr_events;
@@ -46,7 +48,7 @@ static void fio_syslet_complete_atom(struct thread_data *td,
* including) this atom
*/
last = atom;
- io_u = (struct io_u *)atom->private;
+ io_u = ATOM_TO_IOU(atom);
atom = io_u->req.head;
/*
@@ -55,8 +57,8 @@ static void fio_syslet_complete_atom(struct thread_data *td,
do {
long ret;
- io_u = (struct io_u *)atom->private;
- ret = *(long *)atom->ret_ptr;
+ io_u = ATOM_TO_IOU(atom);
+ ret = *(long *) (unsigned long) atom->ret_ptr;
if (ret >= 0)
io_u->resid = io_u->xfer_buflen - ret;
else if (ret < 0)
@@ -68,7 +70,7 @@ static void fio_syslet_complete_atom(struct thread_data *td,
if (atom == last)
break;
- atom = (struct syslet_uatom *)atom->next;
+ atom = (struct syslet_uatom *) (unsigned long) atom->next;
} while (1);
assert(!last->next);
@@ -138,15 +140,15 @@ static void init_atom(struct syslet_uatom *atom, int nr, void *arg0,
{
atom->flags = flags;
atom->nr = nr;
- atom->ret_ptr = (uint64_t)ret_ptr;
+ atom->ret_ptr = (uint64_t) (unsigned long) ret_ptr;
atom->next = 0;
- atom->arg_ptr[0] = (uint64_t)arg0;
- atom->arg_ptr[1] = (uint64_t)arg1;
- atom->arg_ptr[2] = (uint64_t)arg2;
- atom->arg_ptr[3] = (uint64_t)arg3;
+ atom->arg_ptr[0] = (uint64_t) (unsigned long) arg0;
+ atom->arg_ptr[1] = (uint64_t) (unsigned long) arg1;
+ atom->arg_ptr[2] = (uint64_t) (unsigned long) arg2;
+ atom->arg_ptr[3] = (uint64_t) (unsigned long) arg3;
atom->arg_ptr[4] = 0;
atom->arg_ptr[5] = 0;
- atom->private = (uint64_t)priv;
+ atom->private = (uint64_t) (unsigned long) priv;
}
/*
@@ -208,11 +210,11 @@ static void fio_syslet_queued(struct thread_data *td, struct syslet_data *sd)
atom = sd->head;
while (atom) {
- struct io_u *io_u = (struct io_u *)atom->private;
+ struct io_u *io_u = ATOM_TO_IOU(atom);
memcpy(&io_u->issue_time, &now, sizeof(now));
io_u_queued(td, io_u);
- atom = (struct syslet_uatom *)atom->next;
+ atom = (struct syslet_uatom *) (unsigned long) atom->next;
}
}
@@ -257,7 +259,7 @@ static int fio_syslet_queue(struct thread_data *td, struct io_u *io_u)
fio_ro_check(td, io_u);
if (sd->tail) {
- sd->tail->next = (uint64_t)&io_u->req.atom;
+ sd->tail->next = (uint64_t) (unsigned long) &io_u->req.atom;
sd->tail = &io_u->req.atom;
} else
sd->head = sd->tail = (struct syslet_uatom *)&io_u->req.atom;
@@ -277,11 +279,11 @@ static int async_head_init(struct syslet_data *sd, unsigned int depth)
memset(sd->ring, 0, ring_size);
sd->ahu.user_ring_idx = 0;
- sd->ahu.completion_ring_ptr = (uint64_t)sd->ring;
+ sd->ahu.completion_ring_ptr = (uint64_t) (unsigned long) sd->ring;
sd->ahu.ring_size_bytes = ring_size;
sd->ahu.head_stack = thread_stack_alloc();
- sd->ahu.head_ip = (uint64_t)cachemiss_thread_start;
- sd->ahu.new_thread_ip = (uint64_t)cachemiss_thread_start;
+ sd->ahu.head_ip = (uint64_t) (unsigned long) cachemiss_thread_start;
+ sd->ahu.new_thread_ip = (uint64_t) (unsigned long) cachemiss_thread_start;
sd->ahu.new_thread_stack = thread_stack_alloc();
return 0;