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>
#define __NR_fio_pwrite __NR_pwrite
#endif
#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;
struct syslet_data {
struct io_u **events;
unsigned int nr_events;
* including) this atom
*/
last = atom;
* including) this atom
*/
last = atom;
- io_u = (struct io_u *)atom->private;
+ io_u = ATOM_TO_IOU(atom);
atom = io_u->req.head;
/*
atom = io_u->req.head;
/*
- 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)
if (ret >= 0)
io_u->resid = io_u->xfer_buflen - ret;
else if (ret < 0)
- atom = (struct syslet_uatom *)atom->next;
+ atom = (struct syslet_uatom *) (unsigned long) atom->next;
} while (1);
assert(!last->next);
} while (1);
assert(!last->next);
{
atom->flags = flags;
atom->nr = nr;
{
atom->flags = flags;
atom->nr = nr;
- atom->ret_ptr = (uint64_t)ret_ptr;
+ atom->ret_ptr = (uint64_t) (unsigned long) ret_ptr;
- 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->arg_ptr[4] = 0;
atom->arg_ptr[5] = 0;
- atom->private = (uint64_t)priv;
+ atom->private = (uint64_t) (unsigned long) priv;
atom = sd->head;
while (atom) {
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);
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;
fio_ro_check(td, io_u);
if (sd->tail) {
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;
sd->tail = &io_u->req.atom;
} else
sd->head = sd->tail = (struct syslet_uatom *)&io_u->req.atom;
memset(sd->ring, 0, ring_size);
sd->ahu.user_ring_idx = 0;
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.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;
sd->ahu.new_thread_stack = thread_stack_alloc();
return 0;