summaryrefslogtreecommitdiff
path: root/libddekit/resources.c
diff options
context:
space:
mode:
Diffstat (limited to 'libddekit/resources.c')
-rw-r--r--libddekit/resources.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/libddekit/resources.c b/libddekit/resources.c
new file mode 100644
index 00000000..d4d421c4
--- /dev/null
+++ b/libddekit/resources.c
@@ -0,0 +1,57 @@
+#include <l4/dde/ddekit/resources.h>
+
+#include <l4/generic_io/libio.h>
+
+#include "config.h"
+
+int ddekit_request_dma(int nr) {
+ return l4io_request_dma(nr);
+}
+
+int ddekit_release_dma(int nr) {
+ return l4io_release_dma(nr);
+}
+
+/** Request an IO region
+ *
+ * \return 0 success
+ * \return -1 error
+ */
+int ddekit_request_io(ddekit_addr_t start, ddekit_addr_t count) {
+ return l4io_request_region(start, count);
+}
+
+/** Release an IO region.
+ *
+ * \return 0 success
+ * \return <0 error
+ */
+int ddekit_release_io(ddekit_addr_t start, ddekit_addr_t count) {
+ return l4io_release_region(start, count);
+}
+
+/** Request a memory region.
+ *
+ * \return vaddr virtual address of memory region
+ * \return 0 success
+ * \return -1 error
+ */
+int ddekit_request_mem(ddekit_addr_t start, ddekit_addr_t count, ddekit_addr_t *vaddr) {
+ ddekit_addr_t v;
+
+ v = l4io_request_mem_region(start, count, 0);
+ if (v) {
+ *vaddr = v;
+ return 0;
+ } else
+ return -1;
+}
+
+/** Release memory region.
+ *
+ * \return 0 success
+ * \return <0 error
+ */
+int ddekit_release_mem(ddekit_addr_t start, ddekit_addr_t count) {
+ return l4io_release_mem_region(start, count);
+}