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_ */
 | 
						|
 |