54 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef _VOS_CPU_H_
 | |
| #define _VOS_CPU_H_
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /*-----------------------------------------------------------------------------*/
 | |
| /* Including Files                                                             */
 | |
| /*-----------------------------------------------------------------------------*/
 | |
| #include <kwrap/nvt_type.h>
 | |
| 
 | |
| #define VOS_ADDR_INVALID    ((VOS_ADDR)-1)
 | |
| 
 | |
| #if VOS_LEGACY_ARCH32
 | |
| #define VOS_ALIGN_BYTES     64
 | |
| typedef UINT32 VOS_ADDR;
 | |
| #else
 | |
| #define VOS_ALIGN_BYTES     128
 | |
| typedef ULONG VOS_ADDR;
 | |
| #endif
 | |
| 
 | |
| #define VOS_IS_ALIGNED(x)   (0 == ((x) & (VOS_ALIGN_BYTES - 1)))
 | |
| 
 | |
| 
 | |
| typedef enum _VOS_DMA_DIRECTION {
 | |
| 	VOS_DMA_BIDIRECTIONAL = 0,            ///< clean and invalidate (vaddr and len should be aligned)
 | |
| 	VOS_DMA_TO_DEVICE = 1,                ///< clean (vaddr and len should be aligned)
 | |
| 	VOS_DMA_FROM_DEVICE = 2,              ///< invalidate (vaddr and len should be aligned)
 | |
| 	VOS_DMA_NONE = 3,                     ///< none
 | |
| 	VOS_DMA_BIDIRECTIONAL_NON_ALIGN = 4 , ///< clean and invalidate (skip alignment check)
 | |
| 	VOS_DMA_TO_DEVICE_NON_ALIGN = 5,      ///< clean (skip alignment check)
 | |
| 	VOS_DMA_FROM_DEVICE_NON_ALIGN = 6,    ///< invalidate (skip alignment check)
 | |
| } VOS_DMA_DIRECTION;
 | |
| 
 | |
| void rtos_cpu_init(void *param);
 | |
| void rtos_cpu_exit(void);
 | |
| 
 | |
| VOS_ADDR vos_cpu_get_phy_addr(VOS_ADDR vaddr); //NOTE: return VOS_ADDR_INVALID for failure
 | |
| 
 | |
| void vos_cpu_dcache_sync(VOS_ADDR vaddr, UINT32 len, VOS_DMA_DIRECTION dir);
 | |
| void vos_cpu_dcache_sync_vb(VOS_ADDR vaddr, UINT32 len, VOS_DMA_DIRECTION dir); //for video buffer, skip flush by default
 | |
| int vos_cpu_dcache_sync_by_cpu(VOS_ADDR vaddr, UINT32 len, VOS_DMA_DIRECTION dir, UINT cache_op_cpu_id);
 | |
| 
 | |
| void vos_cpu_enable_watch(int i, UINT32 addr, UINT32 size);
 | |
| 
 | |
| void vos_cpu_disable_watch(int i);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* _VOS_CPU_H_ */
 | |
| 
 | 
