Mailing List Archive

[PATCH mini-os enhancements for vtpm 1/8]
This patch adds iowritexx() and ioreadxx() functions for interacting
with hardware memory to mini-os. The functions are available in a header
iorw.h

Signed off by Matthew Fioravante: matthew.fioravante@jhuapl.edu

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,22 @@
+#include <mini-os/iorw.h>
+#include <mini-os/console.h>
+
+void iowrite8(volatile void* addr, uint8_t val)
+{
+ printk("iorw not implemented!!\n");
+}
+void iowrite32(volatile void* addr, uint32_t val)
+{
+ printk("iorw not implemented!!\n");
+}
+
+uint8_t ioread8(volatile void* addr)
+{
+ printk("iorw not implemented!!\n");
+ return 0;
+}
+uint32_t ioread32(volatile void* addr)
+{
+ printk("iorw not implemented!!\n");
+ 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,19 @@
+#include <mini-os/iorw.h>
+
+void iowrite8(volatile void* addr, uint8_t val)
+{
+ *((volatile uint8_t*)addr) = val;
+}
+void iowrite32(volatile void* addr, uint32_t val)
+{
+ *((volatile uint32_t*)addr) = val;
+}
+
+uint8_t ioread8(volatile void* addr)
+{
+ return *((volatile uint8_t*) addr);
+}
+uint32_t ioread32(volatile void* addr)
+{
+ return *((volatile uint32_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,12 @@
+#ifndef MINIOS_IORW_H
+#define MINIOS_IORW_H
+
+#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);
+
+#endif
Re: [PATCH mini-os enhancements for vtpm 1/8] [ In reply to ]
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.

> +#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.

Samuel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
Re: [PATCH mini-os enhancements for vtpm 1/8] [ In reply to ]
On Mon, 2012-09-17 at 22:52 +0100, Matthew Fioravante wrote:
> This patch adds iowritexx() and ioreadxx() functions for interacting
> with hardware memory to mini-os. The functions are available in a header
> iorw.h
>
> Signed off by Matthew Fioravante: matthew.fioravante@jhuapl.edu
>
> 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

The last vestiges of ia64 support have now been removed from the tree,
so there is no need for this change any more.

If you spot any other ia64 bits as you go through please feel free to
remove or report them.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
Re: [PATCH mini-os enhancements for vtpm 1/8] [ In reply to ]
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@jhuapl.edu

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
Re: [PATCH mini-os enhancements for vtpm 1/8] [ In reply to ]
Matthew Fioravante, le Tue 18 Sep 2012 13:56:10 -0400, a écrit :
> New patch.
>
> Signed off by: Matthew Fioravante matthew.fioravante@jhuapl.edu

Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> 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
>
>



--
Samuel
#ifndef I_WISH_WORLD_WERE_PERFECT
/* It is not :-( All the routers (except for Linux) return only
...
-+- linux/net/ipv4/ipip.c -+-

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel