59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef _VOS_KER_IOCTL_H_
 | |
| #define _VOS_KER_IOCTL_H_
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /*-----------------------------------------------------------------------------*/
 | |
| /* Including Files                                                             */
 | |
| /*-----------------------------------------------------------------------------*/
 | |
| #if defined(__LINUX) && defined(__KERNEL__)
 | |
| #include <asm/ioctl.h>
 | |
| #define _VOS_IO             _IO
 | |
| #define _VOS_IOR            _IOR
 | |
| #define _VOS_IOW            _IOW
 | |
| #define _VOS_IOWR           _IOWR
 | |
| 
 | |
| #elif defined(__FREERTOS)
 | |
| #define _VOS_IOC_NRBITS     8
 | |
| #define _VOS_IOC_TYPEBITS   8
 | |
| #define _VOS_IOC_SIZEBITS   14
 | |
| 
 | |
| #define _VOS_IOC_NRSHIFT    0
 | |
| #define _VOS_IOC_TYPESHIFT  (_VOS_IOC_NRSHIFT + _VOS_IOC_NRBITS)
 | |
| #define _VOS_IOC_SIZESHIFT  (_VOS_IOC_TYPESHIFT + _VOS_IOC_TYPEBITS)
 | |
| #define _VOS_IOC_DIRSHIFT   (_VOS_IOC_SIZESHIFT + _VOS_IOC_SIZEBITS)
 | |
| 
 | |
| #define _VOS_IOC_NONE       0U
 | |
| #define _VOS_IOC_WRITE      1U
 | |
| #define _VOS_IOC_READ       2U
 | |
| 
 | |
| #define _VOS_IOC(dir,type,nr,size) \
 | |
|         (((dir)  << _VOS_IOC_DIRSHIFT) | \
 | |
|          ((type) << _VOS_IOC_TYPESHIFT) | \
 | |
|          ((nr)   << _VOS_IOC_NRSHIFT) | \
 | |
|          ((size) << _VOS_IOC_SIZESHIFT))
 | |
| 
 | |
| #define _VOS_IOC_TYPECHECK(t) (sizeof(t))
 | |
| 
 | |
| #define _VOS_IO(type,nr)        _VOS_IOC(_VOS_IOC_NONE,(type),(nr),0)
 | |
| #define _VOS_IOR(type,nr,size)  _VOS_IOC(_VOS_IOC_READ,(type),(nr),(_VOS_IOC_TYPECHECK(size)))
 | |
| #define _VOS_IOW(type,nr,size)  _VOS_IOC(_VOS_IOC_WRITE,(type),(nr),(_VOS_IOC_TYPECHECK(size)))
 | |
| #define _VOS_IOWR(type,nr,size) _VOS_IOC(_VOS_IOC_READ|_VOS_IOC_WRITE,(type),(nr),(_VOS_IOC_TYPECHECK(size)))
 | |
| 
 | |
| #else //assume this is Linux user-space
 | |
| #include <sys/ioctl.h>
 | |
| #define _VOS_IO             _IO
 | |
| #define _VOS_IOR            _IOR
 | |
| #define _VOS_IOW            _IOW
 | |
| #define _VOS_IOWR           _IOWR
 | |
| #endif
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* _VOS_KER_IOCTL_H_ */
 | |
| 
 | 
