[BACK]Return to pio.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / powerpc / include

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/arch/powerpc/include/pio.h between version 1.6 and 1.6.12.1

version 1.6, 2009/03/14 14:46:05 version 1.6.12.1, 2012/04/17 00:06:47
Line 39 
Line 39 
  * I/O macros.   * I/O macros.
  */   */
   
 static __inline void __outb(volatile u_int8_t *a, u_int8_t v);  static __inline void __outb(volatile uint8_t *a, uint8_t v);
 static __inline void __outw(volatile u_int16_t *a, u_int16_t v);  static __inline void __outw(volatile uint16_t *a, uint16_t v);
 static __inline void __outl(volatile u_int32_t *a, u_int32_t v);  static __inline void __outl(volatile uint32_t *a, uint32_t v);
 static __inline void __outwrb(volatile u_int16_t *a, u_int16_t v);  static __inline void __outwrb(volatile uint16_t *a, uint16_t v);
 static __inline void __outlrb(volatile u_int32_t *a, u_int32_t v);  static __inline void __outlrb(volatile uint32_t *a, uint32_t v);
 static __inline u_int8_t __inb(volatile u_int8_t *a);  static __inline uint8_t __inb(volatile uint8_t *a);
 static __inline u_int16_t __inw(volatile u_int16_t *a);  static __inline uint16_t __inw(volatile uint16_t *a);
 static __inline u_int32_t __inl(volatile u_int32_t *a);  static __inline uint32_t __inl(volatile uint32_t *a);
 static __inline u_int16_t __inwrb(volatile u_int16_t *a);  static __inline uint16_t __inwrb(volatile uint16_t *a);
 static __inline u_int32_t __inlrb(volatile u_int32_t *a);  static __inline uint32_t __inlrb(volatile uint32_t *a);
 static __inline void __outsb(volatile u_int8_t *, const u_int8_t *,  static __inline void __outsb(volatile uint8_t *, const uint8_t *, size_t);
         size_t);  static __inline void __outsw(volatile uint16_t *, const uint16_t *, size_t);
 static __inline void __outsw(volatile u_int16_t *, const u_int16_t *,  static __inline void __outsl(volatile uint32_t *, const uint32_t *, size_t);
         size_t);  static __inline void __outswrb(volatile uint16_t *, const uint16_t *, size_t);
 static __inline void __outsl(volatile u_int32_t *, const u_int32_t *,  static __inline void __outslrb(volatile uint32_t *, const uint32_t *, size_t);
         size_t);  static __inline void __insb(volatile uint8_t *, uint8_t *, size_t);
 static __inline void __outswrb(volatile u_int16_t *, const u_int16_t *,  static __inline void __insw(volatile uint16_t *, uint16_t *, size_t);
         size_t);  static __inline void __insl(volatile uint32_t *, uint32_t *, size_t);
 static __inline void __outslrb(volatile u_int32_t *, const u_int32_t *,  static __inline void __inswrb(volatile uint16_t *, uint16_t *, size_t);
         size_t);  static __inline void __inslrb(volatile uint32_t *, uint32_t *, size_t);
 static __inline void __insb(volatile u_int8_t *, u_int8_t *, size_t);  
 static __inline void __insw(volatile u_int16_t *, u_int16_t *, size_t);  static __inline void
 static __inline void __insl(volatile u_int32_t *, u_int32_t *, size_t);  __outb(volatile uint8_t *a, uint8_t v)
 static __inline void __inswrb(volatile u_int16_t *, u_int16_t *, size_t);  
 static __inline void __inslrb(volatile u_int32_t *, u_int32_t *, size_t);  
   
 static __inline void  
 __outb(a,v)  
         volatile u_int8_t *a;  
         u_int8_t v;  
 {  {
         *a = v;          *a = v;
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
 }  }
   
 static __inline void  static __inline void
 __outw(a,v)  __outw(volatile uint16_t *a, uint16_t v)
         volatile u_int16_t *a;  
         u_int16_t v;  
 {  {
         *a = v;          *a = v;
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
 }  }
   
 static __inline void  static __inline void
 __outl(a,v)  __outl(volatile uint32_t *a, uint32_t v)
         volatile u_int32_t *a;  
         u_int32_t v;  
 {  {
         *a = v;          *a = v;
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
 }  }
   
 static __inline void  static __inline void
 __outwrb(a,v)  __outwrb(volatile uint16_t *a, uint16_t v)
         volatile u_int16_t *a;  
         u_int16_t v;  
 {  {
         __asm volatile("sthbrx %0, 0, %1" :: "r"(v), "r"(a));          __asm volatile("sthbrx %0, 0, %1" :: "r"(v), "r"(a));
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
 }  }
   
 static __inline void  static __inline void
 __outlrb(a,v)  __outlrb(volatile uint32_t *a, uint32_t v)
         volatile u_int32_t *a;  
         u_int32_t v;  
 {  {
         __asm volatile("stwbrx %0, 0, %1" :: "r"(v), "r"(a));          __asm volatile("stwbrx %0, 0, %1" :: "r"(v), "r"(a));
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
 }  }
   
 static __inline u_int8_t  static __inline uint8_t
 __inb(a)  __inb(volatile uint8_t *a)
         volatile u_int8_t *a;  
 {  {
         u_int8_t _v_;          uint8_t _v_;
   
         _v_ = *a;          _v_ = *a;
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
         return _v_;          return _v_;
 }  }
   
 static __inline u_int16_t  static __inline uint16_t
 __inw(a)  __inw(volatile uint16_t *a)
         volatile u_int16_t *a;  
 {  {
         u_int16_t _v_;          uint16_t _v_;
   
         _v_ = *a;          _v_ = *a;
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
         return _v_;          return _v_;
 }  }
   
 static __inline u_int32_t  static __inline uint32_t
 __inl(a)  __inl(volatile uint32_t *a)
         volatile u_int32_t *a;  
 {  {
         u_int32_t _v_;          uint32_t _v_;
   
         _v_ = *a;          _v_ = *a;
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
         return _v_;          return _v_;
 }  }
   
 static __inline u_int16_t  static __inline uint16_t
 __inwrb(a)  __inwrb(volatile uint16_t *a)
         volatile u_int16_t *a;  
 {  {
         u_int16_t _v_;          uint16_t _v_;
   
         __asm volatile("lhbrx %0, 0, %1" : "=r"(_v_) : "r"(a));          __asm volatile("lhbrx %0, 0, %1" : "=r"(_v_) : "r"(a));
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
         return _v_;          return _v_;
 }  }
   
 static __inline u_int32_t  static __inline uint32_t
 __inlrb(a)  __inlrb(volatile uint32_t *a)
         volatile u_int32_t *a;  
 {  {
         u_int32_t _v_;          uint32_t _v_;
   
         __asm volatile("lwbrx %0, 0, %1" : "=r"(_v_) : "r"(a));          __asm volatile("lwbrx %0, 0, %1" : "=r"(_v_) : "r"(a));
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
         return _v_;          return _v_;
 }  }
   
 #define outb(a,v)       (__outb((volatile u_int8_t *)(a), v))  #define outb(a,v)       (__outb((volatile uint8_t *)(a), v))
 #define out8(a,v)       outb(a,v)  #define out8(a,v)       outb(a,v)
 #define outw(a,v)       (__outw((volatile u_int16_t *)(a), v))  #define outw(a,v)       (__outw((volatile uint16_t *)(a), v))
 #define out16(a,v)      outw(a,v)  #define out16(a,v)      outw(a,v)
 #define outl(a,v)       (__outl((volatile u_int32_t *)(a), v))  #define outl(a,v)       (__outl((volatile uint32_t *)(a), v))
 #define out32(a,v)      outl(a,v)  #define out32(a,v)      outl(a,v)
 #define inb(a)          (__inb((volatile u_int8_t *)(a)))  #define inb(a)          (__inb((volatile uint8_t *)(a)))
 #define in8(a)          inb(a)  #define in8(a)          inb(a)
 #define inw(a)          (__inw((volatile u_int16_t *)(a)))  #define inw(a)          (__inw((volatile uint16_t *)(a)))
 #define in16(a)         inw(a)  #define in16(a)         inw(a)
 #define inl(a)          (__inl((volatile u_int32_t *)(a)))  #define inl(a)          (__inl((volatile uint32_t *)(a)))
 #define in32(a)         inl(a)  #define in32(a)         inl(a)
   
 #define out8rb(a,v)     outb(a,v)  #define out8rb(a,v)     outb(a,v)
 #define outwrb(a,v)     (__outwrb((volatile u_int16_t *)(a), v))  #define outwrb(a,v)     (__outwrb((volatile uint16_t *)(a), v))
 #define out16rb(a,v)    outwrb(a,v)  #define out16rb(a,v)    outwrb(a,v)
 #define outlrb(a,v)     (__outlrb((volatile u_int32_t *)(a), v))  #define outlrb(a,v)     (__outlrb((volatile uint32_t *)(a), v))
 #define out32rb(a,v)    outlrb(a,v)  #define out32rb(a,v)    outlrb(a,v)
 #define in8rb(a)        inb(a)  #define in8rb(a)        inb(a)
 #define inwrb(a)        (__inwrb((volatile u_int16_t *)(a)))  #define inwrb(a)        (__inwrb((volatile uint16_t *)(a)))
 #define in16rb(a)       inwrb(a)  #define in16rb(a)       inwrb(a)
 #define inlrb(a)        (__inlrb((volatile u_int32_t *)(a)))  #define inlrb(a)        (__inlrb((volatile uint32_t *)(a)))
 #define in32rb(a)       inlrb(a)  #define in32rb(a)       inlrb(a)
   
   
 static __inline void  static __inline void
 __outsb(a,s,c)  __outsb(volatile uint8_t *a, const uint8_t *s, size_t c)
         volatile u_int8_t *a;  
         const u_int8_t *s;  
         size_t c;  
 {  {
         while (c--)          while (c--)
                 *a = *s++;                  *a = *s++;
Line 202  __outsb(a,s,c)
Line 179  __outsb(a,s,c)
 }  }
   
 static __inline void  static __inline void
 __outsw(a,s,c)  __outsw(volatile uint16_t *a, const uint16_t *s, size_t c)
         volatile u_int16_t *a;  
         const u_int16_t *s;  
         size_t c;  
 {  {
         while (c--)          while (c--)
                 *a = *s++;                  *a = *s++;
Line 213  __outsw(a,s,c)
Line 187  __outsw(a,s,c)
 }  }
   
 static __inline void  static __inline void
 __outsl(a,s,c)  __outsl(volatile uint32_t *a, const uint32_t *s, size_t c)
         volatile u_int32_t *a;  
         const u_int32_t *s;  
         size_t c;  
 {  {
         while (c--)          while (c--)
                 *a = *s++;                  *a = *s++;
Line 224  __outsl(a,s,c)
Line 195  __outsl(a,s,c)
 }  }
   
 static __inline void  static __inline void
 __outswrb(a,s,c)  __outswrb(volatile uint16_t *a, const uint16_t *s, size_t c)
         volatile u_int16_t *a;  
         const u_int16_t *s;  
         size_t c;  
 {  {
         while (c--)          while (c--)
                 __asm volatile("sthbrx %0, 0, %1" :: "r"(*s++), "r"(a));                  __asm volatile("sthbrx %0, 0, %1" :: "r"(*s++), "r"(a));
Line 235  __outswrb(a,s,c)
Line 203  __outswrb(a,s,c)
 }  }
   
 static __inline void  static __inline void
 __outslrb(a,s,c)  __outslrb(volatile uint32_t *a, const uint32_t *s, size_t c)
         volatile u_int32_t *a;  
         const u_int32_t *s;  
         size_t c;  
 {  {
         while (c--)          while (c--)
                 __asm volatile("stwbrx %0, 0, %1" :: "r"(*s++), "r"(a));                  __asm volatile("stwbrx %0, 0, %1" :: "r"(*s++), "r"(a));
Line 246  __outslrb(a,s,c)
Line 211  __outslrb(a,s,c)
 }  }
   
 static __inline void  static __inline void
 __insb(a,d,c)  __insb(volatile uint8_t *a, uint8_t *d, size_t c)
         volatile u_int8_t *a;  
         u_int8_t *d;  
         size_t c;  
 {  {
         while (c--)          while (c--)
                 *d++ = *a;                  *d++ = *a;
Line 257  __insb(a,d,c)
Line 219  __insb(a,d,c)
 }  }
   
 static __inline void  static __inline void
 __insw(a,d,c)  __insw(volatile uint16_t *a, uint16_t *d, size_t c)
         volatile u_int16_t *a;  
         u_int16_t *d;  
         size_t c;  
 {  {
         while (c--)          while (c--)
                 *d++ = *a;                  *d++ = *a;
Line 268  __insw(a,d,c)
Line 227  __insw(a,d,c)
 }  }
   
 static __inline void  static __inline void
 __insl(a,d,c)  __insl(volatile uint32_t *a, uint32_t *d, size_t c)
         volatile u_int32_t *a;  
         u_int32_t *d;  
         size_t c;  
 {  {
         while (c--)          while (c--)
                 *d++ = *a;                  *d++ = *a;
Line 279  __insl(a,d,c)
Line 235  __insl(a,d,c)
 }  }
   
 static __inline void  static __inline void
 __inswrb(a,d,c)  __inswrb(volatile uint16_t *a, uint16_t *d, size_t c)
         volatile u_int16_t *a;  
         u_int16_t *d;  
         size_t c;  
 {  {
         while (c--)          while (c--)
                 __asm volatile("lhbrx %0, 0, %1" : "=r"(*d++) : "r"(a));                  __asm volatile("lhbrx %0, 0, %1" : "=r"(*d++) : "r"(a));
Line 290  __inswrb(a,d,c)
Line 243  __inswrb(a,d,c)
 }  }
   
 static __inline void  static __inline void
 __inslrb(a,d,c)  __inslrb(volatile uint32_t *a, uint32_t *d, size_t c)
         volatile u_int32_t *a;  
         u_int32_t *d;  
         size_t c;  
 {  {
         while (c--)          while (c--)
                 __asm volatile("lwbrx %0, 0, %1" : "=r"(*d++) : "r"(a));                  __asm volatile("lwbrx %0, 0, %1" : "=r"(*d++) : "r"(a));
         __asm volatile("eieio; sync");          __asm volatile("eieio; sync");
 }  }
   
 #define outsb(a,s,c)    (__outsb((volatile u_int8_t *)(a), s, c))  #define outsb(a,s,c)    (__outsb((volatile uint8_t *)(a), s, c))
 #define outs8(a,s,c)    outsb(a,s,c)  #define outs8(a,s,c)    outsb(a,s,c)
 #define outsw(a,s,c)    (__outsw((volatile u_int16_t *)(a), s, c))  #define outsw(a,s,c)    (__outsw((volatile uint16_t *)(a), s, c))
 #define outs16(a,s,c)   outsw(a,s,c)  #define outs16(a,s,c)   outsw(a,s,c)
 #define outsl(a,s,c)    (__outsl((volatile u_int32_t *)(a), s, c))  #define outsl(a,s,c)    (__outsl((volatile uint32_t *)(a), s, c))
 #define outs32(a,s,c)   outsl(a,s,c)  #define outs32(a,s,c)   outsl(a,s,c)
 #define insb(a,d,c)     (__insb((volatile u_int8_t *)(a), d, c))  #define insb(a,d,c)     (__insb((volatile uint8_t *)(a), d, c))
 #define ins8(a,d,c)     insb(a,d,c)  #define ins8(a,d,c)     insb(a,d,c)
 #define insw(a,d,c)     (__insw((volatile u_int16_t *)(a), d, c))  #define insw(a,d,c)     (__insw((volatile uint16_t *)(a), d, c))
 #define ins16(a,d,c)    insw(a,d,c)  #define ins16(a,d,c)    insw(a,d,c)
 #define insl(a,d,c)     (__insl((volatile u_int32_t *)(a), d, c))  #define insl(a,d,c)     (__insl((volatile uint32_t *)(a), d, c))
 #define ins32(a,d,c)    insl(a,d,c)  #define ins32(a,d,c)    insl(a,d,c)
   
 #define outs8rb(a,s,c)  outsb(a,s,c)  #define outs8rb(a,s,c)  outsb(a,s,c)
 #define outswrb(a,s,c)  (__outswrb((volatile u_int16_t *)(a), s, c))  #define outswrb(a,s,c)  (__outswrb((volatile uint16_t *)(a), s, c))
 #define outs16rb(a,s,c) outswrb(a,s,c)  #define outs16rb(a,s,c) outswrb(a,s,c)
 #define outslrb(a,s,c)  (__outslrb((volatile u_int32_t *)(a), s, c))  #define outslrb(a,s,c)  (__outslrb((volatile uint32_t *)(a), s, c))
 #define outs32rb(a,s,c) outslrb(a,s,c)  #define outs32rb(a,s,c) outslrb(a,s,c)
 #define ins8rb(a,d,c)   insb(a,d,c)  #define ins8rb(a,d,c)   insb(a,d,c)
 #define inswrb(a,d,c)   (__inswrb((volatile u_int16_t *)(a), d, c))  #define inswrb(a,d,c)   (__inswrb((volatile uint16_t *)(a), d, c))
 #define ins16rb(a,d,c)  inswrb(a,d,c)  #define ins16rb(a,d,c)  inswrb(a,d,c)
 #define inslrb(a,d,c)   (__inslrb((volatile u_int32_t *)(a), d, c))  #define inslrb(a,d,c)   (__inslrb((volatile uint32_t *)(a), d, c))
 #define ins32rb(a,d,c)  inslrb(a,d,c)  #define ins32rb(a,d,c)  inslrb(a,d,c)
   
 #endif /*_POWERPC_PIO_H_*/  #endif /*_POWERPC_PIO_H_*/

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.6.12.1

CVSweb <webmaster@jp.NetBSD.org>