|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH mini-os enhancements for vtpm 1/8]
On 09/17/2012 06:23 PM, Samuel Thibault wrote:
> Matthew Fioravante, le Mon 17 Sep 2012 17:52:38 -0400, a écrit :
>> b/extras/mini-os/arch/ia64/iorw.c
>> +void iowrite8(volatile void* addr, uint8_t val)
>> +{
>> + printk("iorw not implemented!!\n");
> Maybe even crash? Such things can be overlooked.
I agree.
>> +#include <mini-os/types.h>
>> +
>> +void iowrite8(volatile void* addr, uint8_t val);
>> +void iowrite32(volatile void* addr, uint32_t val);
>> +
>> +uint8_t ioread8(volatile void* addr);
>> +uint32_t ioread32(volatile void* addr);
> I'd say while you are at it, add 16 and 64 variants.
Included below
>
> Samuel
New patch.
Signed off by: Matthew Fioravante matthew.fioravante@xxxxxxxxxx
diff --git a/extras/mini-os/arch/ia64/iorw.c
b/extras/mini-os/arch/ia64/iorw.c
--- /dev/null
+++ b/extras/mini-os/arch/ia64/iorw.c
@@ -0,0 +1,48 @@
+#include <mini-os/iorw.h>
+#include <mini-os/console.h>
+
+void iowrite8(volatile void* addr, uint8_t val)
+{
+ printk("iorw not implemented!!\n");
+ BUG();
+}
+void iowrite16(volatile void* addr, uint16_t val)
+{
+ printk("iorw not implemented!!\n");
+ BUG();
+}
+void iowrite32(volatile void* addr, uint32_t val)
+{
+ printk("iorw not implemented!!\n");
+ BUG();
+}
+void iowrite64(volatile void* addr, uint64_t val)
+{
+ printk("iorw not implemented!!\n");
+ BUG();
+}
+
+uint8_t ioread8(volatile void* addr)
+{
+ printk("iorw not implemented!!\n");
+ BUG();
+ return 0;
+}
+uint16_t ioread16(volatile void* addr)
+{
+ printk("iorw not implemented!!\n");
+ BUG();
+ return 0;
+}
+uint32_t ioread32(volatile void* addr)
+{
+ printk("iorw not implemented!!\n");
+ BUG();
+ return 0;
+}
+uint64_t ioread64(volatile void* addr)
+{
+ printk("iorw not implemented!!\n");
+ BUG();
+ return 0;
+}
diff --git a/extras/mini-os/arch/x86/iorw.c b/extras/mini-os/arch/x86/iorw.c
--- /dev/null
+++ b/extras/mini-os/arch/x86/iorw.c
@@ -0,0 +1,35 @@
+#include <mini-os/iorw.h>
+
+void iowrite8(volatile void* addr, uint8_t val)
+{
+ *((volatile uint8_t*)addr) = val;
+}
+void iowrite16(volatile void* addr, uint16_t val)
+{
+ *((volatile uint16_t*)addr) = val;
+}
+void iowrite32(volatile void* addr, uint32_t val)
+{
+ *((volatile uint32_t*)addr) = val;
+}
+void iowrite64(volatile void* addr, uint64_t val)
+{
+ *((volatile uint64_t*)addr) = val;
+}
+
+uint8_t ioread8(volatile void* addr)
+{
+ return *((volatile uint8_t*) addr);
+}
+uint16_t ioread16(volatile void* addr)
+{
+ return *((volatile uint16_t*) addr);
+}
+uint32_t ioread32(volatile void* addr)
+{
+ return *((volatile uint32_t*) addr);
+}
+uint64_t ioread64(volatile void* addr)
+{
+ return *((volatile uint64_t*) addr);
+}
diff --git a/extras/mini-os/include/iorw.h b/extras/mini-os/include/iorw.h
--- /dev/null
+++ b/extras/mini-os/include/iorw.h
@@ -0,0 +1,16 @@
+#ifndef MINIOS_IORW_H
+#define MINIOS_IORW_H
+
+#include <mini-os/types.h>
+
+void iowrite8(volatile void* addr, uint8_t val);
+void iowrite16(volatile void* addr, uint16_t val);
+void iowrite32(volatile void* addr, uint32_t val);
+void iowrite64(volatile void* addr, uint64_t val);
+
+uint8_t ioread8(volatile void* addr);
+uint16_t ioread16(volatile void* addr);
+uint32_t ioread32(volatile void* addr);
+uint64_t ioread64(volatile void* addr);
+
+#endif
Attachment:
smime.p7s _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |