⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ixosalmemaccess.h

📁 intel ixp425的驱动代码
💻 H
📖 第 1 页 / 共 2 页
字号:
  and I/O memory is accessed via functions instead of raw pointer access. */#define IX_OSAL_READ_LONG_COOKIE(wCookie)           (readl((UINT32) (wCookie) ))#define IX_OSAL_READ_SHORT_COOKIE(sCookie)          (readw((UINT32) (sCookie) ))#define IX_OSAL_READ_BYTE_COOKIE(bCookie)           (readb((UINT32) (bCookie) ))#define IX_OSAL_WRITE_LONG_COOKIE(wCookie, wData)   (writel(wData, (UINT32) (wCookie) ))#define IX_OSAL_WRITE_SHORT_COOKIE(sCookie, sData)  (writew(sData, (UINT32) (sCookie) ))#define IX_OSAL_WRITE_BYTE_COOKIE(bCookie, bData)   (writeb(bData, (UINT32) (bCookie) ))#endif /* linux */#ifdef __wince/* WinCE - specific cookie reads/writes. */static __inline__ UINT32ixOsalWinCEReadLCookie (volatile UINT32 * lCookie){    return *lCookie;}static __inline__ UINT16ixOsalWinCEReadWCookie (volatile UINT16 * wCookie){#if 0    UINT32 auxVal = *((volatile UINT32 *) wCookie);    if ((unsigned) wCookie & 3)	return (UINT16) (auxVal >> 16);    else	return (UINT16) (auxVal & 0xffff);#else    return *wCookie;#endif}static __inline__ UINT8ixOsalWinCEReadBCookie (volatile UINT8 * bCookie){#if 0    UINT32 auxVal = *((volatile UINT32 *) bCookie);    return (UINT8) ((auxVal >> (3 - (((unsigned) bCookie & 3) << 3)) & 0xff));#else    return *bCookie;#endif}static __inline__ voidixOsalWinCEWriteLCookie (volatile UINT32 * lCookie, UINT32 lVal){    *lCookie = lVal;}static __inline__ voidixOsalWinCEWriteWCookie (volatile UINT16 * wCookie, UINT16 wVal){#if 0    volatile UINT32 *auxCookie =	(volatile UINT32 *) ((unsigned) wCookie & ~3);    if ((unsigned) wCookie & 3)    {	*auxCookie &= 0xffff;	*auxCookie |= (UINT32) wVal << 16;    }    else    {	*auxCookie &= ~0xffff;	*auxCookie |= (UINT32) wVal & 0xffff;    }#else    *wCookie = wVal;#endif}static __inline__ voidixOsalWinCEWriteBCookie (volatile UINT8 * bCookie, UINT8 bVal){#if 0    volatile UINT32 *auxCookie =	(volatile UINT32 *) ((unsigned) bCookie & ~3);    *auxCookie &= 0xff << (3 - (((unsigned) bCookie & 3) << 3));    *auxCookie |= (UINT32) bVal << (3 - (((unsigned) bCookie & 3) << 3));#else    *bCookie = bVal;#endif}#define IX_OSAL_READ_LONG_COOKIE(wCookie)           (ixOsalWinCEReadLCookie(wCookie))#define IX_OSAL_READ_SHORT_COOKIE(sCookie)          (ixOsalWinCEReadWCookie(sCookie))#define IX_OSAL_READ_BYTE_COOKIE(bCookie)           (ixOsalWinCEReadBCookie(bCookie))#define IX_OSAL_WRITE_LONG_COOKIE(wCookie, wData)   (ixOsalWinCEWriteLCookie(wCookie, wData))#define IX_OSAL_WRITE_SHORT_COOKIE(sCookie, sData)  (ixOsalWinCEWriteWCookie(sCookie, sData))#define IX_OSAL_WRITE_BYTE_COOKIE(bCookie, bData)   (ixOsalWinCEWriteBCookie(bCookie, bData))#endif /* wince */#if defined (__vxworks) || (defined (__linux) && defined (IX_OSAL_STATIC_MEMORY_MAP)) || \                           (defined (__wince) && defined (IX_OSAL_STATIC_MEMORY_MAP)) || \						    defined (__winxpe) || defined (__freebsd_user) || defined(__freebsd)#define IX_OSAL_READ_LONG_IO(wAddr)            IX_OSAL_READ_LONG_RAW(wAddr)#define IX_OSAL_READ_SHORT_IO(sAddr)           IX_OSAL_READ_SHORT_RAW(sAddr)#define IX_OSAL_READ_BYTE_IO(bAddr)            IX_OSAL_READ_BYTE_RAW(bAddr)#define IX_OSAL_WRITE_LONG_IO(wAddr, wData)    IX_OSAL_WRITE_LONG_RAW(wAddr, wData)#define IX_OSAL_WRITE_SHORT_IO(sAddr, sData)   IX_OSAL_WRITE_SHORT_RAW(sAddr, sData)#define IX_OSAL_WRITE_BYTE_IO(bAddr, bData)    IX_OSAL_WRITE_BYTE_RAW(bAddr, bData)#elif (defined (__linux) && !defined (IX_OSAL_STATIC_MEMORY_MAP)) || \      (defined (__wince) && !defined (IX_OSAL_STATIC_MEMORY_MAP))#ifndef __wince#include <asm/io.h>#endif /* ndef __wince */#define IX_OSAL_READ_LONG_IO(wAddr)            IX_OSAL_READ_LONG_COOKIE(wAddr)#define IX_OSAL_READ_SHORT_IO(sAddr)           IX_OSAL_READ_SHORT_COOKIE(sAddr)#define IX_OSAL_READ_BYTE_IO(bAddr)            IX_OSAL_READ_BYTE_COOKIE(bAddr)#define IX_OSAL_WRITE_LONG_IO(wAddr, wData)    IX_OSAL_WRITE_LONG_COOKIE(wAddr, wData)#define IX_OSAL_WRITE_SHORT_IO(sAddr, sData)   IX_OSAL_WRITE_SHORT_COOKIE(sAddr, sData)#define IX_OSAL_WRITE_BYTE_IO(bAddr, bData)    IX_OSAL_WRITE_BYTE_COOKIE(bAddr, bData)#endif#if defined (IX_OSAL_BE_MAPPING)#define IX_OSAL_READ_LONG(wAddr)            IX_OSAL_READ_LONG_BE(wAddr) #define IX_OSAL_READ_SHORT(sAddr)	        IX_OSAL_READ_SHORT_BE(sAddr) #define IX_OSAL_READ_BYTE(bAddr)	        IX_OSAL_READ_BYTE_BE(bAddr) #define IX_OSAL_WRITE_LONG(wAddr, wData) 	IX_OSAL_WRITE_LONG_BE(wAddr, wData)#define IX_OSAL_WRITE_SHORT(sAddr, sData)	IX_OSAL_WRITE_SHORT_BE(sAddr, sData)#define IX_OSAL_WRITE_BYTE(bAddr, bData)	IX_OSAL_WRITE_BYTE_BE(bAddr, bData)#elif defined (IX_OSAL_LE_AC_MAPPING)#define IX_OSAL_READ_LONG(wAddr)            IX_OSAL_READ_LONG_LE_AC(wAddr) #define IX_OSAL_READ_SHORT(sAddr)	        IX_OSAL_READ_SHORT_LE_AC(sAddr) #define IX_OSAL_READ_BYTE(bAddr)	        IX_OSAL_READ_BYTE_LE_AC(bAddr) #define IX_OSAL_WRITE_LONG(wAddr, wData) 	IX_OSAL_WRITE_LONG_LE_AC(wAddr, wData)#define IX_OSAL_WRITE_SHORT(sAddr, sData)	IX_OSAL_WRITE_SHORT_LE_AC(sAddr, sData)#define IX_OSAL_WRITE_BYTE(bAddr, bData)	IX_OSAL_WRITE_BYTE_LE_AC(bAddr, bData)#elif defined (IX_OSAL_LE_DC_MAPPING)#define IX_OSAL_READ_LONG(wAddr)            IX_OSAL_READ_LONG_LE_DC(wAddr) #define IX_OSAL_READ_SHORT(sAddr)	        IX_OSAL_READ_SHORT_LE_DC(sAddr) #define IX_OSAL_READ_BYTE(bAddr)	        IX_OSAL_READ_BYTE_LE_DC(bAddr) #define IX_OSAL_WRITE_LONG(wAddr, wData) 	IX_OSAL_WRITE_LONG_LE_DC(wAddr, wData)#define IX_OSAL_WRITE_SHORT(sAddr, sData)	IX_OSAL_WRITE_SHORT_LE_DC(sAddr, sData)#define IX_OSAL_WRITE_BYTE(bAddr, bData)	IX_OSAL_WRITE_BYTE_LE_DC(bAddr, bData)#elif defined (IX_OSAL_LE_MAPPING)#define IX_OSAL_READ_LONG(wAddr)        	IX_OSAL_READ_LONG_LE(wAddr) #define IX_OSAL_READ_SHORT(sAddr)	        IX_OSAL_READ_SHORT_LE(sAddr) #define IX_OSAL_READ_BYTE(bAddr)	        IX_OSAL_READ_BYTE_LE(bAddr) #define IX_OSAL_WRITE_LONG(wAddr, wData) 	IX_OSAL_WRITE_LONG_LE(wAddr, wData)#define IX_OSAL_WRITE_SHORT(sAddr, sData)	IX_OSAL_WRITE_SHORT_LE(sAddr, sData)#define IX_OSAL_WRITE_BYTE(bAddr, bData)	IX_OSAL_WRITE_BYTE_LE(bAddr, bData)#endif   /* End of BE and LE coherency mode switch *//* Reads/writes to and from memory shared with NPEs - depends on the SDRAM coherency */#if defined (IX_SDRAM_BE)#define IX_OSAL_READ_BE_SHARED_LONG(wAddr)            IX_OSAL_READ_LONG_RAW(wAddr)#define IX_OSAL_READ_BE_SHARED_SHORT(sAddr)           IX_OSAL_READ_SHORT_RAW(sAddr)#define IX_OSAL_READ_BE_SHARED_BYTE(bAddr)            IX_OSAL_READ_BYTE_RAW(bAddr)#define IX_OSAL_WRITE_BE_SHARED_LONG(wAddr, wData)    IX_OSAL_WRITE_LONG_RAW(wAddr, wData)#define IX_OSAL_WRITE_BE_SHARED_SHORT(sAddr, sData)   IX_OSAL_WRITE_SHORT_RAW(sAddr, sData)#define IX_OSAL_WRITE_BE_SHARED_BYTE(bAddr, bData)    IX_OSAL_WRITE_BYTE_RAW(bAddr, bData)#define IX_OSAL_SWAP_BE_SHARED_LONG(wData)            (wData)#define IX_OSAL_SWAP_BE_SHARED_SHORT(sData)           (sData)#define IX_OSAL_SWAP_BE_SHARED_BYTE(bData)            (bData)#elif defined (IX_SDRAM_LE_ADDRESS_COHERENT)#define IX_OSAL_READ_BE_SHARED_LONG(wAddr)            IX_OSAL_READ_LONG_RAW(wAddr)#define IX_OSAL_READ_BE_SHARED_SHORT(sAddr)           IX_OSAL_READ_SHORT_RAW(IX_OSAL_SWAP_SHORT_ADDRESS(sAddr))#define IX_OSAL_READ_BE_SHARED_BYTE(bAddr)            IX_OSAL_READ_BYTE_RAW(IX_OSAL_SWAP_BYTE_ADDRESS(bAddr))#define IX_OSAL_WRITE_BE_SHARED_LONG(wAddr, wData)    IX_OSAL_WRITE_LONG_RAW(wAddr, wData)#define IX_OSAL_WRITE_BE_SHARED_SHORT(sAddr, sData)   IX_OSAL_WRITE_SHORT_RAW(IX_OSAL_SWAP_SHORT_ADDRESS(sAddr), sData)#define IX_OSAL_WRITE_BE_SHARED_BYTE(bAddr, bData)    IX_OSAL_WRITE_BYTE_RAW(IX_OSAL_SWAP_BYTE_ADDRESS(bAddr), bData)#define IX_OSAL_SWAP_BE_SHARED_LONG(wData)            (wData)#define IX_OSAL_SWAP_BE_SHARED_SHORT(sData)           (sData)#define IX_OSAL_SWAP_BE_SHARED_BYTE(bData)            (bData)#elif defined (IX_SDRAM_LE_DATA_COHERENT)#define IX_OSAL_READ_BE_SHARED_LONG(wAddr)            IX_OSAL_SWAP_LONG(IX_OSAL_READ_LONG_RAW(wAddr))#define IX_OSAL_READ_BE_SHARED_SHORT(sAddr)           IX_OSAL_SWAP_SHORT(IX_OSAL_READ_SHORT_RAW(sAddr))#define IX_OSAL_READ_BE_SHARED_BYTE(bAddr)            IX_OSAL_READ_BYTE_RAW(bAddr)#define IX_OSAL_WRITE_BE_SHARED_LONG(wAddr, wData)    IX_OSAL_WRITE_LONG_RAW(wAddr, IX_OSAL_SWAP_LONG(wData))#define IX_OSAL_WRITE_BE_SHARED_SHORT(sAddr, sData)   IX_OSAL_WRITE_SHORT_RAW(sAddr, IX_OSAL_SWAP_SHORT(sData))#define IX_OSAL_WRITE_BE_SHARED_BYTE(bAddr, bData)    IX_OSAL_WRITE_BYTE_RAW(bAddr, bData)#define IX_OSAL_SWAP_BE_SHARED_LONG(wData)            IX_OSAL_SWAP_LONG(wData)#define IX_OSAL_SWAP_BE_SHARED_SHORT(sData)           IX_OSAL_SWAP_SHORT(sData)#define IX_OSAL_SWAP_BE_SHARED_BYTE(bData)            (bData)#elif defined (IX_SDRAM_LE)#define IX_OSAL_READ_BE_SHARED_LONG(wAddr)            IX_OSAL_SWAP_LONG(IX_OSAL_READ_LONG_RAW(wAddr))#define IX_OSAL_READ_BE_SHARED_SHORT(sAddr)           IX_OSAL_SWAP_SHORT(IX_OSAL_READ_SHORT_RAW(sAddr))#define IX_OSAL_READ_BE_SHARED_BYTE(bAddr)            IX_OSAL_READ_BYTE_RAW(bAddr)#define IX_OSAL_WRITE_BE_SHARED_LONG(wAddr, wData)    IX_OSAL_WRITE_LONG_RAW(wAddr, IX_OSAL_SWAP_LONG(wData))#define IX_OSAL_WRITE_BE_SHARED_SHORT(sAddr, sData)   IX_OSAL_WRITE_SHORT_RAW(sAddr,IX_OSAL_SWAP_SHORT(sData))#define IX_OSAL_WRITE_BE_SHARED_BYTE(bAddr, bData)    IX_OSAL_WRITE_BYTE_RAW(bAddr, bData)#define IX_OSAL_SWAP_BE_SHARED_LONG(wData)            IX_OSAL_SWAP_LONG(wData)#define IX_OSAL_SWAP_BE_SHARED_SHORT(sData)           IX_OSAL_SWAP_SHORT(sData)#define IX_OSAL_SWAP_BE_SHARED_BYTE(bData)            (bData)#endif#define IX_OSAL_COPY_BE_SHARED_LONG_ARRAY(wDestAddr, wSrcAddr, wCount) \  { \    UINT32 i; \    \    for ( i = 0 ; i < wCount ; i++ ) \    { \      * (((UINT32 *) wDestAddr) + i) = IX_OSAL_READ_BE_SHARED_LONG(((UINT32 *) wSrcAddr) + i); \    }; \  };#define IX_OSAL_READ_BE_SHARED_ARRAY(wSrcAddr, wCount, wDestAddr)	\  { \    UINT32 i; \    \    for ( i = 0 ; i < wCount ; i++ ) \    { \      * (((UINT32 *) wDestAddr) + i) = IX_OSAL_READ_BE_SHARED_LONG(((UINT32 *) wSrcAddr) + i); \    }; \  };#define IX_OSAL_WRITE_BE_SHARED_ARRAY(wSrcAddr, wCount, wDestAddr)	\  { \    UINT32 i; \    \    for ( i = 0 ; i < wCount ; i++ ) \    { \	    IX_OSAL_WRITE_BE_SHARED_LONG((((UINT32 *) wDestAddr) + i), * (((UINT32 *) wSrcAddr) + i));	\    }; \  };#endif /* IxOsalMemAccess_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -