[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Lost] [PATCH] + cdi_alloc_phys_addr
Fügt eine Funktion zum Reservieren einer bestimmten RAM-Adresse hinzu.
Primär Wrapper um mem_allocate_physical.
From 526d4bd7da8a79ce26f0a07631d21af9b2a11b8d Mon Sep 17 00:00:00 2001
From: Mathias Gottschlag <mathias-go@xxxxxx>
Date: Thu, 9 Oct 2008 13:16:33 +0200
Subject: [PATCH] + cdi_alloc_phys_addr
---
src/modules/cdi/e1000/device.c | 3 +--
src/modules/cdi/include/cdi/misc.h | 10 ++++++++++
src/modules/cdi/lib/misc.c | 13 +++++++++++++
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/modules/cdi/e1000/device.c b/src/modules/cdi/e1000/device.c
index f5c0a67..523831f 100644
--- a/src/modules/cdi/e1000/device.c
+++ b/src/modules/cdi/e1000/device.c
@@ -36,7 +36,6 @@
#include <stdint.h>
#include <stdio.h>
#include <stddef.h>
-#include <syscall.h>
#include "cdi.h"
#include "cdi/misc.h"
@@ -167,7 +166,7 @@ void e1000_init_device(struct cdi_device* device)
if (res->type == CDI_PCI_MEMORY) {
// FIXME LOST-spezifisch
netcard->mem_base =
- mem_allocate_physical(res->length, res->start, 0);
+ cdi_alloc_phys_addr(res->length, res->start);
}
}
diff --git a/src/modules/cdi/include/cdi/misc.h b/src/modules/cdi/include/cdi/misc.h
index 7a54f58..dc9e277 100644
--- a/src/modules/cdi/include/cdi/misc.h
+++ b/src/modules/cdi/include/cdi/misc.h
@@ -39,6 +39,16 @@ void cdi_register_irq(uint8_t irq, void (*handler)(struct cdi_device*),
int cdi_alloc_phys_mem(size_t size, void** vaddr, void** paddr);
/**
+ * Reserviert physisch zusammenhaengenden Speicher an einer definierten Adresse.
+ *
+ * @param size Groesse des benoetigten Speichers in Bytes
+ * @param paddr Physikalische Adresse des angeforderten Speicherbereichs
+ *
+ * @return Virtuelle Adresse, wenn Speicher reserviert wurde, sonst 0
+ */
+void* cdi_alloc_phys_addr(size_t size, uintptr_t paddr);
+
+/**
* Reserviert IO-Ports
*
* @return 0 wenn die Ports erfolgreich reserviert wurden, -1 sonst.
diff --git a/src/modules/cdi/lib/misc.c b/src/modules/cdi/lib/misc.c
index 4963bf7..6e102ea 100644
--- a/src/modules/cdi/lib/misc.c
+++ b/src/modules/cdi/lib/misc.c
@@ -70,6 +70,19 @@ int cdi_alloc_phys_mem(size_t size, void** vaddr, void** paddr)
}
/**
+ * Reserviert physisch zusammenhaengenden Speicher an einer definierten Adresse.
+ *
+ * @param size Groesse des benoetigten Speichers in Bytes
+ * @param paddr Physikalische Adresse des angeforderten Speicherbereichs
+ *
+ * @return Virtuelle Adresse, wenn Speicher reserviert wurde, sonst 0
+ */
+void* cdi_alloc_phys_addr(size_t size, uintptr_t paddr)
+{
+ return mem_allocate_physical(size, paddr, 0);
+}
+
+/**
* Reserviert IO-Ports
*
* @return 0 wenn die Ports erfolgreich reserviert wurden, -1 sonst.
--
1.5.4.3