sim: mn10300: clean up pointer casts
The void *data field is used to past arbitrary data between event
handlers, and these are using it to pass an enum. Fix up the casts
to avoid using (long) to cast to/from pointers since there is no
guarantee that's the right size.
diff --git a/sim/mn10300/dv-mn103ser.c b/sim/mn10300/dv-mn103ser.c
index 3465954..d2140e2 100644
--- a/sim/mn10300/dv-mn103ser.c
+++ b/sim/mn10300/dv-mn103ser.c
@@ -238,7 +238,7 @@
{
SIM_DESC sd = hw_system (me);
struct mn103ser *serial = hw_data(me);
- long serial_reg = (long) data;
+ long serial_reg = (uintptr_t) data;
char c;
int count, status;
@@ -280,7 +280,7 @@
/* Schedule next polling event */
serial->device[serial_reg].event
= hw_event_queue_schedule (me, 1000,
- do_polling_event, (void *)serial_reg);
+ do_polling_event, (void *)(uintptr_t)serial_reg);
}
@@ -424,7 +424,7 @@
serial->device[serial_reg].event
= hw_event_queue_schedule (me, 1000,
do_polling_event,
- (void *) (long) serial_reg);
+ (void *)(uintptr_t)serial_reg);
}
if ( nr_bytes == 1 )
diff --git a/sim/mn10300/dv-mn103tim.c b/sim/mn10300/dv-mn103tim.c
index ad9c24b..76f8738 100644
--- a/sim/mn10300/dv-mn103tim.c
+++ b/sim/mn10300/dv-mn103tim.c
@@ -570,7 +570,7 @@
void *data)
{
struct mn103tim *timers = hw_data(me);
- long timer_nr = (long) data;
+ long timer_nr = (uintptr_t) data;
int next_timer;
/* Check if counting is still enabled. */
@@ -596,7 +596,7 @@
/* FIX: Check if div_ratio has changed and if it's now 0. */
timers->timer[timer_nr].event
= hw_event_queue_schedule (me, timers->timer[timer_nr].div_ratio,
- do_counter_event, (void *)timer_nr);
+ do_counter_event, (void *)(uintptr_t)timer_nr);
}
else
{
@@ -611,7 +611,7 @@
void *data)
{
struct mn103tim *timers = hw_data(me);
- long timer_nr = (long) data;
+ long timer_nr = (uintptr_t) data;
int next_timer;
/* Check if counting is still enabled. */
@@ -625,7 +625,7 @@
/* FIX: Check if div_ratio has changed and if it's now 0. */
timers->timer[timer_nr].event
= hw_event_queue_schedule (me, timers->timer[timer_nr].div_ratio,
- do_counter6_event, (void *)timer_nr);
+ do_counter6_event, (void *)(uintptr_t)timer_nr);
}
else
{
@@ -808,7 +808,7 @@
timers->timer[timer_nr].event
= hw_event_queue_schedule(me, div_ratio,
do_counter_event,
- (void *)(timer_nr));
+ (void *)(uintptr_t)timer_nr);
}
}
}
@@ -908,7 +908,7 @@
timers->timer[timer_nr].event
= hw_event_queue_schedule(me, div_ratio,
do_counter6_event,
- (void *)(timer_nr));
+ (void *)(uintptr_t)timer_nr);
}
}
else