Add realtime priority scheduling to rust event loop

Change-Id: I57728c299e90a2a1a3f0dd658435fa819b8bea48
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/events/event_loop_runtime.h b/aos/events/event_loop_runtime.h
index 4d284c2..7c23456 100644
--- a/aos/events/event_loop_runtime.h
+++ b/aos/events/event_loop_runtime.h
@@ -239,6 +239,14 @@
     return TimerForRust::Make(this);
   }
 
+  void SetRuntimeRealtimePriority(int priority) const {
+    event_loop_->SetRuntimeRealtimePriority(priority);
+  }
+
+  void SetRuntimeAffinity(const cpu_set_t &cpuset) const {
+    event_loop_->SetRuntimeAffinity(cpuset);
+  }
+
  private:
   friend class OnRunForRust;
   friend class TimerForRust;
diff --git a/aos/events/event_loop_runtime.rs b/aos/events/event_loop_runtime.rs
index 0266517..1f70bf6 100644
--- a/aos/events/event_loop_runtime.rs
+++ b/aos/events/event_loop_runtime.rs
@@ -695,6 +695,11 @@
         timer.setup(self.monotonic_now(), Some(duration));
         timer
     }
+
+    /// Sets the scheduler priority to run the event loop at.
+    pub fn set_realtime_priority(&self, priority: i32) {
+        self.0.SetRuntimeRealtimePriority(priority.into());
+    }
 }
 
 /// An event loop primitive that allows sleeping asynchronously.