diff --git a/src/timer.rs b/src/timer.rs
index 0ab76cc..35af9b1 100644
--- a/src/timer.rs
+++ b/src/timer.rs
@@ -6,10 +6,8 @@
 use crate::result::OtherError;
 use crate::result::TockError;
 use crate::result::TockResult;
-use crate::result::EALREADY;
 use crate::syscalls;
 use core::cell::Cell;
-use core::isize;
 use core::marker::PhantomData;
 use core::ops::{Add, AddAssign, Sub};
 
@@ -39,7 +37,7 @@
     fn consume(data: &mut WithCallback<CB>, clock_value: usize, alarm_id: usize, _: usize) {
         (data.callback)(
             ClockValue {
-                num_ticks: clock_value as isize,
+                num_ticks: clock_value as usize,
                 clock_frequency: data.clock_frequency,
             },
             Alarm { alarm_id },
@@ -96,7 +94,7 @@
     pub fn get_current_clock(&self) -> TockResult<ClockValue> {
         Ok(ClockValue {
             num_ticks: unsafe {
-                syscalls::raw::command(DRIVER_NUMBER, command_nr::GET_CLOCK_VALUE, 0, 0)
+                syscalls::raw::command(DRIVER_NUMBER, command_nr::GET_CLOCK_VALUE, 0, 0) as usize
             },
             clock_frequency: self.clock_frequency,
         })
@@ -154,20 +152,20 @@
 
 #[derive(Copy, Clone, Debug)]
 pub struct ClockValue {
-    num_ticks: isize,
+    num_ticks: usize,
     clock_frequency: ClockFrequency,
 }
 
 impl ClockValue {
-    pub fn num_ticks(self) -> isize {
+    pub fn num_ticks(self) -> usize {
         self.num_ticks
     }
 
-    pub fn ms(self) -> isize {
-        if self.num_ticks.abs() < isize::MAX / 1000 {
-            (1000 * self.num_ticks) / self.clock_frequency.hz() as isize
+    pub fn ms(self) -> usize {
+        if self.num_ticks < usize::MAX / 1000 {
+            (1000 * self.num_ticks) / self.clock_frequency.hz()
         } else {
-            1000 * (self.num_ticks / self.clock_frequency.hz() as isize)
+            1000 * (self.num_ticks / self.clock_frequency.hz())
         }
     }
 
@@ -239,8 +237,8 @@
     }
 }
 
-impl Timestamp<isize> {
-    pub fn from_clock_value(value: ClockValue) -> Timestamp<isize> {
+impl Timestamp<usize> {
+    pub fn from_clock_value(value: ClockValue) -> Timestamp<usize> {
         Timestamp { ms: value.ms() }
     }
 }
@@ -500,18 +498,16 @@
     unsafe { Ok(syscalls::raw::command(DRIVER_NUMBER, command_nr::GET_CLOCK_VALUE, 0, 0) as usize) }
 }
 fn set_alarm_at(instant: usize) -> TockResult<()> {
-    syscalls::command(DRIVER_NUMBER, command_nr::SET_ALARM, instant, 0)
-        .map(|_| ())
-        .map_err(|err| err.into())
+    unsafe {
+        syscalls::raw::command(DRIVER_NUMBER, command_nr::SET_ALARM, instant, 0);
+        Ok(())
+    }
 }
 
 fn stop_alarm_at(instant: usize) -> TockResult<()> {
-    match syscalls::command(DRIVER_NUMBER, command_nr::STOP_ALARM, instant, 0) {
-        Ok(_) => Ok(()),
-        Err(error) => match error.return_code {
-            EALREADY => Ok(()),
-            _ => Err(TockError::Command(error)),
-        },
+    unsafe {
+        syscalls::raw::command(DRIVER_NUMBER, command_nr::STOP_ALARM, instant, 0);
+        Ok(())
     }
 }
 
