DeviceQueue: devif flounder interface
authorRoni Häcki <roni.haecki@inf.ethz.ch>
Fri, 12 Aug 2016 11:32:22 +0000 (13:32 +0200)
committerRoni Häcki <roni.haecki@inf.ethz.ch>
Fri, 12 Aug 2016 11:32:22 +0000 (13:32 +0200)
Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>

if/Hakefile
if/devif.if [new file with mode: 0644]

index 31fba2a..f271664 100644 (file)
@@ -87,7 +87,8 @@
                "e10k_vf",
                "flounderbootstrap",
                "empty",
-              "subways"
+                  "subways",
+               "devif"
            ],
              arch <- allArchitectures
 ] ++
diff --git a/if/devif.if b/if/devif.if
new file mode 100644 (file)
index 0000000..0472b3c
--- /dev/null
@@ -0,0 +1,37 @@
+/** \file
+ *  \brief Device Queue message interface
+ */
+
+/*
+ * Copyright (c) 2016, ETH Zurich.
+ * All rights reserved.
+ *
+ * This file is distributed under the terms in the attached LICENSE file.
+ * If you do not find this file, copies can be found by writing to:
+ * ETH Zurich D-INFK, Universitaetsstrasse 6, CH-8092 Zurich. Attn: Systems Group.
+ */
+
+interface devif "Device Queue Interface" {
+    
+    /* Create a device queue */
+    rpc create(in uint64 flags, in cap rx, in cap tx, 
+               in uint64 size, 
+               out uint64 features, out errval err);
+    
+    /* Destroy a device queue */
+    rpc destroy(out errval err);
+    
+    /* Add a memory region to the device queue*/
+    rpc register(in cap mem, in uint64 size, in genpaddr base,
+                 in uint32 region_id, out errval err);
+    
+    /* Remove a memory region from the device queue*/
+    rpc degister(in uint32 region_id, in uint64 size, in genpaddr base,
+                 out errval err);
+    
+    /* Control messages to the other end */
+    rpc control(in uint64 cmd, in uint64 value, out errval err);    
+
+    /* Notify other end of the queue about new entries */
+    message notify(uint8 num_slots);
+};