[PATCH mini-os enhancements for vtpm 1/8]
PATCH 1/8 [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: [email protected]
(quoted diff) +0 -0
b/extras/mini-os/arch/ia64/iorw.c
extras/mini-os/arch/ia64/iorw.c new file +22 -0
@@ -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 ; +}
extras/mini-os/arch/x86/iorw.c new file +19 -0
@@ -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); +}
extras/mini-os/include/iorw.h new file +12 -0
@@ -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
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xen.org/xen-devel
extras/mini-os/arch/ia64/iorw.c line 6
Quoted 5 lines · Matthew Fioravante, le Mon 17 Sep 2012 17:52:38 -0400, a écrit :
b/extras/mini-os/arch/ia64/iorw.cextras/mini-os/arch/ia64/iorw.c new file +3
-0+void iowrite8 (volatile void * addr,uint8_t val) +{ +printk ("iorw not implemented!!\n" );
Maybe even crash? Such things can be overlooked.
extras/mini-os/include/iorw.h line 10
Quoted 7 lines
extras/mini-os/include/iorw.h new file +7
-0+#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
Quoted 6 lines · Samuel Thibault
Review
Quoted 4 lines · Matthew Fioravante, le Mon 17 Sep 2012 17:52:38 -0400, a écrit :
b/extras/mini-os/arch/ia64/iorw.c(quoted diff) +3
-0+void iowrite8(volatile void* addr, uint8_t val) +{ + printk("iorw not implemented!!\n");Maybe even crash? Such things can be overlooked.
I agree.
Quoted 8 lines
Review
Quoted 7 lines
(quoted diff) +7
-0+#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
Quoted 2 lines
Samuel
New patch.
Signed off by: Matthew Fioravante [email protected]
(quoted diff) +0 -0
b/extras/mini-os/arch/ia64/iorw.c
extras/mini-os/arch/ia64/iorw.c new file +48 -0
48 lines not on this page · raw message
extras/mini-os/arch/x86/iorw.c new file +35 -0
@@ -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); +}
extras/mini-os/include/iorw.h new file +16 -0
@@ -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
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xen.org/xen-devel
Samuel Thibault
Acked-byQuoted 3 lines · Matthew Fioravante, le Tue 18 Sep 2012 13:56:10 -0400, a écrit :
New patch.
Signed off by: Matthew Fioravante [email protected]
Quoted 114 lines
extras/mini-os/arch/ia64/iorw.c new file +48
-0@@ -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 ; +}extras/mini-os/arch/x86/iorw.c new file +35
-0@@ -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); +}extras/mini-os/include/iorw.h new file +16
-0@@ -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
Signature · 5 lines
Samuel #ifndef I_WISH_WORLD_WERE_PERFECT /* It is not :-( All the routers (except for Linux) return only ... -+- linux/net/ipv4/ipip.c -+-
extras/mini-os/arch/ia64/iorw.c
Quoted 10 lines · Matthew Fioravante
This patch adds
iowritexx()andioreadxx()functions for interacting with hardware memory to mini-os. The functions are available in a headeriorw.hSigned off by Matthew Fioravante: [email protected]
extras/mini-os/arch/ia64/iorw.c new file +0
-0
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.